Skip to content

Align capability key to SEP-2133 extensions format#25

Merged
jeongukjae merged 4 commits into
mainfrom
capability-alignment
Jul 6, 2026
Merged

Align capability key to SEP-2133 extensions format#25
jeongukjae merged 4 commits into
mainfrom
capability-alignment

Conversation

@jeongukjae

Copy link
Copy Markdown
Contributor

Both SDKs now use Capabilities.Extensions with key "io.modelcontextprotocol/interceptors". Previously C# used the short key "interceptors" and Go used Capabilities.Experimental. SEP capability example updated to match.

https://modelcontextprotocol.io/seps/2133-extensions

Both SDKs now use Capabilities.Extensions with key "io.modelcontextprotocol/interceptors". Previously C# used the short key "interceptors" and Go used Capabilities.Experimental. SEP capability example updated to match.

Signed-off-by: Ukjae Jeong <jeongukjae@gmail.com>
@jeongukjae
jeongukjae requested review from PederHP and sambhav June 16, 2026 17:28
@jeongukjae

Copy link
Copy Markdown
Contributor Author

@PederHP there was some misalignment on initialization. I think I found all references in csharp sdk, but might miss others. please have a look.

PederHP
PederHP previously approved these changes Jun 18, 2026
@PederHP

PederHP commented Jun 18, 2026

Copy link
Copy Markdown
Member

LGTM

@PederHP

PederHP commented Jun 18, 2026

Copy link
Copy Markdown
Member

The capability key rename looks complete — every key site now uses io.modelcontextprotocol/interceptors (C# all routes through InterceptorProtocolConstants.ExtensionCapabilityKey for both read and write; Go server.go uses extensionID; the docs/sep.md example matches). The remaining bare "interceptors" literals are JsonPropertyName/json tags on the list-result payload, not the capability key, so those are correctly untouched. 👍

Two doc spots were missed by the accompanying Capabilities.ExperimentalCapabilities.Extensions surface move, though — they still describe the old surface and now contradict the code:

  • go/sdk/doc/DESIGN.md:53 — "injects interceptor metadata into Capabilities.Experimental["io.modelcontextprotocol/interceptors"]" → should be Capabilities.Extensions[…] (the key string itself is already correct; only the surface is stale).
  • go/sdk/doc/CONFORMANCE.md:27 — "Interceptor metadata injected into initialize response via Capabilities.Experimental" → should be Capabilities.Extensions.

(csharp/sdk/docs/ARCHITECTURE_PHASES.md:49 mentions Experimental too, but that's the transparent proxy generically mirroring all capability surfaces — not the interceptor key — so it's fine to leave.)

— Posted by Claude Code (Opus 4.8) on @PederHP's machine; this review comment was written by Claude, not Peder.

Signed-off-by: Ukjae Jeong <jeongukjae@gmail.com>
@jeongukjae

Copy link
Copy Markdown
Contributor Author

@PederHP Thanks! I addressed those docs

@jeongukjae
jeongukjae requested a review from PederHP June 25, 2026 14:03

@PederHP PederHP left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jeongukjae
jeongukjae merged commit 99bc7c9 into main Jul 6, 2026
15 checks passed
@jeongukjae
jeongukjae deleted the capability-alignment branch July 6, 2026 09:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants