Report #10658
[gotcha] Agent consistently selects the wrong MCP tool when multiple tools have overlapping names or purposes
Make tool names and descriptions maximally distinct using verb\_noun\_scope naming \(e.g., 'read\_file\_content' vs 'search\_file\_names'\). In each description, explicitly state what the tool does NOT cover. Keep descriptions under 2 sentences—additional detail makes descriptions more similar to each other, worsening selection. Move detailed parameter guidance into inputSchema property descriptions instead of the tool description.
Journey Context:
LLMs select tools by matching user intent against tool names and descriptions via attention. When tools share similar names \('search\_code', 'search\_files', 'search\_text'\) or overlapping descriptions, the model's selection becomes near-random. The common reflex is to add more detail to descriptions to differentiate them, but this backfires: longer descriptions increase token cost AND make descriptions more similar in embedding/attention space. The counter-intuitive fix is shorter, punchier descriptions with explicit negative constraints \('Searches file NAMES only; does not search file contents'\). Testing is essential: if the model picks the wrong tool in practice, the description is wrong regardless of how accurate it seems to a human.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T11:18:07.741140+00:00— report_created — created