The MCP 2026-07-28 Spec Rewrite: Full Guide

A dark comparison-matrix style cover listing the MCP 2026-07-28 spec rewrite's changes: Mcp-Session-Id removed, initialize handshake replaced by _meta fields, server/discover now required, and SSE subscriptions replaced
On this page

Structural Comparison Matrix

#ChangeOld behaviorNew behaviorStatus
1Protocol-level sessionsMcp-Session-Id header, sticky routingExplicit server-minted handles as tool argumentsBreaking
2HandshakeOne-time initialize/initialized exchangePer-request _meta version/capability fieldsBreaking
3Server discoveryImplicit, via initializeMandatory server/discover RPCBreaking (new requirement)
4Change notificationsPersistent SSE GET stream, all typesOpt-in subscriptions/listen, typedBreaking
5Health check / log levelping, logging/setLevel RPCsNo direct replacement; log level via _metaBreaking (removed)
6Long-running tasksExperimental core, blocking tasks/resultFormal extension, polling via tasks/getBreaking
7Result shapeImplicit result, server-initiated mid-call requestsMandatory resultType, client-driven MRTR patternBreaking
8Stream resumabilityLast-Event-ID, resume in placeNone; re-issue the request as newBreaking (removed)
9Roots, Sampling, LoggingCore featuresDeprecated, 12-month minimum runwayDeprecated
10OAuth client registrationDynamic Client Registration (RFC 7591)Client ID Metadata DocumentsDeprecated

Every row above is drawn directly from the spec’s own changelog entry for that change, not summarized from memory. Full mechanism, exact spec language, and migration path live in each linked post.

The 10 changes, in detail

  1. MCP Removes Protocol-Level Sessions (Mcp-Session-Id): cross-call state now requires explicit, server-minted handles, not a session header.
  2. MCP Replaces initialize Handshake With _meta Fields: version and capability negotiation happens per-request now, not once at connection start.
  3. MCP Servers Must Now Implement server/discover: a new mandatory RPC, since there’s no initialize call left to fall back on for discovery.
  4. MCP Replaces SSE Subscriptions With subscriptions/listen: clients must explicitly opt into each notification type they care about.
  5. MCP Removes the ping and logging/setLevel Methods: no direct replacement for either; log level moves to a per-request _meta field.
  6. MCP Moves Tasks Out of Core Into an Extension: a namespace change and a control-flow rewrite, from blocking to polling.
  7. MCP Requires resultType on Every Returned Result: every response needs an explicit discriminator; the MRTR pattern replaces server-initiated mid-call requests.
  8. MCP Removes SSE Resumability (Last-Event-ID Gone): a broken stream now means re-issuing the whole request, not resuming in place.
  9. MCP Deprecates Roots, Sampling, and Logging: a deprecation with a runway, not an immediate break.
  10. MCP Deprecates OAuth Dynamic Client Registration: a migration path to Client ID Metadata Documents, at the authorization layer.

Why this happened in one revision

MCP’s 2026-07-28 revision moves the protocol from a connection-oriented, session-based design toward a stateless core, a structural shift that touches transport, discovery, notifications, and result handling all at once rather than landing as incremental point changes. None of the mechanisms above are speculative: every one is drawn directly from the official specification changelog, published the same day as the revision itself.

Browse the rest of the AI Productivity archive for more MCP and agent-tooling coverage.

Frequently asked

Is the 2026-07-28 MCP spec backward compatible with servers built on the previous version?

No, not for the eight Major Changes covered here. The spec removes the Mcp-Session-Id header, the initialize handshake, ping, logging/setLevel, and SSE resumability outright, and requires a new server/discover RPC and a resultType field on every result. A server or client built against the prior spec needs real changes, not just a version bump, before it can talk to a 2026-07-28-compliant counterpart.

Do I need to migrate off Roots, Sampling, and Logging immediately?

No. Unlike the eight Major Changes, these three are deprecated with a runway: MCP's governance policy guarantees a minimum twelve-month window before removal. Audit which of the three your implementation actually uses and plan the migration now, rather than waiting for a forced break.

Emitted as FAQPage JSON-LD from the same frontmatter — one source, no duplicated prose.

Recent posts

Full-text search via Pagefind · ↑↓ to navigate · ↵ to open