Model Context Protocol
In short
The Model Context Protocol (MCP) is an open protocol for connecting language-model applications to external data sources and tools2. Anthropic released it so developers could build against one standard instead of a separate connector for each data source1.
- Also called
- MCP
- Topic
- AI agents
- Level
- Some background helps
- First described
- Anthropic introduced and open-sourced MCP on 25 November 2024. Its announcement names David Soria Parra and Justin Spahr-Summers as its creators1.
MCP uses JSON-RPC 2.0 messages between three roles. A host is the language-model application that starts a connection. A client is a connector inside that host. A server provides context and capabilities2. A server can offer resources, which are context and data for the user or the model; prompts, which are templated messages and workflows; and tools, which are functions for the model to execute2. The base protocol includes server and client capability negotiation2.
Anthropic’s announcement describes two sides of that design. Developers either expose data through MCP servers, or they build AI applications, called MCP clients, that connect to those servers1. The stated aim is to replace separate connectors, one per data source, with a single protocol1. At the launch, Anthropic shared pre-built servers for Google Drive, Slack, GitHub, Git, Postgres and Puppeteer1.
The specification says MCP itself cannot enforce these security principles at the protocol level. Users must explicitly consent to and understand all data access and operations, and a host must obtain explicit user consent before it invokes a tool2. Tools represent arbitrary code execution. Descriptions of tool behaviour, such as annotations, should be treated as untrusted unless they come from a trusted server2. The tools section adds that there should always be a person who can deny a tool call3.
Example
The tools specification uses a weather lookup, get_weather, as its sample tool. The client lists the server’s tools, the model selects one, and the client sends the call3. Separately, the specification says the host must get explicit user consent before invoking any tool2.
Why it matters
MCP is a shared way for a language-model application to reach external data and tools, including tools that run code, and the host must get explicit consent before a tool call2. The tools section also says a person should be able to deny that call3.
Questions people ask
What does MCP stand for?
MCP stands for Model Context Protocol. The specification calls it an open protocol for connecting language-model applications with external data sources and tools2.
Is MCP the same as an API?
No. The specification defines MCP as a protocol that uses JSON-RPC 2.0 messages between a host, a client and a server2. A tool may query a database, call an API, or run a computation3. Anthropic describes MCP as a replacement for a separate connector for each data source1.
Can an MCP tool take an action, or only supply data?
Both exist, as different features. Resources supply context and data. Tools are functions the model can execute, and the specification treats them as arbitrary code execution2. A tool can query a database, call an API, or run a computation3. The host must obtain explicit user consent before it invokes a tool2.
Related terms
Tools that use it
- OpenAI Apps SDKOpenAI's toolkit for building interactive apps that run inside ChatGPT conversations, based on MCP.
- ChatGPT Workspace AgentsShared ChatGPT agents, built on Codex, that teams set up to run repeat work tasks in ChatGPT or Slack.
- Claude CodeAnthropic's coding agent that reads a codebase, edits files and runs commands from the terminal, IDE or web