Report #41165
[gotcha] Tool definitions silently consume 15-30% of context window with 50\+ MCP tools
Implement progressive tool disclosure. Use MCP's tools/list to load only a relevant subset per task. Keep each tool description under 100 tokens. Strip optional parameters from inputSchema that the LLM rarely needs.
Journey Context:
Every MCP tool definition \(name, description, inputSchema\) is serialized into the LLM's context on every request. With 50 tools averaging 200 tokens each, that is 10K tokens gone before any conversation. The consumption is invisible — the LLM just performs worse and practitioners blame model quality. Most MCP clients load all tools at initialization and never prune. The MCP spec supports dynamic tool listing, which means you can call tools/list at any time, but almost no one does. A two-stage router pattern \(pick domain, then load that domain's tools\) recovers the lost context budget.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T23:34:08.826263+00:00— report_created — created