MCP vs API: what's the difference? (And when APIs win)
MCP and HTTP APIs both expose the same capabilities, but MCP writes them for a model rather than a developer. It ships a tool list the agent reads at runtime over JSON-RPC, which buys discovery without redeploys and costs context window on every request, called or not.
Most MCP servers wrap an HTTP API the agent could already call. The difference is who reads the description: a developer writing a client once, or the model at runtime, on every request.
MCP vs API at a glance
| Aspect | HTTP API | MCP |
|---|---|---|
| Consumer | Developer writing a client | Model choosing a call at runtime |
| Discovery | Static spec, regenerate the SDK | tools/list against a live server |
| Wire format | HTTP verbs on paths | JSON-RPC over stdio or Streamable HTTP |
| Session | Stateless request | Per-request since spec revision 2026-07-28, initialize handshake before that |
| Context cost | Zero until called | Every tool definition loaded upfront |
When MCP earns the overhead
MCP pays when the tool list changes without the client changing. A running server can add a tool and Claude Desktop, Cursor or VS Code picks it up with no redeploy, and one server covers every client that speaks the protocol. Auth, logging and rate limits land in one place instead of once per integration. The 2026-07-28 revision also dropped the connection-scoped handshake, so a server can now sit behind a normal load balancer.
When calling the API directly wins
For one known endpoint, MCP is pure overhead. curl, jq, git and psql are already in the model's training data, so a shell tool usually beats a bespoke server. Anthropic's own code-execution pattern makes the cost visible: a Google Drive to Salesforce workflow ran on 150,000 tokens of loaded tool definitions and dropped to 2,000 when the agent wrote code against the servers instead.
How to choose
Count tools, not services. A handful of stable endpoints should be wired directly. Past that, or when several clients need the same surface, run an MCP server and expose a filtered subset. Anthropic notes agents now reach hundreds or thousands of tools across dozens of servers, and loading all of them degrades tool selection before the first message arrives.
Last updated: May 20, 2026