The problem: every AI-to-tool connection used to be handmade

AI models on their own can only do two things: read the text you give them and write text back. They cannot check your calendar, query your database, or open a browser. To do real work, they need connections to outside systems, and until late 2024, every one of those connections was custom-built.

That creates a multiplication problem. Say five AI applications each need to talk to five services: GitHub, Gmail, Slack, a database, a browser. That's twenty-five separate integrations, each with its own authentication, its own tool descriptions, its own edge cases. Developers who tried it describe the authentication piece alone as "as painful as it gets": three services meant three different login flows to build and maintain.

The Model Context Protocol (MCP) is Anthropic's answer, released as an open standard in November 2024. It defines one common way for AI applications to discover and use external tools and data. Build the connection once, on either side, and it works with everything else that speaks the protocol. The multiplication problem becomes addition: five apps plus five services means ten implementations, not twenty-five.

The comparison you'll see everywhere, including the official documentation, is USB-C. Before it, every device had its own charger; after it, one port fits all. MCP aims to be that port for AI applications.

WITHOUT MCP · EVERY LINK HANDMADE 5 apps 5 tools 5 × 5 = 25 bespoke integrations WITH MCP · CONNECT ONCE ON EACH SIDE 5 apps MCP one layer 5 tools 5 + 5 = 10 connections
Fig 1 · the multiplication problem, before and after MCP

One more reframing that makes MCP click: an MCP server is essentially a wrapper around an API. Users who built their own put it plainly: if something has an API, you basically already have the makings of an MCP server for it. The protocol doesn't replace existing APIs; it gives models a standard way to find them, understand them, and call them. And the name itself is a hint often lost in the noise: it is the Model Context Protocol. The point is getting relevant context and capabilities to the model, which cannot read your mind, only your connections.

The anatomy: host, client, server

Every MCP setup, no matter how elaborate, has three participants:

Take a concrete example you'll meet again in this series: connecting a coding assistant to GitHub. The assistant (host) spins up a client, which connects to the GitHub MCP server. The server tells the client what it can do; from then on, the model can list issues, read pull requests, and create branches through that one standardized channel. Add a second server (say, a browser) and the host simply creates a second client. Nothing about the GitHub connection changes.

Servers run in two places. Local servers run as processes on your own machine and talk to the host over standard input/output, which is right for anything that needs your filesystem or local apps. Remote servers run on someone else's infrastructure and speak HTTP, which is right for cloud services, where the provider hosts one server and every user connects to it. X's hosted MCP server, for example, gives any compatible agent access to its real-time data with no local setup at all. Under the hood, both variants exchange the same JSON-RPC messages; only the transport differs.

THE APP YOU USE HOST Claude Desktop / Cursor / VS Code client 1 client 2 client 3 ONE SERVER EACH filesystem server local · stdio GitHub server remote · http database server local · stdio one client per server, always: add a server, the host just adds a client
Fig 2 · the anatomy: one host, one client per server

What a server can offer: tools, resources, prompts

The protocol defines three kinds of things a server can hand to the host: the official docs call them primitives (worth knowing outside the bookmarks, because most tweets only ever mention the first one):

A database server makes the trio concrete: tools to run queries, a resource containing the schema, and a prompt with worked examples of how to ask good questions of that database.

Discovery is what makes this dynamic. When a host connects to a server, the two first negotiate what they each support, then the client asks "what have you got?" (tools/list), and the server answers with its current catalog. If the catalog changes later, the server can notify the client to refresh. Nothing is hardcoded on the model's side, which is why you can bolt a brand-new server onto an existing assistant and it just starts using it.

Servers can also ask things of the application: they can request a model completion (so a server can use AI without shipping its own model access) and they can ask the user a clarifying question mid-task. Those two, sampling and elicitation in protocol terms, are what turn MCP from a one-way tool catalog into a two-way conversation.

CLIENT SERVER initialize capability negotiation capabilities tools/list what have you got? catalog: tools · resources · prompts the model picks a tool tools/call result into the model's context
Fig 3 · discovery: the client asks, the server answers with its catalog

Why it stuck: the ecosystem effect

Protocols live or die by adoption, and the bookmark record traces MCP crossing that threshold. Early on, even sympathetic developers found the docs "inscrutable" and the value unproven; one built a toy server specifically "to form my own opinion" and came away convinced it wasn't hype. By mid-2025 the question was settled by who showed up:

One boundary worth drawing: MCP standardizes how an agent reaches tools and data. It does not cover how agents talk to other agents; that's the territory of complementary protocols like Google's Agent2Agent (A2A), announced with 50+ partners in April 2025, one of more than a dozen protocols competing in the agent-communication space. If you remember one division of labor: MCP connects a model to capabilities; A2A-style protocols connect agents to each other.

Where to go next

You now have the mental model: a host runs one client per server; servers offer tools, resources, and prompts; discovery is dynamic; local servers speak stdio and remote ones speak HTTP.

The rest of this series makes it practical:

If you want the primary source, the official documentation at modelcontextprotocol.io covers the architecture in depth, and a two-hour workshop by MCP's creator at Anthropic (bookmarked below) walks the whole protocol end to end.

Sources

Drawn from 23 bookmarked posts and demos, plus official documentation: modelcontextprotocol.io/docs/getting-started/intro · modelcontextprotocol.io/docs/learn/architecture.