MCP — official introduction & architecture overview
The protocol’s own documentation (modelcontextprotocol.io), the primary source for what
model-context-protocol actually specifies — previously the page had sources: []
after the financial-services source migrated out.
What it establishes
- Framing: MCP is “an open-source standard for connecting AI applications to external systems,” pitched as “a USB-C port for AI applications” — one standardized connector in place of bespoke per-integration glue.
- Participants (client-server):
- MCP Host — the AI application (Claude Code, Claude Desktop, VS Code) that coordinates one or more clients.
- MCP Client — a component that “maintains a connection to an MCP server and obtains context … for the MCP host to use”; the host spins up one client per server.
- MCP Server — “a program that provides context to MCP clients,” local or remote.
- Two layers: a data layer built on JSON-RPC 2.0 (lifecycle, capability negotiation, the primitives) and a transport layer (connection, framing, auth).
- Server primitives: Tools (executable functions the model can invoke),
Resources (contextual data sources), Prompts (reusable interaction templates).
Each has
*/listdiscovery, retrieval, and (for tools)tools/callexecution. - Client primitives (the reverse direction): Sampling (server asks the host’s LLM for a completion — lets a server stay model-independent), Elicitation (server asks the user for input/confirmation), and Logging.
- Transports: stdio (local process, no network overhead) and Streamable HTTP (POST + optional Server-Sent Events for remote servers; OAuth recommended for auth).
- Stateful with capability negotiation: an
initializehandshake (carrying a datedprotocolVersion) negotiates which primitives each side supports before any work; servers can pushnotifications/*/list_changedso a client’s tool registry stays current.
Tier
T1 — the protocol’s own specification documentation (primary source).