disabled: true in ~/.claude.json mcpServers is ignored on startup

Resolved 💬 5 comments Opened Mar 13, 2026 by blumaa Closed Apr 11, 2026

Description

MCP servers with "disabled": true in the top-level mcpServers config of ~/.claude.json still auto-connect on session startup. The disabled flag is completely ignored.

Version

Claude Code v2.1.74

Steps to Reproduce

  1. Add MCP servers to ~/.claude.json with "disabled": true:
"mcpServers": {
    "chrome-devtools": {
      "type": "stdio",
      "command": "npx",
      "args": ["chrome-devtools-mcp@latest"],
      "disabled": true
    },
    "firebase": {
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "mcp"],
      "disabled": true
    }
}
  1. Start a new Claude Code session
  2. Run /mcp

Expected Behavior

Servers with "disabled": true should not connect on startup. They should appear as disabled in the /mcp dialog and only connect when manually enabled.

Actual Behavior

All servers connect automatically regardless of the disabled: true flag. Verified via:

  • /mcp dialog shows all servers as "connected"
  • claude mcp list shows all servers as "✓ Connected"
  • Python JSON parsing confirms disabled: true is correctly set in the file with no duplicate keys or overrides

Additional Context

  • No project-level .mcp.json or project settings overriding the config
  • ~/.claude/settings.json has empty mcpServers: {}
  • The disabled flag is the only documented way to keep servers configured but not auto-connecting
  • This forces users to either remove servers entirely or manually disable them via /mcp every session

View original on GitHub ↗

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