Desktop: ~3.9k tokens of built-in MCP tool schemas load non-deferred with no opt-out; built-in server instructions exceed the documented 2KB cap
Environment
- Claude Code Desktop, CLI core 2.1.201, Windows 11 Pro (10.0.26200)
Summary
Measured session-start context on the Desktop app is ~51.6–52.3k tokens (sum of input_tokens + cache_creation_input_tokens + cache_read_input_tokens on the first main-chain assistant turn, read from session JSONL message.usage; consistent across 6 recent sessions and 3 different projects). Auditing where it goes surfaced two Desktop-specific contributors that users cannot reduce:
1. ~19 built-in MCP tools load with full JSON schemas, non-deferred
With tool search active (ENABLE_TOOL_SEARCH unset), third-party MCP tools correctly defer to names-only. But three Desktop built-in servers load complete schemas upfront every session:
| Server | Tools | Measured size |
|---|---|---|
| Claude Browser (preview_*) | 13 | 8,716 chars ≈ ~2,180 tokens |
| visualize (read_me, show_widget) | 2 | ~4,500 chars ≈ ~1,125 tokens |
| ccd_session (spawn_task, mark_chapter, …) | 4 | ~2,400 chars ≈ ~600 tokens |
(Char counts taken by copying the tool definitions verbatim from a live session's system prompt; tokens estimated at chars/4, so these are floors — schema-heavy text usually tokenizes denser.)
That is ~3.9k tokens per session for tools many sessions never invoke. All three seem like natural candidates for the same ToolSearch deferral the other MCP servers get, or at least a settings toggle (disableArtifact/disableAgentView exist; nothing equivalent covers these).
2. Built-in server instructions exempt from the documented 2KB truncation
mcp.md states: "Claude Code truncates tool descriptions and server instructions at 2KB each." The built-in computer-use server's instructions block measures 4,897 chars in a live session — ~2.4× the cap that third-party servers are held to. It is the single largest MCP instructions block in the session (the claude-in-chrome and Windows-MCP blocks are well under the cap).
Ask
- Defer the Desktop built-in tool schemas via ToolSearch (or expose a toggle).
- Either apply the 2KB instructions cap to built-in servers or document the exemption.
Why it matters
On a 200k window this is fixed ~5k+ overhead per session before the user types a word; it also re-tokenizes as uncached input in several layouts. Users auditing their own context (via /context or session logs) currently have no lever for any of it.