MCP 2026-07-28: sessions removed, SDK split into server and client packages
Summary¶
The MCP specification dated 2026-07-28 makes the protocol stateless: the initialize /
initialized handshake and the Mcp-Session-Id header are removed, so any instance behind a
plain round-robin load balancer can serve any request. The monolithic @modelcontextprotocol/sdk
npm package is retired and split into @modelcontextprotocol/server and
@modelcontextprotocol/client. Server-to-client calls that needed a permanently open stream are
replaced by Multi-Round-Trip Requests, deprecating sampling/createMessage, elicitation/create,
and roots/list.
Key Details¶
- Stateless by default — per-request identity moves into a
_metafield; capability discovery becomes an optionalserver/discoverRPC. This is what unblocks serverless and autoscaled remote MCP deployments, which sticky sessions and shared Redis/Postgres session stores only ever worked around. - The old package name still installs.
npm install @modelcontextprotocol/sdkresolves to v1 without erroring, so the symptom is "the new API methods don't exist" rather than a failed install.sessionIdGeneratorno longer exists in v2. - Cacheable list results (
ttlMs,cacheScope) stop every reconnect from re-fetching the tool catalog — previously invisible overhead that also destabilised prompt caches and burned context tokens. - Migration codemod exists but is incomplete:
npx @modelcontextprotocol/codemod@2.0.0-beta.2 v1-to-v2 .handles the mechanical rewrite, warns that zod >= 4.2.0 is required, and does not fixpackage.json— miss the warning and the server starts, then fails on the first tool call. - Auth hardened:
issrequired per RFC 9207, credentials bound to their issuer, Dynamic Client Registration deprecated for Client ID Metadata Documents,application_typerequired so localhost redirects stop being rejected for CLI and desktop clients. - Local stdio users feel none of this — the pain was always remote, shared, multi-instance servers.
Why Rolf Thinks This Matters¶
Further Reading¶
- Anthropic Just Overhauled MCP (I Built My First Stateless MCP Server)
- Toolkit follow-up:
intake/pending/from-research/2026-08-11-inbox-anthropic-mcp-overhaul.md—mcp-builder's Node reference still pins@modelcontextprotocol/sdk^1.6.1.