How Does MCP Differ From an API?
Filed as AFR/MCP-06 · task class Data processing · all MCP topics
The two words are not alternatives
The first thing to settle is that these are not two options for the same slot. An API is what a service offers. MCP is a protocol for how an agent application discovers and calls capabilities in a uniform way. In practice one usually sits behind the other: an MCP server is a program that fronts an API and republishes part of it as tools and resources.
What the protocol layer adds is discovery and uniformity. Operations are listed at runtime with their descriptions and argument schemas, so a caller written before those operations existed can still call them correctly. Connection, listing and invocation look the same regardless of what is behind them. And reading is separated from invoking, which an ordinary HTTP interface leaves to convention and to documentation.
What it adds to the service itself is nothing. Authorization, rate limits, error semantics, latency and correctness are exactly as they were. An awkward interface republished as tools is an awkward set of tools, and there is now one more process standing between the caller and the thing it wanted.
The difference that decides most of the work is who reads the description. An interface document is read once, by a person, who writes code encoding what they understood; it can afford to be imprecise because a human resolves the ambiguity and freezes the resolution into the client. A published operation is read at call time, every time, by whatever is calling, and no one resolves anything on its behalf. Republishing an existing interface is therefore a writing exercise rather than a translation — names and descriptions have to carry unaided what a paragraph of surrounding documentation used to carry.
What the extra layer costs
A process that did not exist before, with its own deployment, its own credentials, its own failure modes and its own version, standing between a caller and a service that was already reachable. Everything true of the service is still true of it; there is simply one more place for the arrangement to be misconfigured.
And a second description of the same operations. The interface document and the published schema now say overlapping things about one system, with nothing keeping them in agreement except somebody remembering. Where a single application talks to a single service under a contract that rarely moves, that buys very little — the value of the arrangement is entirely in being callable by something that was never written against you.
What the protocol layer does not change
So the useful question is not which of the two is better. It is whether an integration benefits from being discoverable at runtime by an application that was not written against it. Where the answer is no — one caller, one service, a stable contract — a direct call remains the shorter path and the fewer moving parts.
How the Registry classifies comparing two integration shapes
Comparing two integration shapes for one service and writing a recommendation is examination and judgement over material that already exists, which the data processing class covers. On the order form's task class field, select Data processing, which covers data handling, transformation, analysis, and computation. That class has its own page at /tasks/analysis.
The Registry files this topic under one canonical task, fixed in advance and published here rather than generated per visit:
Compare an existing REST integration with an MCP integration for the same internal service and write a recommendation.
That string, hashed once, is af6c1205e08f60c2… — the first
sixteen of sixty-four hex characters. An assessment ordered against a task of this
kind is computed from the class, the wording submitted, and the permanent chart the
Registry derives for the model configuration named on the order: its ascendant, its
ruling planet, and the composite harmony that constrains the range of verdicts
available to it. The whole derivation is published at /method.
The risk in a comparison like this is a recommendation that reads as a verdict on the underlying service, when what was actually compared was two ways of reaching it. 4 risk factors are tracked for data processing tasks generally; an assessment reports 3 of them, selected by the submitted task's own seed rather than chosen. Their names, severities and descriptions are certificate content and are not published on a free page.
What this page does not claim
The Registry makes no representation that an assessment predicts the outcome of any task, and no assessment is validated against real-world results.
This page defines a term and states a classification. It publishes no verdict: the Registry does not test implementations, does not measure how often anything works, and has never run the canonical task above against any model. Which service is being fronted, how many callers it has, and what its authorization model looks like are the facts that decide the question. The canonical brief supplies none of them.
What is sold is a permanent, numbered assessment for one submitted task at one model configuration — a verdict on a seven-point scale, a recommended execution window, and, above the first tier, the risk factors the class tracks. EUR 1.90 Standard, EUR 4.90 Extended, and EUR 14.90 Full Chart, which adds the permanent chart for the configuration itself. Assessments from EUR 1.90; machine-readable at /pricing.json.
Related surfaces
← All MCP topics · The AFR-1 method · Data processing task class
Related topics: The protocol itself · Tools · Remote servers
Questions about the comparison
- Is MCP a replacement for APIs?
- No. An MCP server usually stands in front of an API and republishes part of it in a uniform, discoverable form. The service, its authorization and its semantics are unchanged by that.
- What does MCP add that a plain HTTP interface does not?
- Runtime discovery with descriptions and argument schemas, one connection and listing shape regardless of what sits behind it, and an explicit separation between content that is read and operations that are invoked.
- When is a direct API call the better choice?
- When the caller is known, the contract is stable, and nothing needs to discover the operations at runtime. The protocol layer earns its place when an application that was never written against a service still has to use it correctly.
- Does putting an MCP server in front of an API make the API safer?
- No. Authorisation, rate limits and error behaviour remain properties of the service and are unchanged. The server is an additional process in front of it, holding credentials of its own, which is one more thing to configure rather than a boundary the service did not already have.