MCP drops sessions
The new revision deletes the initialize/initialized handshake and the Mcp-Session-Id header. Every request is self-describing now, so “any request can land on any instance behind a plain round-robin load balancer.”
I think this is the right call. MCP was designed like a desktop IPC protocol - long-lived connection, negotiated session, server pushing requests back at the client - and then everyone deployed it as an ordinary HTTP service, where a protocol-level session buys you nothing and costs you sticky routing or shared storage.
The replacement advice: “If your server needs to carry state across calls, mint an explicit handle from a tool and have the model pass it back as an argument.” A handle passed as an argument shows up in the transcript, which would make it easier to troubleshoot.