Deprecation mcp
MCP 2026-07-28 removes the initialize handshake and Mcp-Session-Id, and deprecates Roots, Sampling, Logging, and the HTTP+SSE transport
What changes
The protocol is now stateless. No initialize or notifications/initialized; each request carries its protocol version and client capabilities in _meta; a new server/discover RPC advertises supported versions. The Streamable HTTP transport drops Mcp-Session-Id, SSE resumability (Last-Event-ID), and the GET endpoint (replaced by subscriptions/listen). ping, logging/setLevel, and notifications/roots/list_changed are removed. Server-initiated requests move to the multi-round-trip pattern. Deprecated with a minimum 12-month window — Roots, Sampling, Logging, HTTP+SSE, includeContext thisServer/allServers, and Dynamic Client Registration. Clients and servers pinned to older revisions keep working only as long as their counterpart still supports them.
Deprecation: Still works; removal is announced.
What to do
Probe servers with server/discover; support both handshake styles while legacy counterparts remain; move Roots and Sampling use to tool params and direct LLM calls; log to stderr or OpenTelemetry.
Strings to search for
notifications/initializedMcp-Session-Idsampling/createMessageroots/listlogging/setLevel
Source
https://modelcontextprotocol.io/specification/2026-07-28/changelog