I hoped OpenAI would support OpenAPI for connecting to tools. Having created a couple of MCP servers, it feels like a less flexible and worse documented API to me. I can’t really see anything that is made better by MCP over OpenAPI. It’s a little bit less code for a lot less options. Give it some time and it will also get Swagger built in.
It’s solving a problem that was already robustly solved. So get we go with another standard.
transport argument is irrelevat when http can be both TCP and UDP, and even if you wanna do one protocol, it can be proxied/tunneled via another protocol transparently via VPN/wireguard/proxy.
so transport protocol is moot, especially from latency perspective when most time is spent doing AI inference (seconds) rather than passing packets (milliseconds).
I really wish OpenAI just embraced OpenAPI and that would have instantly gained millions of existing sites available to ChatGPT with zero code change.
It's transport-agnostic in the sense that it works locally (over stdout), not just remotely. It's not just for web-services. That's why HTTP isn't baked into this.
I feel like we should have transport agnostic RPC by now, GRPC?
And MCP is stateless too.
And you don't have to create a client per API, it's up to implementation.
Are we reading the same documents? MCP implementations are all websockets so it's not really transport agnostic. They try to talk
about how you can use other transports but its just that it's JSON-RPC and if you're willing to code both ends you can do whatever… which is always true. And MCP is explicitly a stateful protocol [1].
They mention stdio specifically under the transport section of the spec.
Most protocols are transport agnostic, but http APIs tend to require HTTP methods.
Http itself is transport agnostic, but truthfully all we’re doing is shuffling bytes around.
If you look at the stateless examples in that PR, they both assume some state (specifically the capabilities) and just behave accordingly.
To get the full features of the protocol (like notifications) a stateful connection would still be required.
There's already swagger MCP service out there, I don't know how production ready it is, but I saw something the other day when searching through GitHu. One of several implementations: https://github.com/dcolley/swagger-mcp
It’s solving a problem that was already robustly solved. So get we go with another standard.