Open any kitchen drawer from 2012. You'll find a Nokia charger, a Motorola charger, a Samsung charger, an iPhone 4 cable, and a micro-USB that fits three of your seven devices. Every phone had its own connector. You traveled with a bag of cables. Then USB-C happened. One cable. Every device. The devices didn't change. The connection did.
MCP is USB-C for agents.
Right now, connecting an agent to your database means writing Claude-specific code. Want OpenAI to do the same thing? Write it again. Gemini? Again. Every combination of agent and tool needs its own wiring. MCP says: write your tool once. Any agent uses it.
Three players, that's it
The entire architecture has three roles:
| Player | What It Is | Analogy |
|---|---|---|
| Host | The agent application (Claude Desktop, an IDE, your custom agent) | The person holding the cable |
| Client | Lives inside the host, manages connections to servers | The USB-C port |
| Server | Exposes your tools and data over the protocol | The device you're plugging into |
Host asks a question. Client routes it to the right server. Server answers. No model-specific code anywhere in the chain.
A complete MCP server in 10 lines
This exposes a weather tool any MCP-compatible agent can call:
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({ name: "weather", version: "1.0.0" });
server.tool("get-weather", { city: z.string() }, async ({ city }) => ({
content: [{ type: "text", text: `72°F and sunny in ${city}` }]
}));
await server.connect(new StdioServerTransport()); Claude Code, Cursor, Codex, your custom build. Any of them can call this. You wrote it once.
Before and after
| Before MCP | After MCP | |
|---|---|---|
| Adding a new model | Rewrite every tool integration | Change nothing |
| Adding a new tool | Write N integrations (one per model) | Write one MCP server |
| Switching frameworks | Migrate all tool code | MCP servers are framework-independent |
| Testing tools | Need the actual model running | Test the MCP server independently |
| Sharing tools | Copy-paste code, hope it works | Install the MCP server, done |
Models are getting commoditized. The lasting advantage isn't which model your agent uses. It's the connections you build to your data, your tools, your workflows. MCP standardizes those connections. They survive the next model swap, the next framework migration, the next "everything changed" moment.
If you're writing model-specific integrations in 2026, you're filling that kitchen drawer with chargers again. One standard. Any agent. Build once.