Is an idempotency_key an approval step on Sume MCP? No, it is dedup
No. On Sume hosted MCP an idempotency_key stops duplicate submits; it never asks a person. A human check must come from your client, OAuth scope or a spend cap.

No. Sume's docs describe the idempotency_key as a stable key for transport and dedup, 'not human approval'. It is required on write and paid tools, so a retry of the same call returns the original job instead of billing twice. It does not ask anyone whether the spend is wanted. If you need a person in the loop, you have to build that check somewhere else.
What each gate does
The rows come from the gates table on the tools and gates page and the OAuth page. The legacy allow_write and allow_paid arguments are accepted but cannot bypass a missing mcp:write scope.
| Gate | Stops | Does not stop |
|---|---|---|
| idempotency_key (required on write and paid) | Duplicate submits from retries | A wrong or unwanted submit |
| dry_run=true (optional) | Nothing by itself; previews cost and admission | A later real call |
| max_spend_usd (optional) | A call over your cap, only when you pass it | A call with no cap |
| OAuth scope mcp:write (opt-in) | Paid and write tools being visible at all | A paid call once Write is granted |
| Wallet and admission | Spend beyond the balance or queue | Spend you did not want but can afford |
Where a human check can live
The cleanest one is the OAuth consent page: leave Write off, and the paid tools are not even listed, so no prompt can reach them. After that, your client's own confirmation prompts are the next layer, and which tools they cover depends on the client's settings.
For unattended agents, replace the human with a cap: pass max_spend_usd on every paid call, run dry_run before a burst, and keep the wallet balance small enough that the worst case is acceptable.
- Do not describe an
idempotency_keyto a user as 'safety'; it is retry safety only. - Generate a new key for each intended create, and reuse the key only for a retry of that same create.
- Ask the user in chat before expensive or destructive actions, as Sume's server instructions say.
The tradeoff
Keeping approval out of the server means Sume does not slow down automated pipelines with prompts nobody will answer. The cost is that the server will accept a well-formed paid call from a confused agent, so the controls have to be set up front, by you, at connection time.
Sources
Related posts
More in Developers
- Ideogram 4.5 low to high on one order: new Idempotency-Key or a 409
A reused Idempotency-Key with a different payload returns 409 idempotency_conflict. Key on order id plus a payload hash so a quality change is a new job.
- Ideogram enable_copyright_detection: no such flag on Sume, what to do
Ideogram's precise edit takes an enable_copyright_detection flag. Sume's image request has no such field, so the check moves into your own pipeline.
- Ideogram API image URLs expire: save the edit, and what Sume returns
Ideogram's docs say image URLs expire and to download what you keep. Sume returns a hosted signed URL; here is a download step that works for both.
- Ideogram is_image_safe in the response: what Sume returns instead
Ideogram's precise edit returns an is_image_safe field per image. Sume has no such field: a refused input ends as a failed job with generation_rejected.
Written by Sume