Model Context Protocol

The Model Context Protocol (MCP) is an open standard, introduced by Anthropic in late 2024, that defines how AI models communicate with external tools and data sources.

Before MCP, developers had to write custom integration code for each tool or data source they wanted to connect to a model. MCP solves this by providing a single, standardized protocol. Any tool that implements the MCP server specification can be connected to any MCP-compatible model client, without bespoke integration work.

MCP enables AI models to interact with external systems – reading from and writing to calendars, CRMs, databases, code repositories, communication tools such as Slack, and more. The model can also use these integrations to take actions: scheduling meetings, committing code, querying databases, sending messages.

MCP is a client-server protocol. An MCP server exposes three kinds of primitive: tools (functions the model can call), resources (data the model can read), and prompts (reusable templates). An MCP client (typically the AI application or agent) connects to one or more MCP servers and uses their capabilities to fulfill tasks. A single agent can connect to many MCP servers simultaneously, giving it access to a large and composable set of capabilities.

MCP is particularly relevant for agentic use cases, where a model needs to plan and execute multi-step tasks using a variety of tools.

MCP borrows from the Language Server Protocol (LSP) – the same standard that lets code editors talk to language tooling – and exchanges messages over JSON-RPC 2.0.

Because MCP servers can feed untrusted content and tool definitions into a model, the protocol also introduces security risks. Vulnerabilities include prompt injection, tool poisoning (malicious instructions hidden in tool descriptions), data exfiltration through combined tools, and lookalike tools that shadow trusted ones.

MCP has been widely adopted across the industry. See also A2A (Agent2Agent), a separate protocol that addresses a separate concern — communication between agents, rather than between agents and tools or data.


See also