DevelopmentAI Agents

What Is MCP? Model Context Protocol Explained for Developers

MCP is an open standard for connecting AI apps to tools and data. Here is how it works, how it differs from REST, and what the stateless 2026-07-28 spec changes.

Toolbit AI - Team
4 min read
What Is MCP? Model Context Protocol Explained for Developers

Short answer: MCP (Model Context Protocol) is an open standard for connecting AI apps to tools and data. You build one MCP server, and every MCP-compatible client can use it.

Anthropic introduced MCP on Nov 25, 2024. Anthropic's announcement calls it a standard "to build secure, two-way connections between their data sources and AI-powered tools." Version 2026-07-28 is now the latest spec, and it removes protocol-level sessions.

One protocol replaces a connector per model

MCP replaces per-model connectors with one shared protocol. Without it, each AI app needs its own link to each tool.

Take an example: 10 apps and 100 tools. Custom links mean up to 1,000 integrations to build and maintain. With MCP, each tool ships one server and each app ships one client.

That is the whole pitch. Your server keeps working when a new model or client ships.

How MCP works: three primitives over JSON-RPC

MCP works by exchanging JSON-RPC 2.0 messages between a client inside the AI app and a server you write. The server exposes up to three kinds of features.

PrimitiveWhat it is
ToolsFunctions the AI can call (create a file, query a database)
ResourcesData the AI can read (files, records, API responses)
PromptsReusable templates for structured tasks

Neither side needs to know the other in advance. The client discovers what the server offers, then calls it. Since 2026-07-28, the current specification lists "Per-request capability negotiation," so capabilities travel with each request instead of being agreed once at initialize.

Which apps support MCP?

ChatGPT, Cursor, Gemini, Microsoft Copilot and Visual Studio Code support MCP, per Anthropic's Dec 9, 2025 post. The same post counts "more than 10,000 active public MCP servers" and "97M+ monthly SDK downloads across Python and TypeScript." Those are vendor figures from December 2025.

Governance moved the same day. MCP now sits in the Agentic AI Foundation, "a directed fund under the Linux Foundation co-founded by Anthropic, Block and OpenAI."

Claude Code is also an MCP client. For a no-jargon version of this page, see our plain-English MCP guide.

The 2026-07-28 spec makes MCP stateless

The 2026-07-28 release turns MCP into "a stateless core that scales on ordinary HTTP infrastructure." The 2026-07-28 release candidate notes call it "the largest revision of the protocol since launch." They also warn: "This release contains breaking changes."

Before 2026-07-28 a client ran a handshake and kept a session pinned to one server; now each request stands alone and any instance can answer

Each request now carries what the server needs, so no server holds a session:

  • Handshake removed. The initialize/initialized handshake is gone.
  • Session header removed. The Mcp-Session-Id header goes, and so does the protocol-level session behind it.
  • No sticky routing. Any server instance can handle any request. You no longer need sticky routing or a shared session store at the protocol layer.
  • MCP Apps. Servers can "ship interactive HTML interfaces that hosts render in a sandboxed iframe."
  • Tasks extension. Long-running work moves to a new Tasks lifecycle.
  • Auth. Clients must validate the iss parameter on authorization responses, per RFC 9207.
  • Deprecations. Roots, Sampling and Logging are "annotation-only deprecations." They keep working for at least twelve months.

A stateful server pinned each client to one instance. A stateless one lets you put plain load balancing in front of a pool.

Under sessions a client was locked to one server; without them its requests can fan out to any of several servers

MCP vs REST API: what's the difference?

MCP wraps REST; it does not replace it. Your API keeps serving people and services. The MCP server adds a layer a model can discover and call correctly.

TermWhat it isHow it differs from MCPWhen you meet it
REST APIYour service's HTTP endpointsBuilt for developers who read docsBehind most MCP servers
Custom connectorOne app's private plugin for one toolWorks with one client onlyOlder AI integrations
MCP serverA standard wrapper over your API or dataAny MCP client can discover and call itWhat you build now

If agents will act on real systems, add approval gates before write actions. If you also use agent skills, read how skills differ from MCP.

See it yourself: migration checklist for the 2026-07-28 spec

Start by searching your server and client code for what the spec removed:

grep -rnE "Mcp-Session-Id|initialize|-32002" src/

Each hit is a migration item. A match on initialize may be your own code, so read it before you delete it. Then work the list:

  1. Remove your initialize/initialized handling.
  2. Stop issuing or reading Mcp-Session-Id. Move any per-session state into the request or your own store.
  3. Drop sticky routing at the load balancer once no state lives in memory.
  4. If you shipped the 2025-11-25 experimental Tasks API, migrate to the new lifecycle.
  5. In clients, validate iss on authorization responses (RFC 9207).
  6. The release notes say that if your client matches on the literal -32002 value, you should update it. That is the code your grep found.
  7. List any use of Roots, Sampling or Logging, and plan replacements within twelve months.

For a working agent setup, see n8n and Claude over MCP.

Should you build an MCP server?

Yes, if an AI model needs to touch your tool or data. MCP is plumbing now: unglamorous, mostly invisible when it works, and assumed by default. A custom integration is the harder path. Start stateless, and run the checklist above on any existing server.

Share this article

Related articles

Continue exploring similar guides and insights