New HTTP serving path (modern + dual-era) #2893
Copy link
Copy link
Closed
Labels
spec-2026-07-28Concerns the SDK's implementation of the 2026-07-28 MCP spec revisionConcerns the SDK's implementation of the 2026-07-28 MCP spec revisionv2Affects the v2 line (2.x on main)Affects the v2 line (2.x on main)
Milestone
Description
Tracks: #2803
A single HTTP entry that branches: legacy traffic goes to the existing manager untouched; modern traffic goes to a new sessionless path. This is where the sessionless wire mode and the inbound header validation live.
What's in it
- Single entry point that branches legacy → existing
StreamableHTTPSessionManager(untouched, includingstateless_http=True), modern → a new direct path. - Sessionless wire mode for modern traffic: no session-id minting, GET/DELETE → 405, disconnect = cancel.
- The inbound validation ladder lives here (header↔body cross-check, error → HTTP status mapping).
- Where the
subscriptions/listenlong-lived stream plugs in. - What
stateless_http=Truemeans going forward (current behaviour kept; era is a separate axis).
Conformance
http-header-validationhttp-custom-header-server-validation(with the helpers from HTTP standard headers + x-mcp-header #2900)- Together with Backwards compatibility & version negotiation, Capabilities API + server/discover handler, subscriptions/listen, Context object (layered, per-request):
server-stateless - Once the upstream
server-sessionlessscenario lands in the conformance suite and the conformance version pinned in CI is bumped:server-sessionless
Dependencies
References
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
spec-2026-07-28Concerns the SDK's implementation of the 2026-07-28 MCP spec revisionConcerns the SDK's implementation of the 2026-07-28 MCP spec revisionv2Affects the v2 line (2.x on main)Affects the v2 line (2.x on main)
Activity
maxisbey commentedon Jul 1, 2026
Shipped in v2.0.0b1: the branching entry (legacy manager untouched), sessionless wire mode, the full inbound validation ladder including server-side header/body cross-checks (#3033), and the listen stream plug-in (#3035).
http-header-validation,http-custom-header-server-validation, andserver-statelessall pass. The one remaining line — theserver-sessionlessscenario — is waiting on that scenario landing upstream in the conformance suite, not on SDK work.AI Disclaimer