enabledMcpjsonServers silently ignores second MCP server (v2.1.41)

Resolved 💬 3 comments Opened Feb 13, 2026 by znznzna Closed Feb 17, 2026

Bug Description

When multiple MCP servers are registered in enabledMcpjsonServers in ~/.claude/settings.json, only the first server is started. The second (and presumably subsequent) servers are silently ignored — no error, no warning, no log entry.

Environment

  • Claude Code version: 2.1.41
  • OS: macOS (Darwin 24.6.0, Apple Silicon)
  • Shell: zsh

Steps to Reproduce

  1. Register two MCP servers in ~/.claude/settings.json:
{
  "enabledMcpjsonServers": [
    "vps-manager",
    "lightroom-mcp"
  ]
}
  1. Both servers have valid mcp.json files in ~/.claude/mcp-servers/<name>/mcp.json
  2. Both servers can be started manually and work correctly
  3. Restart Claude Code

Expected Behavior

Both vps-manager and lightroom-mcp should appear in the debug log as "Starting connection":

MCP server "vps-manager": Starting connection with timeout of 30000ms
MCP server "lightroom-mcp": Starting connection with timeout of 30000ms

Actual Behavior

Only the first server starts. The second server is completely absent from logs:

MCP server "plugin:serena:serena": Starting connection with timeout of 30000ms
MCP server "vps-manager": Starting connection with timeout of 30000ms

No error, no warning — lightroom-mcp is silently skipped.

What I've Verified

  • [x] Directory name uses hyphens (lightroom-mcp, not lightroom_mcp)
  • [x] mcp.json is valid JSON (jq validates it)
  • [x] mcp.json paths use hyphen form
  • [x] No hidden characters in mcp.json (verified with xxd)
  • [x] Python module imports correctly (import mcp_server.main succeeds)
  • [x] Server starts correctly when run manually (python -m mcp_server.main)
  • [x] permissions.allow includes mcp__lightroom_mcp__* (underscore form)
  • [x] Debug log shows permissions are loaded but server connection is never attempted
  • [x] Recreated mcp.json from scratch to rule out encoding issues
  • [x] 20+ restarts attempted

Debug Log Analysis

[DEBUG] Applying permission update: Adding 3 allow rule(s) to destination 'userSettings': ["mcp__serena__*","mcp__vps_manager__*","mcp__lightroom_mcp__*"]
[DEBUG] [STARTUP] Loading MCP configs...
... (plugin loading) ...
[DEBUG] [STARTUP] MCP configs loaded in 351ms
[DEBUG] MCP server "plugin:serena:serena": Starting connection with timeout of 30000ms
[DEBUG] MCP server "vps-manager": Starting connection with timeout of 30000ms

The permissions are loaded correctly (lightroom_mcp is present), but the server connection is never initiated.

Workaround

Using ~/.mcp.json with inline mcpServers definition instead of enabledMcpjsonServers:

{
  "mcpServers": {
    "lightroom-mcp": {
      "command": "/path/to/venv/bin/python",
      "args": ["-m", "mcp_server.main"],
      "cwd": "/path/to/lightroom-mcp",
      "env": {}
    }
  }
}

This bypasses the enabledMcpjsonServers auto-discovery mechanism entirely.

View original on GitHub ↗

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