claude-code icon indicating copy to clipboard operation
claude-code copied to clipboard

Bug: MCP servers incorrectly namespaced under plugin name after plugin installation

Open raveenb opened this issue 2 months ago • 1 comments

Bug Report: MCP servers incorrectly namespaced under plugin name

Summary

When installing a plugin that provides an MCP server, Claude Code incorrectly namespaces ALL MCP servers (from both project .mcp.json AND the plugin) under plugin:<plugin-name>:* instead of keeping them properly separated.

Environment

  • Claude Code version: 2.0.74
  • OS: macOS (Darwin 24.6.0)
  • Plugin installed: fal-ai from luminary-lane-tools marketplace

Steps to Reproduce

  1. Create a project with .mcp.json containing multiple MCP servers:
{
  "mcpServers": {
    "playwright": { "command": "npx", "args": ["@playwright/mcp@latest"] },
    "memory": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-memory"] },
    "allpepper-memory-bank": { "command": "npx", "args": ["-y", "@allpepper/memory-bank-mcp"] }
  }
}
  1. Add a marketplace and install a plugin that provides an MCP server:
/plugin marketplace add raveenb/fal-mcp-server
/plugin install fal-ai@luminary-lane-tools
  1. Restart Claude Code

  2. Run /mcp to view MCP servers

Expected Behavior

MCP servers should be namespaced by their source:

# From .mcp.json (project config)
playwright                           ✓ connected
memory                               ✓ connected
allpepper-memory-bank                ✓ connected

# From plugin
plugin:luminary-lane-tools:fal-ai    ✓ connected

Actual Behavior

ALL MCP servers are incorrectly namespaced under plugin:fal-ai:*:

plugin:fal-ai:allpepper-memory-bank  ✓ connected  ← WRONG
plugin:fal-ai:fal-ai                 ✓ connected
plugin:fal-ai:fal-ai-docker          ✗ failed     ← WRONG
plugin:fal-ai:memory                 ✓ connected  ← WRONG
plugin:fal-ai:playwright             ✓ connected  ← WRONG

Screenshots

[See attached screenshots showing /plugin list vs /mcp server list]

Impact

  • Confusion: Users can't tell which servers come from plugins vs project config
  • Naming collision: If project has fal-ai in .mcp.json AND user installs fal-ai plugin, both get same namespace
  • Debugging difficulty: Hard to identify source of MCP server issues

Additional Context

  • The plugin's plugin.json correctly defines only ONE MCP server (fal-ai)
  • The other servers (playwright, memory, allpepper-memory-bank) are defined in project's .mcp.json
  • This suggests the namespacing logic is incorrectly associating all servers with the plugin

🤖 Generated with Claude Code

raveenb avatar Dec 23 '25 11:12 raveenb

Image Image

raveenb avatar Dec 23 '25 11:12 raveenb