Running an MCP server behind a load balancer used to require sticky sessions, because the protocol kept state. The latest Model Context Protocol specification removes that, and AWS has published guidance on what changes for remote deployments.
Two protocol elements disappear: the initialize handshake pair and the Mcp-Session-Id header. Requests can now land on any instance, which means ordinary request routing replaces session-affine routing and the shared session stores kept only for protocol state can be retired. AWS Architecture Blog authors Anand Komandooru, Steven DeVries and Haleh Najafzadeh point to Lambda as a good fit, since the protocol no longer needs a persistent connection.
Clients that need to know what a server offers before calling tools get an optional server/discover operation.
Several mechanics moved with the change. Multi-round-trip requests now handle interactions that once needed server-initiated calls over held-open streams. New Mcp-Method and Mcp-Name headers let gateways route and throttle. W3C Trace Context carries distributed tracing, and ttlMs with cacheScope control caching.
Two costs come with it. Stream resumability was removed, so clients may have to retry interrupted operations, which raises the value of idempotent tool calls that produce side effects. Migration also is not finished. Apify’s MCP server is adding stateless support beside its sessionful version, and AWS recommends tracking protocol versions at the gateway while keeping session infrastructure until legacy traffic dries up.