Feature: Allow disabling specific built-in tools to reduce context overhead
Resolved 💬 3 comments Opened Jun 7, 2026 by Lumos-789 Closed Jul 16, 2026
Problem
Claude Code loads ~30 built-in system tools at startup, consuming approximately 16,000+ tokens (8% of a 200K context window) before any conversation begins. This is fixed overhead that cannot be configured.
Many of these tools are unused by specific users/workflows:
NotebookEdit— irrelevant for non-Jupyter usersEnterWorktree/ExitWorktree— git worktree users are a minorityCronCreate/CronDelete/CronList/ScheduleWakeup— scheduling tools rarely usedListMcpResourcesTool/ReadMcpResourceTool— MCP resource browsing rarely neededTaskCreate/TaskUpdate/TaskList/TaskGet/TaskOutput/TaskStop— task management used by some, not all
Proposal
Add a disabledTools configuration option in settings.json:
{
"disabledTools": [
"NotebookEdit",
"EnterWorktree",
"ExitWorktree",
"CronCreate",
"CronDelete",
"CronList",
"ScheduleWakeup",
"ListMcpResourcesTool",
"ReadMcpResourceTool"
]
}
Disabled tools would not have their JSON Schema definitions loaded into the system prompt, saving 2,000-4,000+ tokens per conversation turn.
Impact
- Token savings: ~2-4K tokens per turn. Over a 50-turn conversation, that is 100K-200K tokens saved.
- Cost savings: At $5/M input tokens (Opus), disabling 5 unused tools saves ~$0.50-1.00 per long conversation.
- Attention quality: Fewer tool definitions means less context dilution and better instruction adherence (per "Lost in the Middle" research).
- Zero risk: Only hides tools the user explicitly opts out of. No behavior change for users who don not configure this.
Alternative Considered
MCP servers are already configurable (add/remove per project scope). Built-in tools should have similar opt-out capability for parity.
Environment
- Claude Code version: latest
- Model: glm-5.1
- OS: macOS Darwin 25.4.0
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗