You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
R6: MCP revision 2026-07-28 on Restlet transports #1640
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-core2.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/listen over core SSE; cancellation when the client closes a stream.
Both eras on one endpoint: 2026-07-28_meta to the modern server, initialize and legacy traffic to the stateless 2025-11-25 server.
Registration of modern tools, resources, prompts and completions through the SDK's feature repositories.
A 2026-07-28 client 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.
changed the title [-]R6: MCP sessions, streamed replies and push on Restlet transports[/-][+]R6: MCP revision 2026-07-28 on Restlet transports[/+]on 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-core 2.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.
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.legacy that exposes nothing 2026-07-28 deprecates or removes. The client side is #1670.
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.