Model Context Protocol (MCP): How AI Apps Connect to Tools and Data
The Model Context Protocol (MCP) is an open standard for connecting AI applications to external systems - files, databases, APIs and other software. Its documentation compares it to a USB-C port: one standard connector, instead of a custom integration for every pairing of AI app and tool.
Where it came from
Anthropic open-sourced MCP on 25 November 2024. The announcement released three things together: the specification and SDKs, support for local MCP servers in the Claude Desktop apps, and an open-source repository of pre-built servers for systems including Google Drive, Slack, GitHub, Git, Postgres and Puppeteer. Anthropic credits David Soria Parra and Justin Spahr-Summers with creating it.
The protocol is no longer tied to one vendor's products. The MCP documentation lists support in AI assistants including Claude and ChatGPT and in development tools including Visual Studio Code and Cursor.
The three participants
The architecture overview defines three roles:
- Host - the AI application the user works in, such as Claude Desktop, Claude Code or VS Code.
- Client - a component inside the host that keeps a connection to one server. A host connected to three servers runs three clients.
- Server - a program that provides context or actions. It can run locally on the same machine, or remotely as a hosted service.
What a server can offer
MCP defines three core primitives that servers expose:
- Tools - functions the AI application can call to take an action, such as running a database query or calling an API.
- Resources - data that provides context, such as file contents or database records.
- Prompts - reusable templates, such as a system prompt or few-shot examples for using the server's tools.
Clients discover these with list methods (tools/list, for example) and run a tool with tools/call. Each tool advertises a JSON Schema for its inputs, so the host knows what arguments to pass.
Servers can also ask the user for something through the client. Elicitation lets a server request extra input or a confirmation, for example before an action runs.
How messages travel
MCP has two layers. The data layer uses JSON-RPC 2.0 messages. The transport layer moves them, and two transports are defined:
- stdio - standard input and output between two processes on the same machine; the usual choice for a local server.
- Streamable HTTP - HTTP POST for client-to-server messages, with optional Server-Sent Events for streaming; used for remote servers. The documentation states that MCP recommends OAuth for obtaining authentication tokens.
What changed in the 2026-07-28 version
The current documentation is versioned 2026-07-28, and describes several changes from earlier versions of the protocol:
- Stateless requests. Every request now carries the protocol version and the client's capabilities in its
_metafield, so a server can handle each request on its own. - Discovery. Servers must implement a
server/discoverrequest that returns their supported versions, capabilities and identity in one response. - Opt-in notifications. A client that wants change notifications - for example when a server's tool list changes - opens a
subscriptions/listenstream naming the events it wants. - Deprecations. Sampling, which let a server ask the host's model for a completion, and protocol-level logging are deprecated as of this version. The documentation directs new implementations to call model provider APIs directly and to log to stderr or OpenTelemetry.
Finding servers
This site keeps a list of MCP servers, each linked to its official repository or documentation, on the Tools page. For an overview of the wider tool landscape, see Getting Started with AI Tools.
Related Guides
Enjoyed this? Get more in your inbox.
Up to ten of the week's AI news stories, by email once a week.