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 users
  • EnterWorktree / ExitWorktree — git worktree users are a minority
  • CronCreate / CronDelete / CronList / ScheduleWakeup — scheduling tools rarely used
  • ListMcpResourcesTool / ReadMcpResourceTool — MCP resource browsing rarely needed
  • TaskCreate / 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

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗