An MCP server acts as the provider side of an MCP integration. It may expose read-only resources, such as documentation, or tools that perform actions, such as searching an issue tracker or creating a ticket. A server can run locally or remotely, depending on the integration.
A small server might offer one read-only tool that searches internal documentation and nothing else. A more powerful one might create tickets or send messages, which deserves tighter permissions and a human-in-the-loop confirmation step. Tool names and descriptions are read by the model, so write them plainly and describe each tool schema clearly; vague descriptions invite the wrong call.
Treat every exposed capability as an API surface. Limit permissions, validate parameters, avoid returning unnecessary secrets and require confirmation for consequential actions. Related: Model Context Protocol (MCP), MCP Client.