Skip to content

Support default-disabled MCP servers in plugins #27105

@michael-wojcik

Description

@michael-wojcik

Summary

Plugins that ship a .mcp.json file get their MCP servers auto-enabled on install. There's currently no way to ship an MCP server that appears in the /plugin UI as a toggleable sub-item but defaults to disabled.

Use Case

The PACT plugin includes an optional Telegram notification bridge as an MCP server. It's useful for users who want it, but most users don't need it. Today the options are:

  1. Include .mcp.json — Server appears in /plugin UI (great for discoverability), but auto-enables on install (unwanted overhead for non-users)
  2. Omit .mcp.json — Server is invisible in /plugin UI (poor discoverability), but doesn't auto-enable (correct default)

Neither option gives the ideal UX: visible in the UI, toggleable, but off by default.

Proposal

Support a defaultEnabled (or enabled) field in .mcp.json server entries:

{
  "pact-telegram": {
    "command": "python3",
    "args": ["-m", "telegram"],
    "cwd": "${CLAUDE_PLUGIN_ROOT}",
    "defaultEnabled": false
  }
}

When defaultEnabled: false:

  • Server appears in /plugin UI as a toggleable sub-item
  • Server does not auto-start on install or session start
  • User can enable it via Space toggle in /plugin
  • Once toggled on, the user's preference persists across sessions

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    duplicateThis issue or pull request already exists

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions