MCP 2026-07-28 Specification: transport going stateless

MCP ditches always-on connections and the crowd is cheering, panicking, and nitpicking

TLDR: MCP’s new version drops always-open connections and switches to one-request-at-a-time messaging, a change meant to make apps more reliable and easier to run. Commenters are split between celebrating the long-overdue cleanup and worrying about breakage, long jobs, and whether the design is still more complicated than it needs to be.

The big news from MCP is surprisingly simple: the system is dropping its old always-open, back-and-forth connection style and moving to a cleaner request-by-request setup. In plain English, that means apps can talk to servers one message at a time instead of keeping a constant line open. The official pitch is reliability, easier scaling, and fewer weird failures — and judging by the comments, a huge chunk of the community is basically yelling, "finally." One early reaction summed up the victory lap perfectly: tool calls were already functionally stateless, so the old setup felt like pretending there was magic memory when there really wasn’t.

But of course, no protocol update lands without a little comment-section chaos. One camp is thrilled because this should make hosting cheaper and less fragile, especially for cloud and serverless setups. Another camp is already mourning the extra work. One user flat-out asked what the replacement is for long-running workflows that last days, which is the kind of sentence that instantly turns a spec update into a stress post. And then came the classic internet side quest: why are these actions in HTTP headers at all? One commenter basically asked, “Couldn’t this just be a normal web address?” Translation: even when people agree on the goal, they’ll still throw hands over the packaging.

The funniest vibe here is that this release feels less like a product launch and more like a group therapy session for people haunted by broken connections and timeout bugs. Even a maintainer jumped in with cheerful “we’re here to help” energy — always a sign the comments might get spicy.

Key Points

  • MCP released specification version 2026-07-28 and updated SDKs for TypeScript, Python, Go, and C#.
  • The main change is a move from a bidirectional stateful protocol to a stateless request/response protocol core.
  • The new design removes the initialize/initialized handshake and the Mcp-Session-Id header, with each request carrying protocol and client metadata independently.
  • MRTR replaces prior server-initiated interactions that required held-open streams, enabling input and follow-up exchanges over a stateless protocol.
  • The release also adds authorization hardening, a formal extensions framework, cache hints with deterministic list ordering, and a 12-month minimum deprecation policy.

Hottest takes

"The actual tool calls are stateless anyway" — firasd
"i use them to monitor workflows that takes days and now i have to make some changes" — varmabudharaju
"Are the HTTP headers for method/name etc even needed" — djhworld
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.