What is Model Context Protocol (MCP)?
An open protocol that standardizes how AI applications connect language models to external tools, data and prompts.
Definition
The Model Context Protocol (MCP) is an open standard, introduced by Anthropic in November 2024, that defines how an AI application gives a language model access to outside context and capabilities. Instead of every app writing a custom plugin for every service, a service is wrapped once as an MCP server and any MCP-compatible application can use it. The protocol uses JSON-RPC 2.0 messages over stateful sessions and follows a host-client-server architecture: the host is the AI application, it creates one client per server connection, and each server exposes features. Servers can offer tools (functions the model can call), resources (data used as context) and prompts (reusable templates); clients can offer sampling, roots and elicitation back to servers. The specification describes itself as inspired by the Language Server Protocol, which did the same job for programming-language support in editors.
When to Use Model Context Protocol (MCP)
The specification defines two standard transports: stdio (the client launches the server as a subprocess) and Streamable HTTP (the server runs independently). Connections start with capability negotiation, so a client only uses the features a server declares. The spec is versioned by date; the current version at the time of writing is 2025-11-25. HTTP-based servers are expected to follow the protocol's authorization specification.
Model Context Protocol (MCP) in Practice
- A coding assistant (the host) opens one MCP client for a GitHub server, whose tools can create issues, and another for a filesystem server, which exposes project files as resources.
- A team wraps its internal REST API as an MCP server once, so any MCP-compatible chat app or IDE can call it without a separate plugin per app.
- A local server runs as a subprocess of a desktop app and talks over stdio; a hosted server is reached over the Streamable HTTP transport.
Common Mistakes
- Treating MCP as a model or an agent framework. It is a wire protocol: you still choose the model and the application.
- Giving tools broad permissions without user consent. The specification puts consent and authorization on the host; tool descriptions from servers you don't trust should be treated as untrusted input.
- Mixing up tools and resources. Tools are actions the model can invoke; resources are data handed to the model as context.

