Model Context Protocol is useful because it gives agents a common way to call tools. It becomes much less appealing when a simple remote tool also needs session storage, sticky routing, and a pile of lifecycle code. The protocol going stateless is exactly the sort of boring simplification it needed.
GitHub’s write-up on the new stateless MCP specification explains the practical win nicely. Sessions and the initialize exchange are removed, clients can perform the handshake in parallel, and ordinary HTTP headers carry information that previously required inspecting request bodies. Multi round-trip requests still allow interactive flows without turning the whole connection into server-side state.
GitHub removed Redis-backed sessions from its own MCP server as a result. That means no database write during initialisation and no session read on each tool call. This is not a glamorous feature, but it makes horizontal scaling, failure recovery, and serverless deployment much less awkward. Those are the details that decide whether a protocol is pleasant to run rather than merely nice in a demo.
Backward-compatible SDK support means existing clients and servers do not have to jump immediately. I would still treat stateless operation as the target for new remote MCP services. Agent tools already have enough security and observability questions to solve without inventing a distributed session problem as well.