Disabled MCP servers still show tools in deferred tools list
Description
When MCP servers are disabled via disabledMcpServers in settings.local.json, their tool names still appear in the deferred tools list injected into the system prompt at session start.
Steps to Reproduce
- Configure MCP servers (e.g., Figma plugin with ~100 tools)
- Disable them via
disabledMcpServersinsettings.local.json:
``json``
"disabledMcpServers": ["figma", "talk-to-figma", "stitch", "magic", "reactbits"]
- Start a new Claude Code session
- Observe the
<system-reminder>— all disabled servers' tools still appear in the deferred tools list
Expected Behavior
Disabled MCP servers should NOT have their tools listed in the deferred tools list. They are disabled and cannot be called.
Actual Behavior
~142 tool names from 8 disabled servers appear in every session's system prompt, consuming ~1500 tokens of context window.
Impact
For users with many MCP servers (some project-specific, enabled only when needed), this creates significant context overhead. In my setup: 370 total deferred tools, 142 from disabled servers = 38% waste.
Environment
- Claude Code: VSCode extension
- OS: macOS
- Multiple MCP sources:
~/.mcp.json, plugins (figma, playwright, etc.)
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗