Summary
As per thew new MCP Protocol spec (2026-07-28), MCP is now stateless.
The MCP spec's 2026-07-28 revision drops the initialize/initialized handshake and the Mcp-Session-Id header entirely — protocol version, client identity, and client capabilities now travel per-request in _meta instead of being negotiated once per connection. This is not shipped as a new minor version of @modelcontextprotocol/sdk (that package is still v1.30.0, implementing the old stateful spec). It ships as a separate, newly-stable package: @modelcontextprotocol/server (2.0.0, out of beta), with a different HTTP-serving API.
Migrate the the MCP App Typescript Template to stateless (breaking change).
Summary
As per thew new MCP Protocol spec (2026-07-28), MCP is now stateless.
The MCP spec's 2026-07-28 revision drops the
initialize/initializedhandshake and theMcp-Session-Idheader entirely — protocol version, client identity, and client capabilities now travel per-request in_metainstead of being negotiated once per connection. This is not shipped as a new minor version of@modelcontextprotocol/sdk(that package is still v1.30.0, implementing the old stateful spec). It ships as a separate, newly-stable package:@modelcontextprotocol/server(2.0.0, out of beta), with a different HTTP-serving API.Migrate the the MCP App Typescript Template to stateless (breaking change).