[BUG] Built-in tools + MCP descriptions load on first message causing 10-20k token overhead
Resolved 💬 7 comments Opened Jul 12, 2025 by byPawel Closed Jul 13, 2025
[BUG] All tool descriptions load on first message causing 10-20k token overhead
Environment
- Platform (select one):
- [x] Anthropic API
- [ ] AWS Bedrock
- [ ] Google Vertex AI
- [ ] Other: <!-- specify -->
- Claude CLI version: 1.0.51
- Operating System: macOS 14.5
- Terminal: Warp
Bug Description
Claude Code loads ALL tool descriptions (both built-in and MCP) into context immediately after the first user message, regardless of whether any tools are needed. This causes massive token consumption even for simple queries.
Token Analysis (observed with --verbose):
- Built-in tools: Approximately 10,000-11,000 tokens (this seems to affect all users)
- With MCP servers: Additional 4,000-8,000+ tokens
- Total overhead: 10,000-20,000+ tokens on every conversation start
This means even asking "hello" or "what's 2+2?" triggers loading of:
- 15 built-in tools (Task, Bash, Grep, Read, Edit, MultiEdit, Write, WebFetch, WebSearch, TodoWrite, NotebookRead, NotebookEdit, LS, Glob, exit_plan_mode)
- Plus any configured MCP tools
- All with verbose descriptions
Steps to Reproduce
- Launch Claude Code with verbose flag:
claude --verbose - Type any simple message: "hello", "what's 2+2?", or "how are you?"
- Observe token count jumping from ~0 to:
- Without MCP: ~11,600 tokens
- With 4 MCP servers: ~15,000 tokens
- With 7+ MCP servers: ~20,000+ tokens
Expected Behavior
- Tool descriptions would ideally load only when needed for the specific task
- Simple queries like "hello" or "what's 2+2?" would use minimal tokens
- Token consumption would scale with actual tool usage
Actual Behavior
- ALL tool descriptions load immediately after first message
- Every conversation starts with 10,000+ token overhead
- Simple "hello" costs same tokens as complex tool-using tasks
- Built-in tools alone consume ~10,600 tokens (before any MCP)
Additional Context
Real Example:
User: "What's 2+2?"
Token consumption:
- Before message: ~1,000 tokens
- After message: ~15,000 tokens (with 4 MCPs)
- Actual response: "4" (~5 tokens)
- Wasted tokens: ~14,000
- Cost overhead: ~$0.21 per simple question
Impact:
- Based on my testing, every conversation appears to start with ~10,000+ tokens for built-in tools
- Users with MCP integrations see even higher consumption (15,000-20,000+ tokens)
- This makes simple queries unexpectedly expensive
- The token overhead is the same whether asking "hello" or performing complex tasks
- In my case with multiple MCP servers configured, I had to disable several to reduce token consumption by 30,000-35,000 tokens per conversation start
Current Workarounds I'm Using:
- Disabled several MCP servers to reduce token consumption
- Batching multiple questions in one session when possible
- Using
/compactcommand more frequently
Note:
This behavior appears to be new in v1.0.51. I don't recall seeing this level of token consumption in previous versions.
Related Issues:
- This seems distinct from #2638 (MCP response truncation)
- Different from #2320 (token limits with
/mcp list) - The main observation: all tool descriptions appear to load after the first message
This issue has 7 comments on GitHub. Read the full discussion on GitHub ↗