Skip to main content
Glama

Generate a video

generate_video

Makes a video. MOST EXPENSIVE: per second, on completion, purchased credits only. Async: poll get_task. Quote with dry_run:true (free), confirm with the user. Pick by job (credits/s, std/pro):

  • Still to life: kling-v3. 120/160; sound +40; 4K 600; 3-15s; end_frame_id.

  • Cheapest with sound: veo-3.1-lite-generate-preview. 4/6/8s; 8s = 570 (1080p 910); end_frame_id.

  • Keep a clip's acting, new person or scene: kling-v3-omni + reference_video_id (180/240, silent) + 3 reference_image_ids (6 with no clip).

  • Same at 120/160 when 10s, 1080p, silent do: kling-video-o1 + the clip.

  • Copy a dance onto the still's person: kling-motion-control. 180/240 per second of the clip (3-30s), silent.

  • Edit a clip in words: gemini-omni-1.1-flash. 140 at 720p (1080p 290, 4K 430, upscales); 3-10s set by the model; 3 reference_image_ids; clip_task:extend too.

  • Long takes, dialogue, many refs: dreamina-seedance-2-5-260628. 150/330/820 (lite/std/pro), 4-30s, sound. No generation_id: follows reference_image_ids / reference_video_ids (billed as input) or text alone, in aspect_ratio. clip_task + reference_video_id edits/extends it. draft:true = 480p; finalize_draft_id renders it 1080p. whoami: default + models off. @slug or entity_ids attach entities.

Input Schema

NameRequiredDescriptionDefault
modeNoDefault std 720p; pro 1080p; lite 480p; 4k per guide.
nameNoLibrary title.
audioNoKling 3.0/Omni, no reference clip.
draftNo
modelNoDefault: whoami's.
promptNoThe motion; for an edit, the change.
dry_runNoQuote, free.
durationNoSeconds in the model's range. Default 5 (Veo 8); Motion Control: the clip's.
clip_taskNo
entity_idsNo
keep_soundNoEdit: false = new sound
project_idYes
aspect_ratioNo
end_frame_idNoImage the clip lands on.
generation_idNoFirst-frame image id (Seedance: optional).
extend_directionNo
finalize_draft_idNoDraft video id; alone.
reference_video_idNoFinished video id: acting to keep, movement to copy, or clip to edit.
reference_image_idsNoStills to stay faithful to.
reference_video_idsNoSeedance: clips to follow, max 30s.
reference_audio_urlsNoSeedance: MP3/WAV links to follow, 2-30s.
character_orientationNoMotion Control: whose face. Default video.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • changedInput schema / properties / audio / description
      Previous value: -"Kling 3.0/Omni only, never with a reference clip."New value: +"Kling 3.0/Omni, no reference clip."
    • changedInput schema / properties / character_orientation / description
      Previous value: -"Motion Control: whose face, the still's or the clip's. Default video."New value: +"Motion Control: whose face. Default video."
    • changedInput schema / properties / dry_run / description
      Previous value: -"Quote only (exact credits), free."New value: +"Quote, free."
    • changedInput schema / properties / duration / description
      Previous value: -"Whole seconds within the model's range. Default 5 (Veo 8); Motion Control uses the clip's."New value: +"Seconds in the model's range. Default 5 (Veo 8); Motion Control: the clip's."
    • addedInput schema / properties / reference_audio_urls
      Added value: +{
      +  "description": "Seedance: MP3/WAV links to follow, 2-30s.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / reference_image_ids / description
      Previous value: -"Stills to stay faithful to; per-model counts above."New value: +"Stills to stay faithful to."
  2. Changed16 schema fields changed
    • addedInput schema / properties / aspect_ratio
      Added value: +{
      +  "enum": [
      +    "16:9",
      +    "9:16",
      +    "1:1",
      +    "4:3",
      +    "3:4",
      +    "21:9"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / clip_task
      Added value: +{
      +  "enum": [
      +    "edit",
      +    "extend"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / draft
      Added value: +{
      +  "type": "boolean"
      +}
    • changedInput schema / properties / dry_run / description
      Previous value: -"Quote only: exact credits_cost, nothing submitted or charged."New value: +"Quote only (exact credits), free."
    • changedInput schema / properties / end_frame_id / description
      Previous value: -"Image the clip lands on (Kling 3.0, Veo, Gemini Omni, Seedance)."New value: +"Image the clip lands on."
    • addedInput schema / properties / extend_direction
      Added value: +{
      +  "enum": [
      +    "forward",
      +    "backward"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / finalize_draft_id
      Added value: +{
      +  "description": "Draft video id; alone.",
      +  "type": "string"
      +}
    • changedInput schema / properties / generation_id / description
      Previous value: -"Source image id (generation or upload)."New value: +"First-frame image id (Seedance: optional)."
    • addedInput schema / properties / keep_sound
      Added value: +{
      +  "description": "Edit: false = new sound",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / mode / description
      Previous value: -"Default std (720p-class); pro 1080p-class; 4k where the guide lists it."New value: +"Default std 720p; pro 1080p; lite 480p; 4k per guide."
    • changedInput schema / properties / mode / enum
      Previous value: -[
      -  "std",
      -  "pro",
      -  "4k"
      -]New value: +[
      +  "lite",
      +  "std",
      +  "pro",
      +  "4k"
      +]
    • addedInput schema / properties / name
      Added value: +{
      +  "description": "Library title.",
      +  "type": "string"
      +}
    • changedInput schema / properties / prompt / description
      Previous value: -"The motion to depict; for a Gemini Omni edit, the change to make."New value: +"The motion; for an edit, the change."
    • changedInput schema / properties / reference_video_id / description
      Previous value: -"A finished video id: the acting to keep (Omni/O1), the movement to copy (Motion Control), the clip to edit (Gemini Omni)."New value: +"Finished video id: acting to keep, movement to copy, or clip to edit."
    • addedInput schema / properties / reference_video_ids
      Added value: +{
      +  "description": "Seedance: clips to follow, max 30s.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "generation_id",
      -  "project_id",
      -  "prompt"
      -]New value: +[
      +  "project_id"
      +]
  3. Changed1 schema field changed
    • changedInput schema / properties / model / description
      Previous value: -"Default kling-v3."New value: +"Default: whoami's."
  4. Changed2 schema fields changed
    • changedInput schema / properties / end_frame_id / description
      Previous value: -"Image the clip lands on (Kling 3.0, Veo, Gemini Omni)."New value: +"Image the clip lands on (Kling 3.0, Veo, Gemini Omni, Seedance)."
    • changedInput schema / properties / model / enum
      Previous value: -[
      -  "kling-v3",
      -  "kling-v3-omni",
      -  "kling-video-o1",
      -  "kling-motion-control",
      -  "veo-3.1-lite-generate-preview",
      -  "gemini-omni-1.1-flash"
      -]New value: +[
      +  "kling-v3",
      +  "kling-v3-omni",
      +  "kling-video-o1",
      +  "kling-motion-control",
      +  "veo-3.1-lite-generate-preview",
      +  "gemini-omni-1.1-flash",
      +  "dreamina-seedance-2-5-260628"
      +]
  5. Changed2 schema fields changed
    • addedInput schema / properties / entity_ids
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / reference_image_ids / description
      Previous value: -"Stills to stay faithful to. Omni/O1 up to 6, or 3 beside a reference clip (Kling counts both against one list). Gemini Omni 3."New value: +"Stills to stay faithful to; per-model counts above."
  6. First observed

TDQS

A4.2/5.0
Behavior5/5

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

Annotations only give readOnlyHint=false and destructiveHint=false; the description goes far beyond them by disclosing the cost model ('MOST EXPENSIVE: per second, on completion, purchased credits only'), the async pattern and polling target ('poll get_task'), and a free quoting path ('dry_run:true (free), confirm with the user'). This is exactly the operational context an agent needs before spending credits.

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 cost warning is front-loaded, followed by a tightly structured per-model routing list, and almost no sentence is wasted. The telegraphic style ('180/240 per second of the clip (3-30s), silent') is dense to the point of being cryptic in places, which costs a little readability but not correctness.

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

Completeness4/5

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

For a 22-parameter, multi-model, no-output-schema tool, the description covers pricing, model selection, async polling, quoting, and entity attachment, which is close to complete. The main gap is the return value: it implies a task id via 'poll get_task' but never states what the call returns or how to identify the resulting generation.

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?

With 73% schema coverage the baseline is 3, but the description adds genuine meaning beyond the schema: model-specific constraints such as '3 reference_image_ids (6 with no clip)', duration and resolution behavior per model, the draft/finalize_draft_id workflow, and how entities attach ('@slug or entity_ids'). It leaves a few parameters (name, aspect_ratio, extend_direction) to the schema, which is acceptable.

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

Purpose4/5

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

The opening 'Makes a video' is thin and nearly restates the title, but the body makes the resource and scope unmistakable: it generates video clips from stills, references, or text across seven named models. It is clearly distinguishable from generate_image and add_video by resource, though the differentiation is implied rather than stated.

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

Usage Guidelines4/5

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

Strong routing guidance: each job type ('Still to life', 'Cheapest with sound', 'Copy a dance', 'Edit a clip in words') is mapped to a specific model with credit costs, so an agent can pick a model without guessing. It also prescribes a workflow (quote with dry_run, confirm with the user). What is missing is any when-not-to-use guidance versus sibling tools such as add_video or expand_image.

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