Dry-run an H3 Max Recast from MCP: dry_run and max_spend_usd
Before a paid person swap, Sume's hosted MCP can preview cost with dry_run and cap spend with max_spend_usd. The calls, their order, and idempotency_key.

Why preview a Recast
Recast bills by the second of source video. fal's page, read 2026-10-03, lists $0.30 per second at 768p and $0.45 per second at 1080p, with reference photos included. Sume bills the list with its 1.25 margin. A 30-second clip at 1080p is a noticeably bigger charge than a 6-second clip at 768p, so the first call to an agent-driven swap should be a preview.
The gates on Sume's hosted MCP
The MCP tools and gates page lists the gates on paid tools such as generate_video. They are the same whether the caller is an editor, an agent or a script.
| Gate | Required | Meaning |
|---|---|---|
| idempotency_key | Yes, on write and paid tools | Stable key for transport and dedup, not human approval |
| dry_run=true | Optional | Admission and cost preview only; the job is not submitted |
| max_spend_usd | Optional | Enforced only when you provide it |
| mcp:write scope or API key | Yes, to see paid tools | OAuth read-only sessions do not see them |
The order of calls
Call tools_schema with name: "generate_video" to read the contract. Then call generate_video with dry_run: true, the model h3-max-recast, the source video_url, the photos and the source length as duration, and read the estimate against your balance. Repeat the same call without dry_run, with a fresh idempotency_key and a max_spend_usd just above the estimate.
Then use jobs_wait and jobs_result to collect the output. The docs say to poll with jobs_status or jobs_wait, then read jobs_result, and to prefer media.sume.com URLs in reports over signed URLs.
Things to remember
- A dry run needs the same inputs as the real call, so a wrong
durationshows up in the preview. max_spend_usdapplies only when you pass it. An agent that omits it has no per-call cap from this field.- Reuse the same
idempotency_keyto retry a transport failure, and use a new one for a deliberate second take. - Recast has no seed on Sume, so a second take is a second charge.
Sources
Related posts
More in Agents
- Reference remix take kinds: which model renders each shot
A remake in Sume is planned as takes, and each take kind names its model: talking, performed, voice, still, recast, genjutsu, product swap. The map, and why.
- Remake a viral clip with my product: edit it or rebuild it?
Sume has two remake routes: models that keep the source footage, and reference remix that rebuilds shot by shot. How the agent decides and when to override.
- Scheduled run missing from /v1/jobs? Read /v1/action-runs instead
A Sume scheduled agent run is not a generation job. It never appears in /v1/jobs and has its own statuses, so poll /v1/action-runs/{run_id}.
- Scheduled run body: unknown fields are silently dropped, not a 400
A typo in a Sume scheduled run body is dropped without an error, unlike a Format run. Check names, then read the receipt to see what applied.
Written by Sume