Skip to main content
Glama

submit_video

Destructive

Submit a video generation job. The result is a new library asset, not placed on the timeline: when the job completes, track_progress returns its id for edit_item. At most 10 video generations run at once per account across video tools; extra submits are rejected, so wait for a running job to finish instead of retrying. Models (set explicitly; the video-gen skill has selection rules):

  • seedance-2-5: 4-30s; 480p/720p/1080p; refs up to 30 images, 10 videos, 10 audios (MP3/WAV, audio-only allowed); taskMode edit/extend uses exactly one 4-30s refVideo. 480p clips are drafts: fromDraft -> 1080p final.

  • seedance2: 4-15s; 480p/720p/1080p/4k; refs up to 9 images, 3 videos, 3 audios (audio needs an image or video). seedance2fast (~20% cheaper) and seedance2mini (~50% cheaper): same inputs, 480p/720p only.

  • minimax-h3: 4-15s; 768p/2k; prompt up to 7000 chars; frames, or refs up to 9 images, 3 videos, 3 audios (12 files).

  • minimax-h3-max: faster; 5-15s; 480p/768p; minimax-h3 inputs, but audio needs an image or video.

  • omni (Gemini Omni 1.1 Flash): 3-10s; 360p/720p, upscaled 1080p/4k; first(+last) frame, up to 3 refImages, or edit/extend a clip up to 10s via continueFrom.

  • kling (Kling 3.0): 3-15s; 720p/1080p; frames plus refImages, 7 images in all; no refVideos/refAudios. kling-4 (Kling 4.0): same but 3-30s, 10 images, 5 refVideos (3-30s, 30s total). kling-4-flash: kling-4 but 3-20s (refVideos too), 720p only. Reference media (Seedance, MiniMax): clips 2-15s each, 15s total per type (Seedance 2.5: 2-30s, 30s); images/videos 300-5760 px per side, width/height 0.4-2.5, videos 24-60 fps (Seedance: 480p+; per-model bounds in the skill). Frames and references are mutually exclusive. No negative prompt or seed: put exclusions in the prompt.

External MCP spend rule: this tool costs ChatCut credits and starts an async generation job. Only call it when the user's request or confirmation clearly covers this exact generation; do not silently create extra variants, longer durations, higher quality, or additional outputs.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "model": "<model>"
    },
    "name": "submit_video"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNo
modelYesModel alias; limits in the tool description.
ratioNo16:9 default; 9:16,1:1,4:3,3:4,21:9. Omni:16:9/9:16; Kling:16:9/9:16/1:1; Kling4:+21:9. Frames set the ratio; explicit ratio center-crops seedance2/seedance2fast/seedance2mini. Seedance2.5, MiniMax and Kling always follow the image; Kling4 follows inputs. Seedance edit/extend follow source.
promptNoVideo prompt. Required except with fromDraft.
taskModeNoSeedance 2.5 or Omni only. "edit" and "extend" change or continue the source clip (exactly one refVideos for Seedance 2.5, continueFrom for Omni). "generate" (default) makes a new clip, including from video references. "edit" uses source-based timing instead of durationSeconds. Check the returned frame count, duration, and framing before using it as a synchronized replacement. "extend" adds durationSeconds. Both create a new asset.
fromDraftNoSeedance 2.5: approved 480p draft assetId, within 7 days, to 1080p final. Omit prompt, references, duration, ratio and audio (reused); changing any needs a new 480p draft.
lastFrameNoLast-frame image; needs firstFrame except on minimax-h3 and Kling. Only Kling combines frames with references.
projectIdNoFull project UUID. Required for external browser work; internal agents may omit. Execution/explicit-timeline calls never change later calls' target.
refAudiosNoOrdered reference audio: asset ids or public URLs. Seedance 2.0 needs an image or video alongside.
refImagesNoOrdered reference images: asset ids or public HTTPS/s3:// URLs (URLs need no import).
refVideosNoOrdered reference videos: asset ids or public URLs. Billed by measured duration.
firstFrameNoStrict first-frame image: asset id, asset://id, or public HTTPS/s3:// URL. Cannot be combined with references or continueFrom.
resolutionNoPer-model options are in the tool description. Default 720p; MiniMax 768p. Seedance 4k is seedance2 only: 10-bit HEVC, noticeably slower. Seedance cost scales with pixels x seconds (1080p ~2.5x 720p, 4k ~2x 1080p). seedance-2-5 480p is a draft: same price, and fromDraft can turn it into the 1080p final.
timelineIdNoFull timeline UUID, not a prefix. Required for browser work, even unplaced assets. Get it from read_project or manage_timelines action="list". Never switches visible timeline.
continueFromNoOmni only: the clip to edit or extend (asset id, asset://id, or public HTTPS/s3:// URL), up to 10s. Each result is a new asset; preservation is not pixel-exact.
middleFramesNokling-4 only, not Flash; part of the 10-image cap. Prompt: @keyframe_1, @keyframe_2… by time; describe motion between them.
outputFormatNoSeedance 2.5 only. Omit unless the user asks for a container.
idempotencyKeyNoStable key for this browser execution. Reuse only with identical scope and parameters after a lost acknowledgement; applies only to this call.
durationSecondsNoInteger seconds within the model's range; default 5. For Omni extend, the seconds to add. "8s" is accepted.
returnLastFrameNoSeedance: save the last frame as an unwatermarked, full-resolution Ark JPEG asset. Reuse as the next firstFrame when chaining clips.
browserProfileIdNoOptional browser profile override. Omit to select automatically; do not ask the user to choose.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • changedInput schema / properties / fromDraft / description
      Previous value: -"seedance-2-5 only: assetId of an approved seedance-2-5 480p clip (its draft), within 7 days, to render as the 1080p final. It reuses the draft's prompt, references, duration, ratio and audio, so pass none of them; to change any, make a new 480p clip. 1080p only."New value: +"Seedance 2.5: approved 480p draft assetId, within 7 days, to 1080p final. Omit prompt, references, duration, ratio and audio (reused); changing any needs a new 480p draft."
    • addedInput schema / properties / middleFrames
      Added value: +{
      +  "description": "kling-4 only, not Flash; part of the 10-image cap. Prompt: @keyframe_1, @keyframe_2… by time; describe motion between them.",
      +  "items": {
      +    "properties": {
      +      "atSeconds": {
      +        "description": "Seconds strictly between 0 and durationSeconds.",
      +        "type": "number"
      +      },
      +      "image": {
      +        "description": "Image id, asset://id, or HTTPS/s3:// URL.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "image",
      +      "atSeconds"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 10,
      +  "type": "array"
      +}
    • changedInput schema / properties / model / description
      Previous value: -"Video model alias. Per-model durations, resolutions and reference limits are in the tool description."New value: +"Model alias; limits in the tool description."
    • changedInput schema / properties / prompt / description
      Previous value: -"Video prompt. Required except with fromDraft. Read video-gen Skill first."New value: +"Video prompt. Required except with fromDraft."
    • changedInput schema / properties / ratio / description
      Previous value: -"16:9 (default), 9:16, 1:1, 4:3, 3:4 or 21:9; Omni only 16:9 or 9:16; Kling 16:9, 9:16 or 1:1, kling-4 and kling-4-flash also 21:9. First/last frames follow the image's aspect unless you pass a ratio: seedance2/seedance2fast/seedance2mini then center-crop the frame to it; seedance-2-5, MiniMax and kling always follow the image; kling-4 follows its inputs. Seedance edit/extend follow the source."New value: +"16:9 default; 9:16,1:1,4:3,3:4,21:9. Omni:16:9/9:16; Kling:16:9/9:16/1:1; Kling4:+21:9. Frames set the ratio; explicit ratio center-crops seedance2/seedance2fast/seedance2mini. Seedance2.5, MiniMax and Kling always follow the image; Kling4 follows inputs. Seedance edit/extend follow source."
    • changedInput schema / properties / returnLastFrame / description
      Previous value: -"Seedance only: also save the clip's last frame as an image asset: Ark's unwatermarked full-resolution JPEG. Pass it as the next clip's firstFrame to continue the shot without extracting a frame. Skip when not chaining clips."New value: +"Seedance: save the last frame as an unwatermarked, full-resolution Ark JPEG asset. Reuse as the next firstFrame when chaining clips."
    • changedInput schema / properties / taskMode / description
      Previous value: -"Seedance 2.5 or Omni only. \"edit\"/\"extend\" change or continue the source clip (exactly one refVideos for Seedance 2.5, continueFrom for Omni); \"generate\" (default) makes a new clip, including from video references. Edit keeps the source ratio and duration; extend adds durationSeconds. Both create a new asset."New value: +"Seedance 2.5 or Omni only. \"edit\" and \"extend\" change or continue the source clip (exactly one refVideos for Seedance 2.5, continueFrom for Omni). \"generate\" (default) makes a new clip, including from video references. \"edit\" uses source-based timing instead of durationSeconds. Check the returned frame count, duration, and framing before using it as a synchronized replacement. \"extend\" adds durationSeconds. Both create a new asset."
  2. Changed1 schema field changed
    • changedInput schema / properties / prompt / description
      Previous value: -"Video prompt. Required except with fromDraft."New value: +"Video prompt. Required except with fromDraft. Read video-gen Skill first."
  3. Changed3 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedInput schema / properties / model / enum
      Previous value: -[
      -  "seedance-2-5",
      -  "seedance2",
      -  "seedance2fast",
      -  "seedance2mini",
      -  "minimax-h3",
      -  "minimax-h3-max",
      -  "omni",
      -  "kling",
      -  "kling-4"
      -]New value: +[
      +  "seedance-2-5",
      +  "seedance2",
      +  "seedance2fast",
      +  "seedance2mini",
      +  "minimax-h3",
      +  "minimax-h3-max",
      +  "omni",
      +  "kling",
      +  "kling-4",
      +  "kling-4-flash"
      +]
    • changedInput schema / properties / ratio / description
      Previous value: -"16:9 (default), 9:16, 1:1, 4:3, 3:4 or 21:9; Omni only 16:9 or 9:16; Kling 16:9, 9:16 or 1:1, kling-4 also 21:9. First/last frames follow the image's aspect unless you pass a ratio: seedance2/seedance2fast/seedance2mini then center-crop the frame to it; seedance-2-5, MiniMax and kling always follow the image; kling-4 follows its inputs. Seedance edit/extend follow the source."New value: +"16:9 (default), 9:16, 1:1, 4:3, 3:4 or 21:9; Omni only 16:9 or 9:16; Kling 16:9, 9:16 or 1:1, kling-4 and kling-4-flash also 21:9. First/last frames follow the image's aspect unless you pass a ratio: seedance2/seedance2fast/seedance2mini then center-crop the frame to it; seedance-2-5, MiniMax and kling always follow the image; kling-4 follows its inputs. Seedance edit/extend follow the source."
  4. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare destructiveHint=true and non-idempotent; the description adds the context that matters: this is an async job that costs ChatCut credits, at most 10 run per account across video tools with extra submits rejected, and results surface via track_progress rather than appearing on the timeline. It also explains the fromDraft lifecycle (480p draft to 1080p final) which is non-obvious mutation behavior.

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?

Front-loaded with purpose, outcome and the concurrency constraint before the dense model table, and the spend rule is a clean closing block. The model spec list is long and reference-heavy, but the schema explicitly defers model limits here, so most of that text earns its place; only the reference-media paragraph borders on reference-doc density.

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 21-parameter async generation tool with no output schema, the definition supplies the missing return path (track_progress yields the asset id), cost and concurrency behavior, and model constraints. Remaining gaps are minor — failure/timeout behavior and partial-job states are not described — but nothing an agent needs to call it correctly is absent.

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 95%, so the baseline is 3, but the description adds real meaning the schema does not: per-model duration/resolution/reference limits keyed to the model enum, the mutual exclusivity of frames and references, and the absence of negative-prompt and seed fields (put exclusions in the prompt). It stops short of covering every parameter's interaction, so not a 5.

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?

"Submit a video generation job" gives a specific verb and resource, and the very next clause states the outcome ("a new library asset, not placed on the timeline") which separates it from edit_item and from the other submit_* siblings. An agent can route correctly 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?

Explicit guidance on multiple axes: when a model must be set, that selection rules live in the video-gen skill, that concurrent submits are rejected so the agent should wait rather than retry, and the spend rule requiring the user's request or confirmation to clearly cover this exact generation. It also names what not to do (silent extra variants, longer durations, higher quality).

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.