It's also quite complex, and there's a lot of leeway for the clients (coding harnesses) in how to represent and share information between the AI and the user.
And don't get me started on auth. There's several different ways, and OAuth alone is unwieldy and not every server does OAuth quite the same way. Meh.
There's a huge swathe of stuff in MCP that's you'll think is a touch overkill or underbaked. And then if you do implement it you learn that actually nobody bothered making servers that used it.