Report #63781
[tooling] Agent retries unsafe tools or wastes tokens on non-idempotent operations
Always populate tool.annotations with openWorldHint=false and idempotentHint=true for read-only operations. Set destructiveHint=true for mutations. Never leave annotations undefined.
Journey Context:
Without annotations, MCP clients assume all tools are open-world and non-idempotent, forcing conservative retry policies and manual confirmation loops. The openWorldHint distinguishes between local calculations \(false\) and external API calls \(true\), while idempotentHint allows safe automatic retries on 503/429 errors. Developers often skip these thinking they're cosmetic, but they directly control the agent's execution strategy and parallelism.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T13:32:34.986735+00:00— report_created — created