MCP servers with disabled: true still load on session start
Description
MCP servers configured with "disabled": true in .mcp.json are still being loaded and their tools made available when starting a new Claude Code session.
Steps to Reproduce
- Create/update
.mcp.jsonwith a server set to disabled:
{
"mcpServers": {
"XcodeBuildMCP": {
"disabled": true,
"command": "npx",
"args": ["-y", "xcodebuildmcp@latest"]
}
}
}
- Start a new Claude Code session (or restart an existing one)
- Observe that the MCP server's tools are still available in the session
Expected Behavior
MCP servers with "disabled": true should not be loaded on session start. Their tools should not appear in the available tools list.
Actual Behavior
The MCP server loads anyway and all its tools are available, requiring manual /mcp toggle to disable.
Environment
- Claude Code CLI
- macOS (Darwin 25.2.0)
- XcodeBuildMCP configured with disabled: true
Context
This is particularly problematic for MCP servers with many tools (XcodeBuildMCP has 60+) which can trigger the "Tool names must be unique" API error in subagents (related to #17743). The workaround of setting disabled: true doesn't prevent the issue because the flag is ignored.
Workaround
Use /mcp command to manually disable the server each session.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗