Conversation
| tools) | ||
| - `subscribe`: Support for subscribing to individual items' changes (resources only) | ||
|
|
||
| #### Extension Negotiation |
There was a problem hiding this comment.
I'm a bit uncertain on whether or not SEP-2133 actually meaningfully applies to the 2025-11-25 spec; it was merged after the spec finalized, but was also clearly intended to work with as early as the 6/18 spec. Tagging @pja-ant on this one
There was a problem hiding this comment.
@pja-ant @LucaButBoring I would hope it applies to the 2025-11-25 spec. At a point in the time, the extensions doc page already showed extension support via the old negotiation pattern
Majority of SDKs already support extensions negotiation in 2025-11-25, and it's a single field addition for those that do not
| Clients and servers can also advertise optional [extensions](/extensions/overview) in `capabilities.extensions` in the `initialize` request and response. This field is defined by [SEP-2133](/seps/2133-extensions#negotiation), although it is absent from this version's published `ClientCapabilities` and `ServerCapabilities` schemas. Extension support is not required for core protocol conformance. | ||
|
|
||
| See [extension negotiation for initialization-based versions](/extensions/overview#initialization-based-versions) for examples and SDK compatibility considerations. |
There was a problem hiding this comment.
imo we shouldn't link to the reference-level docs from the spec
Isn't it? Doesn't this add I'm ok with this in practice, though not sure how I feel about retroactively changing released spec versions. Would be more comfortable with no spec changes and maybe just say something like "while extensions weren't officially part of the protocol until 2026-07-28, many SDKs and clients/servers offer extensions on 2025-11-25 using |
The Extensions Overview now shows only the per-request capability flow for 2026-07-28 and later. Readers using 2025-11-25 cannot readily find the
initializenegotiation flow or understand whyextensionsis absent from that version's capability schemas.This adds:
initializerequest/response examples to the overview, following SEP-2133.extensionsis optional, defined by SEP-2133, and absent from the older published schemas; SDK and extension compatibility still need to be checked.Addresses the gap raised by Yousef and Cliff in the Skills over MCP WG discussion. This is a documentation clarification; no schema or protocol behavior changes.
SDK compatibility
Audit of official SDK default branches on 2026-09-15, pinned below. This checks carrying
capabilities.extensionsthrough the legacy handshake, not support for every extension or every published SDK release. Findings are from source inspection; the Python serialization loss was reproduced locally.initializeextensionson both sides.Extensionsmaps carried by initialization.support_extensions.Python's
serialize_server_result("initialize", version, ...)removescapabilities.extensionsfor all four supported legacy versions, including2025-11-25, despite the public model exposing it.Existing use before 2026-07-28
io.modelcontextprotocol/uithroughinitialize, even showing protocol version2024-11-05. This is direct precedent for the documentation clarification.extensionscapability field in every SDK.capabilities.tasks. SEP-2663 subsequently moved and redesigned it as an extension. Earlier Tasks use is not evidence that today'sio.modelcontextprotocol/taskswire format works on legacy connections.Suggested next steps
extensionsfield to the legacy schemas as an additive erratum; until then, identify SEP-2133 as its definition.Validation:
npm run prepcompleted successfully using a local shell adapter to runtsxscripts vianode --import tsxbecause the environment blocks the CLI's IPC socket. Repository scripts are unchanged. Mintlify found no broken links. Both edited pages parse as MDX, both added JSON examples validate against the 2025-11-25 schema, added links/fragments resolve locally, andgit diff --checkpasses. The initial CLI installation emitted dependency deprecation warnings.AI assistance: Codex prepared and validated this change at Sambhav's request.