Report #24713
[tooling] MCP tools causing duplicate side effects on retry or lacking safety hints
Add Tool Annotations to your tool definitions: set \`idempotentHint: true\` for safe retries, \`destructiveHint: true\` for deletions, and \`openWorldHint: false\` for sandboxed operations.
Journey Context:
By default, MCP clients cannot distinguish a 'safe to retry' read operation from a 'dangerous to repeat' payment operation. Without hints, a transient network error causes the client to either fail permanently \(conservative\) or risk duplicating side effects \(aggressive\). The 2024-11-05 spec introduced Tool Annotations specifically to solve this. \`idempotentHint: true\` signals that retrying on 5xx errors is safe. \`destructiveHint: true\` triggers confirmation UI. Most SDKs default these to null/undefined, so you must explicitly set them to get safe agent behavior.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T19:53:31.656976+00:00— report_created — created