MCP servers with disabled: true in .mcp.json are still loaded at session start

Resolved 💬 3 comments Opened Apr 5, 2026 by fooroun Closed Apr 9, 2026

Bug Description

MCP servers marked with "disabled": true in the project .mcp.json file are still loaded and active when a new Claude Code session starts.

Steps to Reproduce

  1. Configure .mcp.json with multiple MCP servers, setting "disabled": true on most of them
  2. Start a new Claude Code session
  3. Run /mcp or claude mcp list
  4. All servers are connected, including those marked as disabled

Expected Behavior

Servers with "disabled": true should NOT be loaded or connected at session start.

Actual Behavior

All servers are loaded regardless of the disabled flag. This causes:

  • ~20,000 extra tokens per message from unnecessary tool descriptions (120+ tools × ~200 tokens each)
  • Significant cost increase (~$100/week wasted)
  • No CLI command to disable servers mid-session (claude mcp disable doesn't exist)

Environment

  • macOS 26.2 (Tahoe)
  • Apple M5 MacBook Pro
  • Claude Code latest version

Additional Context

The .mcp.json file correctly shows disabled: true for 13 out of 18 servers, but claude mcp list shows all 18 as connected. This has happened repeatedly across sessions, suggesting it's not a one-time glitch.

Feature Request

Additionally, a claude mcp disable <name> / claude mcp enable <name> command would be very useful for toggling servers without removing and re-adding them.

🤖 Generated with Claude Code

View original on GitHub ↗

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