Skip to content

Extensions: advertised-extensions toggle in Server Settings (Phase 2 of #1633) #1739

Description

@cliffhall

Phase 2 of #1633 (Extensions capability UI + MCP Apps alignment). Depends on Phase 1's registry + client option. See #1633 for full analysis.

Goal

Add the advertised-extensions toggle — the core debugging knob of #1633. Users choose which extensions the Inspector advertises, and a server legitimately changes its tool registration in response.

Scope

  • Add advertisedExtensions? to InspectorServerSettings (core/mcp/types.ts:~614) — a Record<string, boolean> (or enabled-key string[]). Persist like paginatedLists / protocolEra: omit-when-default to keep the on-disk file diff minimal. Round-trip through the settings persist path.
  • Render the toggles in ServerSettingsForm.tsx — a group of Switches driven by the Phase-1 registry (each row: label + enabled state). A capability change needs a reconnect to take effect; surface that the same way the Protocol Era selector does.
  • Wire the setting into the client option added in Phase 1 so a toggled extension actually reaches capabilities.extensions.
  • Test-server support: add or extend a test-servers/ config whose tools/list changes based on a client-declared extension, so the acceptance criterion is exercised by a test rather than asserted. Add a test-servers/configs/*.json and note it in README/AGENTS if new.

Acceptance

  • Toggling an advertised extension in Server Settings, then reconnecting, demonstrably changes the server's tool registration (proven against the test server).
  • Setting persists and round-trips (omit-when-default).
  • Unit tests: ServerSettingsForm toggle rows, settings persist/round-trip, and the option→capabilities wiring. This PR must hold the ≥90% per-file gate on its own.
  • npm run formatnpm run ci green.

Metadata

Metadata

Assignees

Labels

v2Issues and PRs for v2

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions