Skip to main content
Glama

Generate video

vivid_generate_video

Start a video generation on VIVID from a prompt by specifying a model and duration; it returns a job ID for polling status until the clip is ready.

Instructions

Start a video generation on VIVID. Pick a model with vivid_list_models (type=video) and respect its durations / resolutions / aspect ratios. Reference images, start/end frames and audio must be public URLs (use vivid_upload_file for local files). Credits are pre-charged (credits/second × duration). Videos take 1-5 minutes: by default this returns the jobId immediately — poll with vivid_job_status. Note: a model's start/end frame and reference images can be mutually exclusive (e.g. Seedance 2.5): the backend resolves it and returns a warning. Reference videos (referenceVideoUrls) work on models whose vivid_list_models entry has referenceVideos: Seedance 2.0/2.5 bill the uploaded seconds too, Gemini Omni takes one source clip.

Input Schema

NameRequiredDescriptionDefault
modeNoModel mode when applicable (e.g. "std" | "pro" for Kling O3).
waitNoBlock until the video is ready (polls up to timeoutSec). Prefer false + vivid_job_status for long clips.
modelYesVideo model slug, e.g. "seedance-2.5", "kling-o3", "minimax-h3".
promptYesShot description. Describe subject, action, camera, lighting; keep camera and subject movement in separate sentences.
durationYesSeconds — must be one of the model's supported durations.
projectIdNo
resolutionNoe.g. "480p" | "720p" | "1080p" when the model supports it. Defaults to the model default (usually 720p).
timeoutSecNo
aspectRatioNo16:9
endFrameUrlNoLast frame (needs startFrameUrl on most models).
audioFileUrlsNoAudio files: voice for talking-head models, or reference audio where supported.
generateAudioNoNative audio (dialogue / SFX) when the model supports it.
startFrameUrlNoImage-to-video first frame. Gallery images (download URLs from VIVID) work as they are.
referenceImageUrlsNoSubject / product reference images (models with "reference" support).
referenceVideoUrlsNoReference videos (MP4/MOV) to copy motion, rhythm or framing from. Seedance 2.0: max 3, 15 s in all. Seedance 2.5: max 3, 2–30 s each, 30 s in all, 480p or 720p only (never with start/end frame). Gemini Omni: 1 clip, first 10 s. Billed seconds: see vivid_list_models.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.36.0

TDQS

A4/5.0
Behavior3/5

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

Goes well beyond the annotations by disclosing cost semantics (credits pre-charged as credits/second × duration), expected latency (1–5 minutes), the default non-blocking return of a jobId, and a backend-resolved mutual-exclusivity warning. However, it never says what wait=true actually returns, and the annotations already cover the side-effect profile, so this is useful added context rather than a complete behavioral picture.

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

Conciseness4/5

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

The most decision-relevant facts are front-loaded (model selection, public URL requirement, credit pre-charge, polling). The dense final sentence about reference videos is information-rich but crams three per-model rule sets into one long line, which slightly hurts scanability.

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

Completeness3/5

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

For a 15-parameter, non-idempotent, cost-incurring generation tool with no output schema, the description covers cost, latency, polling flow and URL requirements well. The remaining gap is the return contract: it says a jobId comes back by default but never describes what a blocking wait=true call yields or what the warning response looks like.

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

Parameters3/5

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

Schema coverage is 80%, so the baseline is 3 and the schema already documents most parameters (duration, referenceVideoUrls constraints, resolution defaults). The description adds real value on cross-parameter rules (mutual exclusivity of start/end frames vs reference images, billing for reference videos), but it does not explain several parameters the schema leaves bare, notably projectId and aspectRatio.

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?

The opening sentence is a specific verb+resource ("Start a video generation on VIVID"), and the surrounding text makes it distinguishable from vivid_generate_image and vivid_job_status by scoping it to video generation. An agent can identify the tool's role without opening the 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?

It explicitly routes the agent to siblings: vivid_list_models (type=video) for model selection, vivid_upload_file for local files, vivid_job_status for polling, and states that wait=false is the preferred default. The when-not condition (don't use local files, use upload; don't block, use polling) is articulated rather than implied.

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