claude-code - 💡(How to fix) Fix Plugin MCP servers display inconsistently in /plugin list UI [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#55955Fetched 2026-05-05 06:01:57
View on GitHub
Comments
0
Participants
1
Timeline
5
Reactions
0
Author
Participants
Timeline (top)
labeled ×5

Code Example

{
  "mcpServers": {
    "brave-search": { ... },
    "tavily-search": { ... }
  }
}

---

smart-search Plugin · smart-search · ✔ enabled
    └ brave-search MCP · ✔ connected
    └ tavily-search MCP · ✔ connected
    superpowers Plugin · claude-plugins-official · ✔ enabled

---

smart-search Plugin · smart-search · ✔ enabled
  ❯ └ brave-search MCP · ✔ connected
    tavily-search MCP · ✔ connected
    superpowers Plugin · claude-plugins-official · ✔ enabled
RAW_BUFFERClick to expand / collapse

Bug

When a plugin bundles multiple MCP servers via .mcp.json, the /plugin list UI shows inconsistent indentation — only the first MCP is displayed as a child of the plugin, the rest appear at the same level as independent plugins.

Steps to reproduce

  1. Create a plugin with .mcp.json containing two MCP servers:
{
  "mcpServers": {
    "brave-search": { ... },
    "tavily-search": { ... }
  }
}
  1. Install the plugin via marketplace
  2. Run /plugin list

Expected

Both MCP servers should be indented under the plugin as children:

    smart-search Plugin · smart-search · ✔ enabled
    └ brave-search MCP · ✔ connected
    └ tavily-search MCP · ✔ connected
    superpowers Plugin · claude-plugins-official · ✔ enabled

Actual

Only the first MCP is shown as a child. The second appears at the top level:

    smart-search Plugin · smart-search · ✔ enabled
  ❯ └ brave-search MCP · ✔ connected
    tavily-search MCP · ✔ connected
    superpowers Plugin · claude-plugins-official · ✔ enabled

tavily-search has no indentation and appears to be a sibling of superpowers, not a child of smart-search.

Environment

Impact

Visual only — both MCPs are functionally correct (tools work, hooks trigger). But the display is confusing for users trying to understand plugin component ownership.

extent analysis

TL;DR

The issue can be resolved by adjusting the UI rendering logic to correctly indent all MCP servers listed in a plugin's .mcp.json file.

Guidance

  • Review the /plugin list UI rendering code to identify where the indentation logic is applied and ensure it iterates through all MCP servers defined in the plugin's .mcp.json.
  • Verify that the UI correctly handles multiple MCP servers by checking the rendering logic for any limitations or assumptions about the number of MCP servers per plugin.
  • Check if there are any existing issues or pull requests in the Claude Code or plugin repositories that address similar UI rendering issues, as they may provide insight or a direct solution.
  • Consider adding a test case to ensure the UI rendering works as expected for plugins with multiple MCP servers to prevent regressions.

Example

No specific code example can be provided without access to the UI rendering code, but the fix would involve modifying the loop or recursive function that renders the plugin and MCP server list to ensure proper indentation for all MCP servers.

Notes

The solution assumes that the issue is solely with the UI rendering logic and not with how the plugin or MCP server data is stored or retrieved. If the data storage or retrieval is flawed, additional fixes may be necessary.

Recommendation

Apply a workaround by manually adjusting the UI rendering code to correctly handle multiple MCP servers until a more permanent fix can be integrated into the main codebase, as this will at least provide a visual fix for users while a more robust solution is developed.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING