Held for a later launch wave — not part of the first launch.

Comparison

MCP vs REST API — When to Use Which

In Smithery's March 2026 benchmark, agents calling an API with its spec succeeded 55% of the time. Through native MCP tools they hit 92%, with about a third of the tokens. Here's when each is the right call, and when a skill or CLI fits better.

The benchmark data

In Smithery’s March 2026 benchmark (report on GitHub; 732 runs, 3 APIs, 8 experiment families), each comparison kept the tasks fixed and changed one thing:

ComparisonSuccess
Raw API, blind → with its spec52% → 73%
Raw API with spec → native MCP55% → 92%
CLI with descriptions → native MCP83% → 92%

With native MCP tools, agents also used about a third of the median tokens of the API-with-spec runs (28,503 vs 92,864) and finished in half the time (10.3s vs 20.7s). Against the auto-generated CLI, MCP again used about a third of the tokens (28,838 vs 82,942).

About this evidence: Smithery, an MCP registry company, ran Claude Code and Codex (Claude Haiku 4.5, Sonnet 4.6, GPT-5.4) against three APIs, with 12 to 60 runs per condition. A later GitHub benchmark pointed the other way on cost: Scalekit (May 2026) measured MCP at up to 32 times the tokens of the gh CLI. GitHub is the API models know best, which is the familiarity effect below. Treat these numbers as direction, not law.

Token cost now depends as much on the client as on the protocol. Tool search loads only the tools a task needs, and code-execution approaches like Cloudflare’s Code Mode fit its 2,500-endpoint API into about 1,000 tokens.

Familiarity decides the call

The same Smithery benchmark tested blind calling against APIs with different levels of training-data familiarity, and the spread is wide:

APISuccess, blind (no docs)Why
GitHub REST (well-known)92%Well represented in training data
Singapore bus API (niche)42%Rarely seen in training data
Linear GraphQL (popular)17%Its query shapes can’t be guessed

A raw REST API can perform close to MCP when the API is famous enough that the model already knows it. That advantage disappears for anything the model hasn’t seen, and enterprise internal APIs have zero training priors by definition. That’s exactly where MCP, and good descriptions generally, matter most.

GraphQL struggled on its own. On the same Linear tasks it hit 17% success at 174,532 median tokens, against 88% and 33,149 tokens for MCP tools. Query flexibility didn’t translate into agent-friendliness. As the benchmark’s authors put it: a single GraphQL tool that could do anything performed worse than ten specific tools that each did one thing well.

A working rule of thumb

Smithery’s own rule, which lines up with Emmanuel’s Agent Access Stack: if a capability is bespoke to your team, it’s probably a skill. If the vendor should maintain it, it belongs in an MCP server. For local tools like git or docker, the CLI is the native surface.

When MCP is the right call

  • The API is unfamiliar to the model (internal, niche, or new), so there are no training priors to lean on.
  • Multiple agents or clients need the same capability, and you want one contract instead of many.
  • You want structured, typed tool definitions with descriptions the model can act on directly, rather than a spec it has to interpret.
  • Agents act for your customers’ users, so you need per-user OAuth, scoped permissions and an audit trail. MCP standardizes that for remote servers, and the 2026-07-28 spec tightened it.

When REST (with good specs) is enough

  • The API is well-known and already has strong training-data coverage, or your consumers are mostly human developers today.
  • Your API isn’t solid yet. An MCP layer on a shaky API just wraps the shakiness, so fix the API first.
  • Only one team needs a small internal capability. A well-described API endpoint, or a skill on top of it, may cover it without running a server.

The bottom line

Build a good AI-ready API first. Native MCP consistently outperforms raw API calls in these benchmarks, but the gap narrows sharply for well-known APIs and widens sharply for unfamiliar ones. Build the API right, then decide whether MCP is worth wrapping around it based on who’s calling it and how well the model already knows it. For a quick audit, use the AI-Ready API Checklist.

References


Next step

Train your team, or learn on your own

FAQ

What is MCP, in one sentence?
Model Context Protocol (MCP) is an open standard, now hosted by the Linux Foundation's Agentic AI Foundation, that lets AI agents call a product's tools through typed, described tool definitions instead of reading a full API spec.
If MCP performs better in benchmarks, why not build MCP for everything?
Because the benchmark advantage comes from removing ambiguity for the agent, and a well-known REST API, backed by strong training data, already has low ambiguity. MCP earns its keep most where an API is unfamiliar to the model, or where the same capability needs to be shared across multiple agents or clients, or where agents act for your customers' users.
Does MCP replace my REST API?
No. MCP wraps your API. Smithery's own conclusion: design a good API first, then expose a simple MCP adapter on top.