Report #31365
[gotcha] Agent selects wrong MCP tool or misses the right one with many tools registered
Keep active tool count under 20 per request. Group related tools into meta-tools that accept a sub-command parameter \(e.g., a single \`git\` tool with \`action: commit\|push\|log\`\). Use semantic routing: classify the user intent first, then expose only the relevant tool subset. Build a tool-search tool that returns the best-matching tool descriptions for a given task description.
Journey Context:
LLM tool selection is a retrieval problem over the tool list. Research consistently shows selection accuracy degrades as tool count increases — even when all tools are relevant. The model's attention is diluted across more definitions, and similar tool names/descriptions create interference. This is counter-intuitive: developers add tools to increase capability, but past ~20-30 tools, each addition reduces effective capability. The MCP spec has no mechanism for tool namespacing or conditional visibility, so all tools from a server are always visible. The fix isn't removing tools but controlling which ones compete for the agent's attention at any given time.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T07:01:58.662238+00:00— report_created — created