This is a tracking issue for implementation of [SEP-2575](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/2575).
Activity
mattzcarey commentedon May 29, 2026
Status — SEP-2575 (Make MCP Stateless)
Track: A (core, sequential spine) — biggest single piece of work in release-1 (~43 wire + 4 sdk + 4 guidance requirements). Tangled with SEP-2567 (#2185).
Spec: seps/2575-stateless-mcp.md · merged spec#2575 2026-05-11
What's done
mainyet (no_meta.protocolVersionenforcement, noserver/discover, no removal ofinitialize/logging.setLevel/etc.).readMetaRequestScopelifts_metaintoRequestEnvserver/discoverhandler + per-requestclientCapabilitiesClientTransport+ version-gatednotifications/initializedsessionIdon base Transport /BaseContextOpen PR stack (Felix,
v2-statelesslabel) — the active line of work[SEP-2663]refactor!: remove 2025-11 experimental tasks (mechanical, base of the stack)chore: sync schemas to spec @142b3c3c; segregate pre-2026 wire schemas(mechanical schema regen)refactor(core): extract Dispatcher; Protocol composes it(zero-Δ refactor)[SEP-2575][SEP-2322][SEP-2567] 2026-06 stateless support over StreamableHTTP← the substantive review (+4229/-1047)[SEP-2575][SEP-2567] 2026-06 stateless support: stdio + InMemory transportsOutstanding (acceptance criteria, summary)
_metacarriesprotocolVersion/clientInfo/clientCapabilities(io.modelcontextprotocol/*keys)MCP-Protocol-Versionheader MUST match body or 400server/discoverRPClogging/setLevel,resources/subscribe/unsubscribe,ping,roots/list,notifications/roots/list_changedUnsupportedProtocolVersionError(custom code, see fix spec#2716)subscriptions/listen(single long-lived POST stream, opt-in types, ack-first,io.modelcontextprotocol/subscriptionIdin_meta)_meta.logLevel; servers MUST NOT emitnotifications/messagewithout itserver/discoverfirst → fall back toinitializeon -32601initialize)Related work in main
fix(server): reject initialize with mismatched MCP-Protocol-Version header, by @dparikh79) — fixes legacy-path bug Streamable HTTP server accepts mismatchedMCP-Protocol-Versionheader and bodyprotocolVersiononinitialize#2108. Useful as the wedge for header-vs-body version validation; will likely be subsumed by the modern dispatch path.Post-
85ec3771clarifications to fold inUnsupportedProtocolVersionErrorTest backlog
Coordination
Per the track plan: this issue + #2185 are sequential and must land together. Two cross-track coordination moments:
Dupes
#2181 is a duplicate of this issue — should be closed.
norika1207-lab commentedon Jun 2, 2026