EXPLAINER

What is MCP (Model Context Protocol)?

MCP is an open protocol that standardises how AI applications connect to external tools, data sources and prompts, so one integration can work across many AI clients.

Short answer: MCP (Model Context Protocol) is an open standard for connecting AI applications to tools and data. An MCP server exposes capabilities; an MCP client inside an AI app discovers and uses them — a common "plug" instead of custom integrations for every pairing.

What is it?

The Model Context Protocol (MCP) is an open protocol, introduced by Anthropic in late 2024, that defines a standard way for AI applications to connect to external systems: files, databases, SaaS apps, developer tools and more.

Before such a standard, connecting M AI applications to N tools meant building up to M × N custom integrations. With MCP, a tool provider builds one server, an AI application implements one client, and any compliant pair can work together. People often compare it to a universal connector: an analogy for the idea, not a literal description of the wiring.

Details of the specification evolve; always check the current specification and documentation at modelcontextprotocol.io before building.

Why does it matter?

  • Less glue code: write the integration once, reuse it across compatible applications.
  • Discoverability: a client can ask a server what it offers, instead of hard-coding it.
  • Ecosystem: many ready-made servers exist for common systems, and you can build your own.
  • Clear separation: the AI application handles the model and user experience; the server handles access to the underlying system.

It also concentrates security responsibility: a connected server can read data or act on your behalf, so what you connect — and what you approve — matters (AI Privacy and Security: What to Know Before You Paste Data).

How does it work?

Roles, in brief (full detail in MCP Servers and Clients: Roles, Transports and Setup):

  • Host: the AI application the user interacts with (a chat app, IDE assistant, agent).
  • Client: a component inside the host that maintains a connection to one server.
  • Server: a program exposing capabilities.

A server can offer three main kinds of capability:

  • Tools — actions the model can invoke (like Function Calling (Tool Calling) Explained functions): "create issue", "run query".
  • Resources — data the application can read, such as files or records, for context.
  • Prompts — reusable prompt templates users can select.

Messages use JSON-RPC 2.0. Servers can run locally (the client launches them and talks over standard input/output) or remotely over HTTP. In specification revisions up to 2025-11-25, a connection begins with an initialisation handshake in which both sides declare what they support. Revision 2026-07-28 removed that handshake and protocol-level sessions: every request now carries the protocol version and client capabilities, and servers advertise theirs through a server/discover call. Which model your SDK implements depends on its version, so check (MCP Servers and Clients: Roles, Transports and Setup). Either way, the client then lists and calls tools, reads resources and so on.

// Client asks a server what tools it has
{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }

// Client calls one
{ "jsonrpc": "2.0", "id": 2, "method": "tools/call",
  "params": { "name": "search_issues", "arguments": { "query": "login bug" } } }

(Simplified; consult the specification revision your SDK implements for the exact fields and the connection sequence. For protecting remote servers, see MCP Authorization (OAuth for MCP Servers).)

Example

A developer connects their IDE assistant to a Git hosting MCP server and a database MCP server. The assistant can now list open issues, read a failing test, query a staging database (read-only credentials), and propose a fix — all through the same protocol. Swapping to a different MCP-compatible assistant later does not require rewriting those two integrations.

When should I use it?

MCP makes sense when you want tools reusable across applications, when you consume third-party integrations, or when building an ecosystem where many clients should reach your service. For a single application calling a couple of internal functions, plain Function Calling (Tool Calling) Explained may be simpler. See Function Calling vs MCP and MCP vs API: What's the Difference?.

Common mistakes

  • Thinking MCP replaces APIs. MCP servers usually wrap APIs (MCP vs API: What's the Difference?).
  • Installing unvetted servers. They run code and can reach your data.
  • Granting broad credentials instead of least privilege.
  • Assuming MCP makes a model smarter. It provides access, not capability.
  • Skipping approval prompts for sensitive actions.
  • Treating server-provided text (tool descriptions, results) as trusted (What is Prompt Injection?).