Skip to content

Align capability key to SEP-2133 extensions format#25

Open
jeongukjae wants to merge 2 commits into
mainfrom
capability-alignment
Open

Align capability key to SEP-2133 extensions format#25
jeongukjae wants to merge 2 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 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.

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