Tools and protocols

Model Context Protocol (MCP)

stable definition
Machine-readable Download Markdown

Definition

The Model Context Protocol, or MCP, is an open client-server protocol for connecting AI applications to external tools and context. It standardizes how a host discovers and interacts with server-provided tools, resources, and prompts, plus optional features negotiated by the participants.

The architecture separates three roles. The host is the AI application and policy boundary. It maintains an MCP client for each connection. An MCP server exposes a focused integration. The protocol defines a data layer for messages and lifecycle, while transports carry those messages locally or over a network.

Origin and evolution

Anthropic introduced MCP on November 25, 2024. The announcement names David Soria Parra and Justin Spahr-Summers as the protocol's creators at Anthropic. The protocol has continued to evolve through an open ecosystem, including versioned changes to authorization, transports, tasks, elicitation, and other capabilities. Durable definitions should name architectural roles and link to the current specification instead of freezing one release's wire details.

A connection is not trust

MCP reduces custom integration work. It does not establish that a server is honest, a resource is safe to place in context, or a tool call is authorized. The host still needs identity, consent, least privilege, schema validation, provenance, isolation, logging, and defenses against prompt injection and supply-chain compromise.

Distinguish it from nearby terms

MCP connects an AI application with tools and context. A2A connects independent agent services around messages, tasks, and artifacts. Function calling defines structured model output but not discovery, transport, server lifecycle, or authorization. An MCP server may wrap an ordinary API behind a model-facing contract.

Check your understanding

Your host discovers a server and can list its tools. What has MCP established? Compatible communication. Before execution, decide whether the server and version are trusted, the user is authorized, the arguments fit the task, and the side effect is permitted.