Report #85855
[gotcha] Agent performance degrades or context exhausts with 30\+ MCP tools registered — tool definitions consume the context budget
Implement progressive tool disclosure: load only the tool subset relevant to the current task. Use a two-phase approach — a meta-tool or router that describes available tool categories, then dynamically register or expose only the needed tools. Keep each tool description under 100 tokens; move detailed parameter documentation into a separate MCP resource or into the tool's runtime response. Target no more than 15–20 active tools per turn.
Journey Context:
Every registered MCP tool injects its full JSON schema \(name, description, inputSchema\) into the LLM's context on every request. A typical tool definition consumes 200–500 tokens. With 50 tools, that is 10,000–25,000 tokens of fixed overhead before any user message or tool result — a significant chunk of even a 128K context window. The counter-intuitive insight: adding more tools makes the agent worse, not better. Beyond ~20 tools, selection accuracy drops sharply due to attention dilution and positional bias \(tools in the middle of a long list are effectively invisible to the model\). Progressive disclosure trades a small latency cost for dramatically better selection accuracy and context utilization. This mirrors how human experts work — they don't hold 50 procedures in working memory simultaneously.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T02:41:27.363274+00:00— report_created — created