[BUG] Plugin's remote MCP server shadowed with no-ops when a disabled-but-installed Desktop extension exposes the same server name
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 a Claude Desktop extension and a Claude Code plugin both expose an MCP
server with the same name (e.g. "figma"), Claude Desktop "shadows with no-ops"
the plugin's remote MCP server even when the Desktop extension is disabled.
Result: claude mcp list shows the plugin server as ✓ Connected, but its
tools never appear in new chat sessions' deferred-tools list.
What Should Happen?
Figma plugin mcp should be used
Error Messages/Logs
Steps to Reproduce
- Install Claude Code plugin
figma@claude-plugins-official(cloud MCP at https://mcp.figma.com/mcp). - Install (or have pre-installed) Claude Desktop extension
ant.dir.ant.figma.figma(local Dev Mode MCP at 127.0.0.1:3845). - Disable the Desktop extension via Settings → Extensions, but leave the files installed.
- Start a new chat.
Expected
mcp__plugin_figma_figma__use_figma (and the rest of the plugin's tool surface) is advertised in the chat's deferred-tools list.
Actual
Tools are silently absent. ToolSearch returns 0 matches. The chat can read but not write to Figma.
Smoking-gun log entry
~/Library/Logs/Claude/main.log:
[info] Plugin "figma@claude-plugins-official" has remote MCP servers (figma).
Shadowing with no-ops to prevent SDK double-load.
This message fires every time a chat session starts while the conflicting
Desktop extension's files are still on disk — even when its isEnabled flag
in Claude Extensions Settings is false.
Claude Model
None
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
1.4758.0
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
Why this is a bug
The shadow logic should consider extension-disabled state, not just file presence.
Or: shadowing should be visible to the user (UI warning, log surfacing) instead
of silently dropping tools. Currently the user sees ✓ Connected and assumes
the server is healthy — there's no signal that tools are being suppressed.
Environment
- Claude Desktop: 1.4758.0
- Claude Code CLI: 2.1.119
- macOS: 26.3.1 (a) x86_64
- Plugin: figma@claude-plugins-official v2.1.15 (https://mcp.figma.com/mcp)
- Conflicting extension: ant.dir.ant.figma.figma (display_name "Figma", v1.0.8)
Evidence
Comparison across 5 sessions in the same project on the same machine on the
same day, all using identical config — only runtime registration differs:
| Session ID | UTC start | Plugin tools registered? |
|---|---|---|
| 3742a5b5 | 10:42 | ✅ (extension still enabled — both servers loaded) |
| 8f6a5ac0 | 10:59 | ✅ (extension enabled at start, disabled later) |
| 10c0b94e | 13:03 | ❌ "Shadowing with no-ops" |
| 0c3083ac | 13:15 | ❌ "Shadowing with no-ops" |
| c780855a | 13:52 | ❌ "Shadowing with no-ops" |
Disabling, toggling, and full app-quit/relaunch did not unstick the shadowing.
Only physically deleting the extension files restored plugin-tool advertising
to new chats.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗