MCP Spec Version Explorer. Every version, what changed.
Pick a protocol version to see its headline changes, from the first 2024-11-05 release to the current stateless 2026-07-28 specification, with links to the official changelogs.
Explore the versions
Five published versions. Select one, or use the arrow keys.
MCP 2026-07-28
CurrentA stateless protocol core: no initialize handshake and no protocol-level sessions. Era: Modern (stateless; version and capabilities on every request).
- ProtocolThe initialize handshake is removed. Every request carries its protocol version and client capabilities in _meta.
- TransportsProtocol-level sessions and the Mcp-Session-Id header are removed from Streamable HTTP.
- ProtocolServers must implement server/discover to advertise their versions, capabilities and identity.
- Protocolsubscriptions/listen replaces the HTTP GET stream and resources/subscribe.
- Protocolping, logging/setLevel and notifications/roots/list_changed are removed.
- ExtensionsTasks move out of the core into the official io.modelcontextprotocol/tasks extension, and capabilities gain an extensions field.
- ProtocolMulti round-trip requests replace server-initiated requests, and every result has a required resultType.
- TransportsStream resumability is removed, and Mcp-Method and Mcp-Name headers are required on HTTP requests.
- ErrorsResource not found becomes -32602, and new codes -32020, -32021 and -32022 are defined.
- DeprecatedRoots, Sampling, Logging, the HTTP+SSE transport and Dynamic Client Registration are deprecated, under a new feature lifecycle policy with a minimum twelve-month window.
Sources: the 2026-07-28 specification and its official changelog. Our guide: What changed in the July 2026 specification.
Upgrading from a legacy version? A 2026-07-28 client cannot talk to a legacy-only server, and the reverse also fails. A dual-era client or server can speak both. See why MCP became stateless.
“Legacy” is the 2026-07-28 specification’s own word for versions that start with an initialize handshake (2025-11-25 and earlier). Version names are dates: the specification says the identifier marks the last date backwards-incompatible changes were made.
Sources: the official specification and changelog for each version on modelcontextprotocol.io, checked 28 October 2026.
How to use it
How to use the MCP Spec Version Explorer
Select a version, or move between them with the arrow keys. Each one lists its most important changes by area, such as transports, authorization and server features, with links to the official specification and changelog.
To find which version an app or server speaks, check its docs or release notes, then read that version here and every version after it.
Limits
What it can't tell you
It shows the main changes, not every line of each changelog. Use the linked official changelog for the full list before you change code.
It tells you what each version defines, not what a particular app supports. Apps and SDKs adopt new versions at different speeds, so check their release notes.
FAQ
Common questions
What is the latest MCP specification version?
How are MCP versions named?
Can a 2026-07-28 client talk to an older server?
When did MCP add OAuth and Streamable HTTP?
Project Managers who will work with you on your project!
Irina S.
Benjamin G.
David G.
Jeanette M.
Mark S.
Maryna P.

Wondering what this costs? Every service has published pricing, and you don't need a discovery call to see it.
View pricingBuilding an MCP server?
We build MCP servers and integrations with Claude Code, tested against the current specification and reviewed by an engineer before anything ships.
See MCP Development →





















