How MCP is built: hosts, clients, servers
Three participants, two layers and three kinds of things a server can offer.
Read on 14 November 2026. This field changes fast: check the sources.
Participants
The architecture page names three:
| Participant | What it is |
|---|---|
| MCP host | The AI application that coordinates and manages one or more MCP clients |
| MCP client | A component that keeps a connection to one MCP server and gets context from it for the host |
| MCP server | A program that provides context to MCP clients |
Its example: Visual Studio Code is a host. When it connects to a server, it creates a client object to keep that connection; for another server it creates another client. A server can run on your own computer (local) or elsewhere (remote). The page says local servers that use the stdio transport typically serve a single client, while remote servers that use the Streamable HTTP transport typically serve many.
Two layers
- Data layer: a JSON-RPC based protocol for client-server communication: capability and version discovery, the core primitives (tools, resources, prompts) and notifications.
- Transport layer: how the messages travel, including connection set-up, message framing and authorization.
Three primitives
According to the server concepts page:
| Primitive | What it offers | Who controls it |
|---|---|---|
| Tools | Functions the model can call, each doing one operation with typed inputs and outputs (JSON Schema) | The model |
| Resources | Structured data that the application can retrieve and give to models as context | The application |
| Prompts | Reusable templates with parameters | The user, by explicit invocation |
Each primitive has methods to list (*/list), retrieve (*/get) and sometimes execute (tools/call). A client first lists, for example tools/list, and then calls: listings can change over time.
See it
The next page shows these messages from a real server.
What is JSON-RPC?
A simple format for sending a request with a method name and receiving a result or an error, in JSON. The checker on the home page tests the shape of such messages.
Do I need to run a server on the internet?
No. A stdio server runs on your own computer and talks through standard input and output.
Sources
- Model Context Protocol documentation: Architecture overview (modelcontextprotocol.io/docs/learn/architecture)
- Model Context Protocol documentation: Server concepts (modelcontextprotocol.io/docs/learn/server-concepts)
Read on 14 November 2026.
This is an independent guide. It is not connected with Anthropic or the MCP project. This field changes quickly: statements were read on 14 November 2026 from the pages named under Sources (the MCP site shows specification version 2026-07-28 in its page addresses). The demo server and the messages are real: we ran them with the official Python SDK (mcp 2.3.0). No AI model was used for the demos.