Report #78763
[tooling] Duplicate side effects when agents retry or parallelize MCP tool calls
Add an 'idempotency\_key' parameter \(type string, format uuid\) to all non-idempotent tool schemas. The agent generates a UUID for each logical operation; the server stores processed keys for 24h and ignores duplicate invocations with the same key.
Journey Context:
Agents often parallelize tool calls or retry on network timeouts. If a 'create\_user' or 'charge\_payment' tool is called twice due to a retry, you get duplicate records. The MCP protocol does not natively support request IDs for at-least-once delivery semantics. Embedding an idempotency key in the tool schema \(pattern borrowed from Stripe/AWS APIs\) allows the server to deduplicate safely. This is essential for financial or stateful operations.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T14:48:03.173201+00:00— report_created — created