⚠️ There may be overlap with #1579 (the Apps re-implementation wave) — check before implementing.
Stack: SDK V2 + New Spec — 10 of 10 (small but high-leverage; needs era model from card 3).
Formalize Extensions in the UI and align the existing MCP Apps work with the standardized capabilities.extensions mechanism.
Scope
- Extensions capability plumbing: declare Inspector-advertised extensions via constructor capabilities; read the server's via
getServerCapabilities()?.extensions. Handle graceful degradation.
- Extensions UI (new, small): display the server's
extensions map in Connection Info, and let users toggle which extensions the Inspector advertises — servers legitimately change tool registration based on client-declared extensions, so this is a real debugging knob.
- Apps alignment: advertise
io.modelcontextprotocol/ui with mimeTypes through the now-formalized capabilities.extensions. Generalize the existing EMA advertisement pattern in inspectorClient.ts (capabilities.extensions["io.modelcontextprotocol/enterprise-managed-authorization"]) to a first-class extensions map. Track the ext-apps 2026-01-26 spec / AppBridge version (core/mcp/apps.ts uses @modelcontextprotocol/ext-apps).
Key files
core/mcp/inspectorClient.ts (client capabilities / EMA precedent), core/mcp/apps.ts, clients/web/src/components/groups/ConnectionInfoContent/*, AppsScreen/AppRenderer (version alignment only).
Acceptance
- Server
extensions map visible in Connection Info; advertised-extensions toggle works and demonstrably changes server tool registration.
io.modelcontextprotocol/ui advertised via capabilities.extensions.
npm run ci green.
Ref: specification/v2_new_spec_impact.md §6.1, §6.2, §8.3(extensions), §9.3(Apps/Extensions).
Stack: SDK V2 + New Spec — 10 of 10 (small but high-leverage; needs era model from card 3).
Formalize Extensions in the UI and align the existing MCP Apps work with the standardized
capabilities.extensionsmechanism.Scope
getServerCapabilities()?.extensions. Handle graceful degradation.extensionsmap in Connection Info, and let users toggle which extensions the Inspector advertises — servers legitimately change tool registration based on client-declared extensions, so this is a real debugging knob.io.modelcontextprotocol/uiwithmimeTypesthrough the now-formalizedcapabilities.extensions. Generalize the existing EMA advertisement pattern ininspectorClient.ts(capabilities.extensions["io.modelcontextprotocol/enterprise-managed-authorization"]) to a first-class extensions map. Track the ext-apps2026-01-26spec /AppBridgeversion (core/mcp/apps.tsuses@modelcontextprotocol/ext-apps).Key files
core/mcp/inspectorClient.ts(client capabilities / EMA precedent),core/mcp/apps.ts,clients/web/src/components/groups/ConnectionInfoContent/*,AppsScreen/AppRenderer(version alignment only).Acceptance
extensionsmap visible in Connection Info; advertised-extensions toggle works and demonstrably changes server tool registration.io.modelcontextprotocol/uiadvertised viacapabilities.extensions.npm run cigreen.Ref:
specification/v2_new_spec_impact.md§6.1, §6.2, §8.3(extensions), §9.3(Apps/Extensions).