All posts
MCP education··4 min read

MCP vs REST APIs: when to wrap and when to skip

REST is for humans writing client code. MCP is for LLMs picking the next tool. The diffs that matter: discovery (tools/list vs reading docs), auth (OAuth 2.1 with PKCE vs anything goes), errors (machine-readable codes vs arbitrary bodies), pagination (cursor-based spec vs invent-your-own), and bounded output (token-aware caps vs return-whatever). MCP doesn't replace REST — most MCP servers are 200 lines of glue over an existing REST API. The win is schema, consent, and structured errors, not rewriting your backend.

⌘
Command+K team
Platform engineering

Different audiences

REST is for humans writing client code. MCP is for LLMs picking the next tool. The shapes diverge because the consumers differ.

Concrete differences

  • Discovery — REST: read docs. MCP: tools/list returns names, descriptions, JSON schemas.
  • Auth — REST: anything goes. MCP: OAuth 2.1 with PKCE is the spec.
  • Errors — REST: HTTP codes + arbitrary bodies. MCP: structured error with machine-readable code the model can act on.
  • Pagination — REST: every API invents its own. MCP: cursor-based, spec-defined.
  • Bounded output — REST: returns whatever. MCP: server should cap output for token budget.

Wrap, don't replace

Most MCP servers are 200 lines of glue over an existing REST API. The win is the schema, the consent UI, and the structured errors — not rewriting your backend.

FAQ

Does MCP replace REST?
No. MCP is the bridge between LLMs and tools; REST is still the bridge between services. Most MCP servers wrap a REST API.
Why not just give the LLM REST docs?
You can — and many do — but pagination, auth, error shapes, and verb semantics confuse models. MCP gives the LLM tools, not docs.
Will MCP support streaming and webhooks?
Streaming yes (resources can stream). Webhooks no — MCP is request/response from the model's perspective; push events live elsewhere.

Keep reading

Go deeper