MCP stands for Model Context Protocol — an open protocol developed by Anthropic that standardizes how AI applications (LLMs) connect to external data sources and tools.
What is MCP?
Think of MCP as a "USB-C port for AI applications." Just as USB-C provides a standardized way to connect devices to various peripherals, MCP provides a standardized way to connect AI models to different data sources and tools. It was created to solve the "M×N integration problem" — the need for every AI application to build custom integrations for every external tool.
Core Architecture
MCP follows a client-server architecture with three key participants:
| Component | Role |
|---|---|
| MCP Host | The AI application (e.g., Claude Desktop, VS Code, IDE) that coordinates connections |
| MCP Client | A component within the host that maintains a 1:1 connection with a server |
| MCP Server | A lightweight program that exposes specific capabilities (tools, resources, prompts) |
A single host can connect to multiple servers simultaneously, each through its own dedicated client.
The Three Core Primitives (Server Features)
Servers expose capabilities through these building blocks:
-
Tools — Executable functions that the LLM can invoke to perform actions (e.g., search flights, send messages, query databases). Model-controlled.
-
Resources — Read-only data sources that provide context (e.g., file contents, database schemas, API responses). Application-controlled.
-
Prompts — Reusable templates that structure interactions with the LLM (e.g., "Plan a vacation" workflow). User-controlled.
Client Features (Bidirectional)
Clients can also offer features to servers:
- Sampling — Servers can request LLM completions from the client's AI application
- Elicitation — Servers can request additional information from users
- Roots — Servers can inquire about URI/filesystem boundaries
Technical Foundation
- Protocol: Built on JSON-RPC 2.0 for message exchange
- Transports: Supports stdio (local processes) and Streamable HTTP (remote servers)
- Lifecycle: Stateful connections with capability negotiation during initialization
- Notifications: Real-time updates (e.g., tool list changes)
Why MCP Matters
- Solves the M×N problem — Instead of building N custom integrations for M applications, you build M clients and N servers (M+N complexity)
- Standardization — A common language for AI-tool communication
- Security — Built-in principles for user consent, data privacy, and tool safety
- Composability — Multiple specialized servers can work together seamlessly
- Open ecosystem — Growing list of pre-built integrations and SDKs (Python, TypeScript)
Getting Started
Official SDKs are available for Python (mcp package) and TypeScript (@modelcontextprotocol/sdk). A simple MCP server can be created in about 15 lines of code using decorators to expose tools and resources.
For more information, visit modelcontextprotocol.io or the official specification.