Per-server defer/eager policy for MCP tool schemas (extend existing deferred-tools mechanism)
Claude Code already defers many built-in tools behind on-demand ToolSearch loading instead of sending their full schemas on session start — this is confirmed working today (we see ~82 tools deferred this way). MCP-server-provided tools (e.g. browser automation, terminal, visualization servers) are attached eagerly instead, with full tool schemas sent on every session's first call regardless of whether that session's task ever touches them.
We measured this directly on our own fleet: for a lean session, tool JSON schemas + the base system prompt make up ~65-80% of the ~76k-token fixed floor paid on every single call (not just the first — this floor doesn't shrink after compaction either). This figure is measured directly for the logged portion and inferred by subtraction (total harness-reported usage tokens minus the sum of named/logged attachment record bytes) for the unlogged remainder — not read outright, since tool schemas and the base system prompt are never written to the transcript as their own record. MCP-server schemas are a meaningful share of that, and it's currently unavoidable for sessions that never call those tools.
Request: extend the existing defer/eager split to MCP-server tool schemas — either a per-server config flag (defer by default, eager opt-in), or a task-intent signal at session launch so a session explicitly dispatched for browser/visualization work still gets those tools eager on call 1.
Happy to share our measurement methodology if useful.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗