Description
Follow-up to #1558, whose R1/R2 scope is delivered (#1562, #1627). ext.mcp serves the SDK's stateless 2025-11-25 profile over HTTP and stdio.
R6 targets MCP revision 2026-07-28, the revision Ikanos speaks today, on the MCP Java SDK's modern stateless server (io.modelcontextprotocol.modern, mcp-core 2.2.0-M2, experimental while it is a milestone). The stateless 2025-11-25 server stays for legacy clients. No sessions: the revision drops them, with initialize, GET streams and resumption.
Gate 0 passed in #1662: the modern server behind a test-only Restlet transport mirroring the SDK's servlet transport. server/discover, tools/list, tools/call (plain and base64 Mcp-Name), a streaming reply over core SSE, header/version/method errors and legacy traffic all behave as the revision requires.
Delivery:
- A Restlet transport for the modern server over HTTP and stdio, within the R1 limits; streaming replies and
subscriptions/listenover core SSE; cancellation when the client closes a stream. - Both eras on one endpoint:
2026-07-28_metato the modern server,initializeand legacy traffic to the stateless2025-11-25server. - Registration of modern tools, resources, prompts and completions through the SDK's feature repositories.
- A
2026-07-28client transport adapted from Ikanos'McpStreamableHttpTransport, until the Java SDK has a modern client. - Conformance tests taken from Ikanos' wire tests, corrected where they differ from the revision; interop with Ikanos.
Ikanos side: its client must send client capabilities in _meta, and notifications must get 202, before it interoperates with SDK-based peers (tracked in Ikanos).
Out of scope: sessions; the Tasks extension until the SDK supports it; elicitation and sampling beyond the revision's input_required flow.
Superseded: the first R6 plan targeted the 2025-11-25 Streamable HTTP profile with sessions (listening GET streams, replay, stdio push). Its gate 0 passed in #1659, which stays as evidence should sessions come back.
Activity
Spike the MCP sessionful server SPI on Restlet with core SSE
Spike the MCP 2026-07-28 modern server on Restlet
[-]R6: MCP sessions, streamed replies and push on Restlet transports[/-][+]R6: MCP revision 2026-07-28 on Restlet transports[/+]jlouvel commentedon Nov 7, 2026
Retargeted, see the updated description: MCP R6 now targets revision 2026-07-28, as Ikanos does, on the SDK's modern stateless server (
mcp-core2.2.0-M2, experimental while it is a milestone), with no sessions. Gate 0 passed in #1662. The sessionful plan and its spike (#1659) are kept as superseded. Recorded as decision M8 in the design doc.jlouvel commentedon Nov 13, 2026
Item 2 (both eras on one endpoint) is now refined by #1671: the modern server becomes the core for registration and policy, and legacy traffic is translated at a deletable edge in
internal.legacythat exposes nothing 2026-07-28 deprecates or removes. The client side is #1670.