Skip to content

[FEATURE]: MCP manager - a schema-aware MCP config editor surface #58654

Open

Description

@arin8513
  • I have verified this feature I'm about to request hasn't been suggested before.

Describe the enhancement you want to request

There is no surface that can view, edit, validate or manage MCP entries: the CLI offers
mcp list/add/auth/logout, /mcps toggles connection state, and everything else is raw
JSON(C) editing in one of several config locations.

Request: an MCP config editor (TUI panel and/or desktop/web) that can add, remove and edit
entries with the right shape per type -

  • local: command, args, env, cwd, timeout, protocol

  • remote: url, headers, oauth, disabled

  • validating against the official schema (the current mcp.servers.<name> shape; the
    deprecated flat mcp.<name> still accepted), and writing through the placeholder-prompt +
    credential-store flow requested in the sibling issue. Showing which config document each
    server came from (global vs project) is part of the ask.

Why is this needed?

Measured friction from one week on this machine (v2.1.4, Windows 11):

  • validating a hand edit to the JSONC global config meant stripping comments in a throwaway script and re-parsing it;
  • the deprecated-flat vs current mcp.servers split was discoverable only by reading the ~2.6k-line official schema;
  • a mistyped Authorization header surfaced only at connect time as HTTP 400 Authorization header is badly formatted;
  • there is no place to see the merged result of the global config plus a project config, which is exactly what the Windows-service confusion in mcp: Windows service registers zero MCP servers from global config #50710 is about;
  • and the v2 web/desktop permission prompt still shows only * for the asked tool (v2 web/desktop: MCP permission prompt shows only *, not the tool name #51519), so least-privilege grants cannot even be expressed in the UI.

Related issues

Additional context

Activity

  1. opencode-agent commented on Oct 24, 2026

    @opencode-agent
    Contributor

    Thanks for splitting this out of #58243! In short, you're asking for an MCP config editor in the TUI and/or desktop/web. It would add, remove and edit local and remote servers with the right fields for each type and validate them against the official schema, accepting both mcp.servers and the deprecated flat form. It would show which config file each server comes from (global or project) and the merged result, and write secrets through the placeholder/credential flow. Maintainers will consider it.

    Related issues you may want to follow:

  2. Dante-dan commented on Oct 24, 2026

    @Dante-dan
    Contributor

    For a first phase, I'd suggest a TUI MCP editor with a source-aware merged server list, rather than spreading the same new editing flow across several UI surfaces at once.

    The list would show the effective global/project entry and its originating config document; overridden entries remain inspectable. Add/edit/remove would target an explicitly selected writable source, with a preview when removing a project override would expose a global entry. A read-only source would be shown as such rather than rewritten elsewhere silently.

    The form would use the current schema's local/remote discriminated fields and validate before save. Requested fields absent from that schema would need a separate schema decision, not an editor-only promise. Existing legacy entries would remain readable with a migration warning/preview; opening the editor would not automatically migrate them. JSONC writes would change only the selected server node, preserving comments and unrelated fields; detect external edits before committing an atomic write and report errors without corrupting the file.

    Credentials would stay as references and use the approved #58653 secret flow; until that contract is approved, the editor should not introduce plaintext secret entry/storage as a shortcut. Connection toggling and permission grants remain separate from editing server definitions.

    Current source gives this a concrete boundary: mcp.servers contains the local/remote union. Local command is an argv array and the environment field is environment (rather than separate args / env fields); timeout is structured. The existing normalizer handles legacy flat input, while new saves should use the current schema. I would reuse that validation/normalization contract instead of maintaining a separate editor schema.

    Planned acceptance checks: global/project precedence and provenance; local/remote/disabled entries; invalid-field errors; legacy migration preview; JSONC comment/unrelated-field round-trip; external-edit conflict; unwritable source; secret redaction. The list must distinguish saved config from a connection failure so a failed server remains editable.

    Would you approve TUI-only as the first surface, with desktop/web following separately after this editing and secret-reference contract is agreed? This is a design proposal from source inspection; no editor implementation or validation result is claimed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions