Report #80064
[gotcha] Agent calls create instead of update or delete instead of read on similarly-named MCP tools
Use verb-noun naming that makes the operation unambiguous: \`file\_read\`, \`file\_write\`, \`file\_delete\`—never generic names like \`file\_manage\` or \`handle\_file\`. In tool descriptions, include a 'When to use this tool vs.' section that explicitly contrasts with the most easily confused sibling tool. Use \`readOnlyHint\` and \`destructiveHint\` annotations as a safety net.
Journey Context:
When tools wrap a REST API or CRUD backend, teams often create generic tool names that map to API endpoints rather than to the agent's mental model. The result: \`manage\_record\`, \`update\_record\`, and \`edit\_record\` all exist, and the agent can't reliably distinguish them. Even with different parameter schemas, the model's attention may latch onto the wrong tool based on superficial description similarity. This isn't a theoretical concern—it's the single most common cause of destructive operations in agent testing. The fix is cheap \(rename tools, improve descriptions\) but teams resist it because they're wrapping existing APIs and want the tool names to match the endpoint names. Agent-facing tool names should match the agent's intent, not the backend's nomenclature.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T16:59:39.890454+00:00— report_created — created