Lists take
limit (1 to 50) and starting_after to page. Only generate_media spends credits. The delete_* tools, and create_webhook_endpoint and update_webhook_endpoint (which send your outputs’ links to a URL), are marked destructive, so clients ask before running them. add_asset, estimate_generation and generate_media, which can download a URL you pass, and the two webhook tools are marked open-world. Names and descriptions in results are shown as quoted strings: text your team wrote, which the assistant treats as data. Creating a webhook endpoint, giving one a new URL or turning one back on also needs your own confirmation in a dialog your client shows (MCP elicitation, protocol 2026-07-28, as in Claude Code and claude.ai): the assistant cannot answer it, and a client without it is refused.
generate_media
Generates images, videos or audio with any model of your workspace.string
required
Model id, for example
seedance-2.5.string
required
One of the model’s modes:
text-to-image, image-to-video, reference-to-video…object
The mode’s fields, as
get_model lists them. A file field (first_frame, references, image…) takes an asset id, a URL or an element: see Your files.number
Refuse the generation, before spending, if it would cost more.
string
A new UUID per generation, the same one on a retry: the retry returns the generation already started. Reusing a key for a different request is refused.
integer
default:"40"
How long the call waits for the result, 0 to 40.
object
Up to 20 string pairs, to find the generation later with
list_generations.boolean
default:"true"
Include small image previews in the result.
wait_seconds, its status and the next call:
get_generation
string
required
gen_…integer
default:"0"
Wait up to this many seconds (0 to 40) for the generation to finish.
add_asset
Exactly one source:string
A public https file, downloaded by Argil. The same URL twice is the same asset.
object
{ "filename", "content_type" }: returns a signed URL to PUT the file to, valid 10 minutes, for files up to 50 MB for an image, 2 GB for a video, 200 MB for an audio. Then get_asset with wait_seconds until it is ready.object
{ "data_base64", "filename", "content_type" }: a file up to 2 MB, inline. For programs; never copy a file through a conversation.Results
Every tool answers with a short text for the conversation, ending withNext: and the call to make when there is one, and the same data as structuredContent for programs. A refused call has isError: true and an error with a stable code: see Troubleshooting.
Tools keep their names and required arguments. New models, modes and optional arguments appear without breaking existing calls; a breaking change ships as a new tool, and the old one stays at least 12 months.