Skip to main content
Glama

render_video

Render a video from a raw prompt with any model — the Creative Studio composer as a tool. SPENDS CREDITS. The prompt is sent to the provider VERBATIM, so this is the tool to use when you want exact control rather than a template clone. Returns a job id immediately; call get_generation to follow it. Some models TRANSFORM media instead of generating (upscale, remove-bg, face-swap): they take NO prompt at all. Call list_models first and read prompt ('required'|'optional'|'none') and requires — for prompt:'none' models omit prompt and pass the source media instead.

Input Schema

NameRequiredDescriptionDefault
audioNoNative audio. Omit to use the model default (usually on).
modelYesModel id from list_models, e.g. dreamina-seedance-2-ref. Required — there is no default.
aspectNoOnly values list_models reports for this model.
audiosNoReference media. Each entry is either a plain URL, or {name, url} so the prompt can address it as @name — the server renumbers those to the @Image1/@Video1 form the provider reads, in the order given, so you never count positions yourself.
imagesNoReference media. Each entry is either a plain URL, or {name, url} so the prompt can address it as @name — the server renumbers those to the @Image1/@Video1 form the provider reads, in the order given, so you never count positions yourself.
promptNoSent to the provider VERBATIM — nothing rewrites it. Provider flags parsed out of prompt text (--seed, --cf, --wm) survive, so they work here. Omit entirely for models whose list_models.prompt is 'none' (upscale, remove-bg) — they take no text.
run_idNoOptional. Your id for this agent run (1–64 of A-Z a-z 0-9 . _ : -). Stored on every job of the run so they can be found and filed together later. Use the same value for every call of one run.
videosNoReference media. Each entry is either a plain URL, or {name, url} so the prompt can address it as @name — the server renumbers those to the @Image1/@Video1 form the provider reads, in the order given, so you never count positions yourself.
projectNoOptional. A Drama Studio film id in the workspace being charged: the finished generation is added to that film's media pool (videos on its timeline, images/audio as references). Workspace generations only; checked before any credit is spent.
durationNoSeconds. Only values list_models reports for this model.
workspaceNoOptional. The workspace to generate in. Only a workspace API key (Settings → Developer) can spend a workspace — this may only repeat that key's workspace id; omit it and the key's own scope is used. A personal key or a sign-in token stays personal (passing a workspace is refused).
resolutionNoOnly values list_models reports for this model.
user_requestNoThe user's ORIGINAL words that led to this render — verbatim, not rewritten, summarised or translated. Stored with the job for quality review; never sent to the provider. Include it even if the user showed frustration or urgency; omit only if there were no user words (e.g. an automated step).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / user_request
      Added value: +{
      +  "description": "The user's ORIGINAL words that led to this render — verbatim, not rewritten, summarised or translated. Stored with the job for quality review; never sent to the provider. Include it even if the user showed frustration or urgency; omit only if there were no user words (e.g. an automated step).",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing that the call SPENDS CREDITS, that it is asynchronous ('Returns a job id immediately; call get_generation to follow it'), and that the prompt is passed VERBATIM with provider flags (--seed, --cf, --wm) surviving. It also warns that some models transform media rather than generate, which changes the call shape materially.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then cost, then the key verbatim semantic, then the follow-up call, then the routing caveat — a sensible escalation order. Capitalisation is used deliberately for the two facts an agent could get wrong (spending, no-prompt models); no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter, credit-spending, async tool with no output schema, the description covers the return contract (job id, follow with get_generation), the model-selection prerequisite, and the empty-prompt edge case. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema baseline is already a 3. The description adds real meaning on top: `model` has no default and must come from list_models, and `prompt` must be omitted entirely for 'none' models. It also frames aspect/duration/resolution as list_models-derived rather than free-form, though it does not re-explain the media-reference `name` convention the schema covers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('render a video') and immediately scopes it as the raw-prompt, verbatim path, explicitly contrasting it with 'a template clone'. That lets an agent separate it from clone_template, render_image, and cinematic_ads_make_video without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing: use this when you want exact control rather than a template; call list_models first and read `prompt`/`requires`; call get_generation to follow the job. It also states a when-not case — prompt:'none' models take no prompt and need source media instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources