Assets & presets
Two kinds of tool here. The capabilities produce new material: a music bed, a sting, a shot. The listings tell you what the account already has, which is how you turn “use my newsroom brand” into an id the other tools accept.
Capabilities
Section titled “Capabilities”These return an asset. They do not place it; putting it in the video is an
edit_video operation, which keeps “make something” and
“change the cut” as separate, individually reversible steps.
generate_music
Generate a background music bed from a description of the vibe (e.g. "hype, upbeat electronic"). Returns an audio file to place with edit_video; use it to change a finished video's music. Reuses a cached bed when one matches, so repeats are cheap.
| Parameter | Type | Description |
|---|---|---|
prompt required | string | The feel of the track in a few words: genre, energy, instrumentation. No lyrics. |
duration_seconds | number | Roughly how long it needs to play. Defaults to 30. |
job_id | string | The video job this is for, when known. |
Returns: Registers a file only. Nothing has changed on screen. Place it with edit_video: add_asset, then add_item (or replace_asset to swap it over an existing placement).
| Field | Type | Description |
|---|---|---|
card always | "asset" | What kind of result this is. |
capability always | string | Which capability produced this. |
asset always | object | The file, in the field names add_asset takes. |
summary | string | One line on what was produced. |
next_step | string | Guidance for you, not for the user. Act on it; do not read it out. |
generate_sound_effect
Generate a short sound effect from a description (e.g. "whoosh on a hard cut", "UI click"). Returns an audio file to place with edit_video.
| Parameter | Type | Description |
|---|---|---|
prompt required | string | What the sound should be. |
duration_seconds | number | How long it should run. |
sfx_type | string | Rough category, e.g. "transition", "impact", "whoosh". |
job_id | string |
Returns: Registers a file only. Nothing has changed on screen. Place it with edit_video: add_asset, then add_item (or replace_asset to swap it over an existing placement).
| Field | Type | Description |
|---|---|---|
card always | "asset" | What kind of result this is. |
capability always | string | Which capability produced this. |
asset always | object | The file, in the field names add_asset takes. |
summary | string | One line on what was produced. |
next_step | string | Guidance for you, not for the user. Act on it; do not read it out. |
find_broll
Find stock footage for a description, from the same libraries the pipeline uses. Use it when the user wants different b-roll and hasn't uploaded their own footage. Returns the best match as `asset` (place it with edit_video in the same turn) plus up to two `alternatives` the user can swap to from the chat.
| Parameter | Type | Description |
|---|---|---|
prompt required | string | What the shot should show, in a sentence. |
query | string | What is typed into the stock search: 2-5 concrete words naming what is in the frame, keeping the user's own subject words exactly ("American football game", never just "football"; "NFL quarterback throwing"). No filler like "actual", "live action", "b-roll", "footage". |
avoid | string[] | Words for footage that would be WRONG even though a search could confuse it with the request, e.g. ["soccer"] for American football, or what the user just rejected. A clip whose title says one of these is never returned. |
source_type | string | Moving footage or a still. Defaults to video. One of: video, image. |
aspect_ratio | string | The video's aspect ratio, so the search asks for the right orientation. One of: 9:16, 16:9, 1:1. |
Returns: Registers a file only. Nothing has changed on screen. Place it with edit_video: add_asset, then add_item (or replace_asset to swap it over an existing placement).
| Field | Type | Description |
|---|---|---|
card always | "asset" | What kind of result this is. |
capability always | string | Which capability produced this. |
asset always | object | The file, in the field names add_asset takes. |
summary | string | One line on what was produced. |
next_step | string | Guidance for you, not for the user. Act on it; do not read it out. |
Using footage you already have
Section titled “Using footage you already have”Tools that take footage take URLs, not files. MCP has no file-transfer channel, so there is nothing to attach:
{ "script_id": "…", "broll_custom_files": [ { "url": "https://…/clip.mp4", "name": "Harbour at dawn", "description": "Wide establishing shot" } ]}Anything reachable over HTTPS works. To use something on your own machine, upload it in the web app first; it lands in your asset library and is addressable by URL from then on.
Listings
Section titled “Listings”list_presets
List the user's saved presets/templates of a given type (name + id + which is the default). Use before applying a brand kit or caption preset by name.
| Parameter | Type | Description |
|---|---|---|
type required | string | One of: brand_kits, captions, voiceovers, video_templates, script_templates, speaker_styles. |
Returns
| Field | Type | Description |
|---|---|---|
card always | "presets" | What kind of result this is. |
type always | string | Which library these came from, echoed back from the argument. |
presets always | object[] | The user's saved rows, the default first. |
list_voices
List AI narration voices (ElevenLabs catalogue). The card lets the user play a sample of each and tap one to choose it, so when a voice is the user's decision, call this and ask rather than picking. Narrow it with query when they describe what they want ("British", "female", "deep", "news"). The user's saved default voice is marked.
| Parameter | Type | Description |
|---|---|---|
query | string | Words to match against each voice's name, description, accent, gender, age and use case. Every word must match. |
limit | number | How many to show (default 8, max 20). |
Returns
| Field | Type | Description |
|---|---|---|
card always | "presets" | What kind of result this is. |
type always | "voices" | Always "voices": the catalogue, not one of the saved libraries. |
presets always | object[] | The narration voices available. Pass an id as voice_id. |
query | string | null | The filter that was applied, if any. |
total_matching | number | How many voices matched before the limit. |
The ElevenLabs catalogue available to the account. Pass a voice_id from here
to create_video_from_script to choose the narrator for an AI-voiceover video,
or to create_video_from_upload with narration_lines. Narrow it with query
(“british male”, “news”); each voice carries a preview_url sample, and the
user’s saved default is marked is_default and listed first.