Skip to content

Hosts, clients and servers

Hosts, clients and servers are the three protocol roles in MCP integrations: the host is the user-facing AI application, a client is its per-server connection component, and a server is the program exposing tools, resources or prompts. These names describe responsibilities in the protocol, not where code is deployed.

The distinction matters because MCP integrations otherwise become hard to reason about. An AI app may talk to several external systems, each with different permissions, transports and capabilities. If everything is casually called a server or a client, engineers lose track of who owns the user experience, who maintains each protocol session, and who is allowed to expose operations to the model.

Concretely, the host is the application the user interacts with, such as an AI desktop app, an IDE, or a custom agent product. Inside that host, an MCP client manages a connection to one MCP server. The server speaks the MCP interface and advertises capabilities, such as callable tools, readable resources or reusable prompts, usually by wrapping a filesystem, database, SaaS API or internal service.

The trade-off is extra vocabulary and an extra layer of indirection. Your application may be both a host in one integration and a server in another, depending on which side of the protocol boundary you are implementing. It also means deployment words can mislead you: an MCP server can run locally, in a container, or remotely. The role is about protocol behaviour, not network location.

In practice, you meet these roles when deciding where your code belongs. If you are adding access to an issue tracker for an existing AI app, you are probably writing an MCP server. If you are building the AI app that connects to many such integrations, your app is the host. If you are implementing the per-connection protocol logic inside that app, that component is the client.

Common questions

Is the MCP server the same thing as the LLM provider?
No. This is a common misunderstanding. In MCP, a server is the component that exposes capabilities over the protocol, such as tools or resources. The language model may decide when to use those capabilities, but the model provider is not automatically the MCP server.
Can the same codebase be a host and a server?
Yes, if it participates in different integrations with different responsibilities. A product might host an agent experience and connect to other MCP servers, while also exposing its own data through an MCP server interface. The correct label depends on the specific protocol relationship you are looking at.
Does an MCP client connect to many servers?
Typically, think of an MCP client as the connection component for one server. A host that integrates with several MCP servers will create or manage several clients. That separation helps isolate capabilities, sessions and permissions for each external system the host can use.