[BUG] External plugins registered twice — duplicate MCP tool namespaces (mcp__github__* and mcp__plugin_github_github__*)
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
When the github plugin from claude-plugins-official is enabled (an external_plugin type),
its MCP server is registered under two separate namespaces, producing duplicate tool sets in
every session:
mcp__github__*— 25 tools (standard GitHub REST tools)mcp__plugin_github_github__*— 43 tools (includes Copilot-specific tools like
assign_copilot_to_issue, create_pull_request_with_copilot, request_copilot_review)
Both connect to the same endpoint (https://api.githubcopilot.com/mcp/) with the same auth
token. The tool sets differ, suggesting the server is being connected twice.
The github plugin is classified as an external_plugin in the marketplace
(source: ./external_plugins/github). Claude Code appears to load external_plugin MCP
configs at two levels:
- Plugin-scoped →
mcp__plugin_github_github__* - Direct/top-level →
mcp__github__*
Confirmed by inspecting: installed_plugins.json (single entry), settings.json
(mcpServers empty), no ~/.claude/.mcp.json, no project-level .mcp.json.
Only one install exists in cache, yet two connections are established.
### Impact
- Wastes context tokens — ~68 duplicate tools loaded every session
- Ambiguous which namespace to use for the overlapping tool subset
- Could cause
tools: Tool names must be uniqueAPI errors during/compact(related to #14127)
### Environment
- Platform: Linux (Ubuntu 24.04, kernel 6.8.0)
- Plugin:
github@claude-plugins-official
What Should Happen?
An enabled plugin's MCP server should appear exactly once, under a single namespace.
Error Messages/Logs
Steps to Reproduce
claude plugin install github@claude-plugins-official- Start any Claude Code session
- Run
/contextand observe the MCP tools section — both namespaces are present
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.74
Platform
Other
Operating System
Ubuntu/Debian Linux
Terminal/Shell
Other
Additional Information
This report was generated by Claude Code and audited by bcmcpher.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗