DEV Community

Matthew
Matthew

Posted on

20 years in, the agent stack finally feels like plumbing

Twenty-something years ago I wrote my first SOAP client. The XML was nested four deep, the WSDL was wrong, the vendor's docs lied, and I still got paged at 2am when something a Java app I didn't write decided the namespace had moved. I think about that morning a lot whenever someone tries to sell me a new "agent framework."

A year ago I'd have rolled my eyes at MCP too. Every cycle has Its Protocol. Most don't outlive their conference talk. But MCP crossed 97 million installs in March, the Linux Foundation just took it under open governance, and OpenAI's newest Responses API speaks it natively. Around when that happened I noticed something a little embarrassing. I'd quietly stopped writing one-off integration scripts. They just sort of fell off the to-do list.

So what's it doing right that the last forty things didn't?

It's boring. That's the whole answer.

There's no clever DSL. No SDK lock-in. No "first-class agent abstractions" that turn out to mean three layers of decorator soup. A server exposes some tools, an agent calls them, the transport doesn't care which model you're paying this month. I run a Postgres MCP server, a Linear one, and a Playwright one. They have absolutely no idea about each other and they don't need to. It's the same dumb composability we got from pipes and from HTTP.

The interesting bit isn't the install count. It's that OpenAI ships compatibility, Google ships compatibility, and now LF owns the spec. We're past the line where any one company can yank it. That is rare. The last protocol I can remember crossing it was OAuth 2.0, and that took years longer than people remember.

A few things I'm still not sold on:

  • Auth gets reinvented per server and most of them get it wrong
  • Discovery is hand-wavy. We're going to need something better than "paste this URL"
  • Tool permissioning is closer to "the user clicks yes" than to anything you'd accept in production

None of that kills it. It just means the next two years probably look like 2010-era REST. Everyone agrees on the wire format and we slowly figure out the tooling around it. CORS will get reinvented. Someone will write a bad spec for tool versioning. We'll all live.

If you've been on the fence, this is a good week to ship a small server. Pick one annoying internal tool you wish your editor knew about. Wrap it. Plug it in. The leverage is genuinely silly once you stop fighting the model into pretending to know things it never could.

Curious what other graybeards on here are using MCP for day to day. The thing I'd most like to see: a battle-tested auth pattern that isn't "static bearer token in env."

Top comments (0)