
If you have built anything against WordPress in the last decade, your instinct on hearing about MCP is reasonable: we already have a REST API, why do we need another way in? The honest answer is that MCP is not a replacement for the REST API — a good MCP server calls it — but it solves three problems the REST API was never designed for, all of which appear the moment a language model is the caller.
This is a developer-facing comparison: what each layer does, where the boundary sits, and when you should build against which.
The WordPress REST API is a well-understood HTTP interface: predictable routes, standard verbs, JSON in and out, authentication via cookies, application passwords or JWT. It is excellent at what it was designed for — a program that already knows what it wants, written by a developer who read the docs.
Its assumptions are worth naming, because they are exactly what breaks with an AI caller:
MCP is a layer above, and it adds precisely the three things a model needs:
Everything else is transport detail. Under the hood, the tool call usually becomes a REST or plugin-API call — which is exactly what you want, because that path is battle-tested and respects plugin logic.
A simple rule that has held up in practice: if you can write the sequence of calls in advance, use REST. If the sequence depends on what you find when you look, use MCP.
You can, and people do. Three problems appear quickly:
Each is solvable by hand. Solving all three, per site, for every plugin you touch, is exactly the work an MCP server does for you.
If you maintain a plugin, the pragmatic path is to keep your REST API as the implementation and expose typed MCP tools that call into it. Two consequences worth planning for:
For a concrete example of that shape at scale — 190+ tools across core and 45+ plugins — see the full ability reference.
No. MCP sits above it and typically calls it (and plugin APIs) underneath. It adds discovery, semantic typing and governance — the three things a language model needs and the REST API was not designed to provide.
You can, but you get route hallucination, all-or-nothing permissions and no plan-before-write step. Those are the exact gaps an MCP server closes.
REST, marginally, since MCP adds a discovery and validation layer. The difference is irrelevant for the work MCP is used for, where the bottleneck is model reasoning and human review, not HTTP.
Whenever the sequence of calls is known in advance: headless front ends, scheduled syncs, webhooks, anything with a fixed contract and uptime expectations.
If people manage your plugin's data as part of their workflow, yes. Keep the REST API as the implementation, expose narrow typed tools on top, and write descriptions carefully — they are now part of your public interface.
It adds security rather than replacing it: the same WordPress authentication underneath, plus per-connection scopes, schema validation, an approval gate and an audit log.