Summary
When chrome-devtools-mcp is installed as a Claude Code plugin via marketplace, /doctor reports:
Plugin Errors
└ 1 plugin error(s) detected:
└ plugin:chrome-devtools-mcp:chrome-devtools [chrome-devtools-mcp]: MCP server "chrome-devtools" skipped — same command/URL as already-configured "chrome-devtools"
Root Cause
The marketplace structure has source: "./" in marketplace.json, which means the marketplace root directory is the plugin directory. This causes the same plugin.json (containing mcpServers.chrome-devtools) to be loaded twice:
- First load from
~/.claude/plugins/marketplaces/chrome-devtools-plugins/.claude-plugin/plugin.json
- Second load from the cached copy at
~/.claude/plugins/cache/chrome-devtools-plugins/chrome-devtools-mcp/latest/.claude-plugin/plugin.json
Both contain the identical mcpServers block:
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["chrome-devtools-mcp@latest"]
}
}
}
The second registration is skipped as a duplicate, producing the warning.
Impact
- Functional: None — the MCP server loads correctly on the first registration
- UX: Persistent error in
/doctor output that cannot be resolved by the user
Possible Fix
- Remove
mcpServers from plugin.json and keep it only in .mcp.json (or vice versa), ensuring only one source of truth
- Or adjust the caching/loading logic so
source: "./" doesn't result in double-loading
Environment
- Claude Code v2.1.104
- macOS (Darwin 25.3.0)
- Plugin version: latest
Summary
When
chrome-devtools-mcpis installed as a Claude Code plugin via marketplace,/doctorreports:Root Cause
The marketplace structure has
source: "./"inmarketplace.json, which means the marketplace root directory is the plugin directory. This causes the sameplugin.json(containingmcpServers.chrome-devtools) to be loaded twice:~/.claude/plugins/marketplaces/chrome-devtools-plugins/.claude-plugin/plugin.json~/.claude/plugins/cache/chrome-devtools-plugins/chrome-devtools-mcp/latest/.claude-plugin/plugin.jsonBoth contain the identical
mcpServersblock:{ "mcpServers": { "chrome-devtools": { "command": "npx", "args": ["chrome-devtools-mcp@latest"] } } }The second registration is skipped as a duplicate, producing the warning.
Impact
/doctoroutput that cannot be resolved by the userPossible Fix
mcpServersfromplugin.jsonand keep it only in.mcp.json(or vice versa), ensuring only one source of truthsource: "./"doesn't result in double-loadingEnvironment