v0 MCP tool approval and Sume: ask first before paid calls
v0 lets you disable tools and set ask-for-approval or auto-use per MCP. Pair that with Sume's dry_run and max_spend_usd so a paid call never runs unreviewed.

Set Sume's tools to ask-for-approval in v0, switch off any tool you do not need, and have the agent send dry_run=true and max_spend_usd on paid calls. v0's MCP docs say you can enable or disable individual tools and choose between ask-for-approval and auto-use in permission settings. Sume's own gates sit behind that prompt; neither one replaces the other.
Sources, read 2026-10-06: v0's MCP docs, Sume's MCP tools and gates and Safe automation.
Which Sume gates pair with an approval prompt?
The table below lists each item as documented.
| Layer | Control | What it does |
|---|---|---|
| v0 | Disable a tool | The agent cannot call it at all |
| v0 | Ask for approval | You see the call before it runs |
| Sume | dry_run=true | Previews without submitting |
| Sume | max_spend_usd | Caps spend only when the call sends it |
| Sume | idempotency_key | Required on writes and paid calls; makes a retry safe |
What should the approval prompt show?
Read the arguments before approving. A paid create without max_spend_usd has no per-call cap, because Sume enforces it only when sent. A create without idempotency_key is rejected, which is a safe failure. If an approved call times out in v0, do not approve a second create: wait on the job id with jobs_wait instead.
Auto-use is a decision, not a default
Auto-use fits read-only tools such as tools_list, tools_schema and mcp_health. For paid tools, leave approval on, or give the agent an OAuth grant without mcp:write so write tools are not available to it.
Sources
Related posts
More in Developers
- callback_url on Sume /v1/videos: HTTPS only, not OpenRouter events
POST /v1/videos takes callback_url. It must be HTTPS, and Sume sends its own job.completed envelope, not OpenRouter's video.generation events.
- Verify a Sume TTS transcript_receipt SHA-256 yourself in Python
Recompute submitted_transcript_sha256 from your script with NFC and LF canonicalization and compare it to the transcript_receipt on a finished Sume TTS job.
- verifyWebhook toleranceSeconds 0 turns off the replay check
In @sume-com/sdk, toleranceSeconds defaults to 300 and 0 skips the timestamp check. Keep the default and use the now seam to test old deliveries.
- 4K vertical Short in Timeline: the 2160 cap and 1214x2160
Timeline output width and height top out at 2160 and must be even, so 2160x3840 is refused. What the largest 9:16 frame is and whether a Short needs it.
Written by Sume