Multiple MCP servers from same npm package: only first one starts

Resolved 💬 4 comments Opened Jan 13, 2026 by markthebest12 Closed Mar 8, 2026

Description

When configuring two MCP servers using the same npm package with different flags (e.g., @playwright/mcp@latest for headed and @playwright/mcp@latest --headless for headless), only the first server starts. The second server is never attempted.

Use Case

Running browser automation with choice of headed (for interactive logins/captchas) vs headless (for background scraping without window popup).

Configuration

Both plugins correctly configured per observed patterns from working plugins:

Directory Structure

~/.claude/plugins/marketplaces/claude-plugins-official/external_plugins/
├── playwright/
│   ├── .mcp.json
│   └── .claude-plugin/plugin.json
└── playwright-headless/
    ├── .mcp.json
    └── .claude-plugin/plugin.json

playwright/.mcp.json

{
  "playwright": {
    "command": "npx",
    "args": ["@playwright/mcp@latest"]
  }
}

playwright-headless/.mcp.json

{
  "playwright-headless": {
    "command": "npx",
    "args": ["@playwright/mcp@latest", "--headless"]
  }
}

Both have valid .claude-plugin/plugin.json files

settings.json

{
  "enabledMcpjsonServers": [
    "playwright",
    "playwright-headless"
  ]
}

marketplace.json

Both entries present in plugins array.

Permissions

Both mcp__playwright__* and mcp__playwright-headless__* tools are in the allow list and load correctly.

Expected Behavior

Both servers start:

MCP server "playwright": Successfully connected
MCP server "playwright-headless": Successfully connected

Actual Behavior

Only playwright starts. Debug log shows:

2026-01-13T15:40:41.443Z [DEBUG] MCP server "playwright": Starting connection...
2026-01-13T15:40:42.417Z [DEBUG] MCP server "playwright": Successfully connected

No log entry for playwright-headless at all - it's never attempted.

Evidence

  • Tool mcp__playwright__browser_navigate works ✅
  • Tool mcp__playwright-headless__browser_navigate returns "No such tool available" ❌
  • Permissions for both are loaded (visible in settings)
  • Config structures are identical between working and non-working plugins

Hypothesis

Claude Code may be deduplicating servers by npm package name (@playwright/mcp@latest), seeing the same package in both configs, and only starting one instance.

Environment

  • macOS
  • Claude Code CLI
  • @playwright/mcp@latest (version 0.0.55)

Workaround Needed

Currently no way to have both headed and headless browser automation available in the same session.

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗