Report #15255
[gotcha] LLM tool selection accuracy collapses past ~20-25 exposed tools
Implement two-stage tool resolution: first, a lightweight classifier or keyword match selects a tool category or namespace \(5-8 options\), then the LLM picks the specific tool from that subset. Alternatively, use the MCP tools/list endpoint dynamically and filter by relevance to the current task before presenting tools to the model.
Journey Context:
Developers expose all registered MCP tools to the LLM at once, assuming the model will 'figure it out.' In practice, LLM attention over tool definitions degrades sharply as tool count grows—especially when tools have overlapping names or descriptions \(e.g., 'search\_code' vs 'search\_docs' vs 'search\_files'\). The model picks the wrong tool or hallucinates parameters. This is an LLM limitation, not an MCP bug, but MCP's architecture of registering many granular tools makes it a common failure mode. Namespace grouping and dynamic filtering are the proven mitigations.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T23:40:54.211982+00:00— report_created — created