I’ve been resisting as much as I can to the recent waves of obsequious posts on Model Control Protocol (MCP) in recent weeks, inviting anyone to come talk about how the specification or any other specification fits into the API space, and sharing my feelings on why MCP is just another vendors attempt at controlling the API protocol conversation. I genuinely believe that the space should have many specifications and protocols. Maybe not in a pure libertarian market will work things out kind of way, but I strongly believe there is no one specification to rule them all. With that said, I am confident in saying that MCP is just another specification, in a long line of specifications that is more about a power grab than it ever is about what is needed to connect and automate APIs.
You know how I can tell? The hubris. The press releases. The obsequious line of people lining up to say it is the thing. I’ve seen it before. Another thing you always see around these spec releases is people declaring that competition is good. War between the specs is healthy and needed. You hear a lot of shallow uninformed parroting of neoliberal talking points around these things. This is all rhetoric and actually isn’t about healthy competition, and may the best product win. It is about power and controlling the narrative. In the end the best story will win, and who knows, maybe I’ll be wrong, but at this moment I am just seeing all the same things I’ve seen before without any real differentiation of why MCP provides what businesses need, acknowledges the hard work of adoption and change, or even has a good story.
MCP is positioned as killing APIs, with barely a footnote mention of it killing or replacing OpenAPI. That is because there has not been an assessment of OpenAPI or the current state of APIs by people doing MCP. They are just looking to make a power grab at this moment. Sure, there are plenty of people lining up behind it who have done more due diligence and possess more awareness of OpenAPI, but they care more about being adjacent to power than what already exists. Few are doing the work. You know why Swagger, now OpenAPI, was different when it came out? Cause Tony, Erin, and team were trying to solve the problems they faced when operating their dictionary API. They need docs, mocks, and SDKs for their API. Then they wanted to share what they did with all of us. It was Mashery who came in with I/O docs and Mashape who came in with competing formats to displace — Mashery is dead, and Mashapes format lives on at the heart of Kong.
In the following years Apiary responded with API Blueprint and Mulesoft with RAML. We had many competitive specs-—what a time to be alive. We had ourselves a full blow specification war—-what a time to be alive. Well you know what? The best spec didn’t win. The best spec was RAML, and secondarily was API Blueprint. Why did Swagger win? It had a better story, and more passionate people behind it. Then OpenAPI obtained an initiative to support it (because the passionate demanded it). But that didn’t stop the competition. Postman came for OpenAPI from the testing realm. AsycAPI came at it from the event-driven realm. Bruno is piling on with their own interpretation of collections, which Insomnia and others have also reinterpreted. Not all of this is without reason. AsyncAPI has a real claim—event-driven matters. Postman felt like it did with coming from the testing realm, but now looking back at abandoned tools like Dredd, I don’t think it really did. While all of this competition seems healthy, you really end up with just a lot of fragmentation and rot after the fact.
Mashery I/O docs are dead. API Blueprint is dead. RAML is dying on the vine. Postman Collections have isolated themselves. Kong, and others who created their own proprietary models are isolated with translators. Smithy is isolated. TypeSpec is isolated. AsyncAPI is thriving. JSON Schema is alive and well and used across all of them. MCP is vendor driven and owned just like Smithy, Typespec, I/O Docs, API Blueprint, RAML, and Postman Collections. This moment will pass. Cycles will shift. Funding will dry up, and we’ll hit series C, series D. The rot will spread. The fragmentation will increase. OpenAPI, Overlays, and Arazzo will continue to see expansion and adoption, but with few resources than they should have, and not seeing the expansion and adoption they could with everyone’s support. Y’all believe the hype, momentum, and funding you have in this moment, but all I see is API specification and rot, and dream of a world where everyone threw in on the specifications that are already on the table and invested in new specs that genuinely add to what is on the table, and not just take from what is on the table.