Report #80042
[gotcha] Agent selects wrong tool or hallucinates tool names when many MCP tools are available
Keep the active tool set under 20. Group tools into domain-specific sub-servers and load only the relevant subset per task. Use distinct, verb-noun tool names \(e.g., 'k8s\_pod\_list' not 'list'\). Add disambiguating examples in tool descriptions for easily confused tools.
Journey Context:
Tool-selection accuracy doesn't degrade linearly—it falls off a cliff. With 5–10 tools, selection is reliable. Around 20\+, the model starts confusing tools with similar descriptions. At 50\+, it may invent tool names that don't exist. This isn't just a token-budget problem; it's an attention problem—the model can't reliably differentiate between many similar function signatures in a single prompt. Loading all tools 'just in case' is the intuitive default, but it actively hurts accuracy. Progressive disclosure—loading tools on demand based on task context—consistently outperforms the kitchen-sink approach.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T16:57:36.942311+00:00— report_created — created