MCP splits an integration into three roles: a host, one or more clients inside it, and servers that expose capabilities.
Host (Claude Desktop, IDE, agent)
├── Client A <--> Server A (filesystem, local)
├── Client B <--> Server B (GitHub, remote)
└── Client C <--> Server C (database, local)
The host is the AI application the user sees. It holds the model conversation, renders the UI, and asks the user for permission.
A client is a connector the host creates, and each client talks to exactly one server. Ten servers means ten clients. Since the 2026-07-28 revision, every request a client sends carries its own protocol version and capabilities, so no session state sits between requests.
A server is a separate program offering capabilities to its client. It may run locally as a subprocess or remotely over HTTP.
That one-to-one pairing is the isolation boundary. A server sees only what its own client sends, never other servers or the full conversation.
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
The diagram below the answer is the concept . Jump to it ↓