MCP servers with disabled: true in .mcp.json are still loaded at session start
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
- Configure
.mcp.jsonwith multiple MCP servers, setting"disabled": trueon most of them - Start a new Claude Code session
- Run
/mcporclaude mcp list - 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 disabledoesn'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
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗