Skip to main content
Glama

generate_video

Idempotent

Make an AI video: a product ad, a vertical clip for social, a cinematic shot, or animate a photo into video (image-to-video). Requires a quote_id from estimate_credit_cost so the price is agreed first; then returns a job id to poll with get_generation. Credits are charged only when the video succeeds. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modelNoModel ID from list_models, e.g. "kling_3_0". Must match the quoted model; omitted means the quoted model.
promptYesWhat the video should show. Detailed prompts produce better results.
durationNoLength in seconds. Must match the quoted duration for per-second models.
quote_idYesThe quote_id from estimate_credit_cost for this exact model, duration and resolution. Required.
image_urlNoPublic image URL to animate (image-to-video). Required for models whose list_models entry has needs_start_image; optional for the rest.
resolutionNoe.g. "720p" or "1080p". Must match the quoted resolution for per-second models.
aspect_ratioNoDefaults to 16:9. Use 9:16 for vertical social clips.
reference_video_urlNoOptional public https URL of a reference video (for example a 3D blockout playblast) whose camera movement, shot rhythm and subject motion the generation must follow. seedance_2_5 (30 s max) or seedance_2_0_fast (15 s max, 720p). The quote must have been priced with reference_video_seconds equal to this clip's length rounded up; the server measures the clip and refuses on mismatch.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesPoll this with get_generation.
kindYes
modelNo
statusYes
replayedYesTrue when this quote_id had already been submitted and the original job was returned.
image_urlNoNull until the render finishes.
next_stepYesWhat to do next, in words, so a model need not infer it.
unlimitedNo
video_urlNoNull until the render finishes.
credits_usedYes0 until the render succeeds; billing is post-deduct.
credits_quotedYesThe price fixed by the quote.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / image_url / description
      Previous value: -"Optional public image URL to animate (image-to-video)."New value: +"Public image URL to animate (image-to-video). Required for models whose list_models entry has needs_start_image; optional for the rest."
  2. Changed1 schema field changed
    • addedInput schema / properties / reference_video_url
      Added value: +{
      +  "description": "Optional public https URL of a reference video (for example a 3D blockout playblast) whose camera movement, shot rhythm and subject motion the generation must follow. seedance_2_5 (30 s max) or seedance_2_0_fast (15 s max, 720p). The quote must have been priced with reference_video_seconds equal to this clip's length rounded up; the server measures the clip and refuses on mismatch.",
      +  "type": "string"
      +}
  3. Changed12 schema fields changed
    • changedInput schema / properties / aspect_ratio / description
      Previous value: -"Defaults to 16:9."New value: +"Defaults to 16:9. Use 9:16 for vertical social clips."
    • changedInput schema / properties / duration / description
      Previous value: -"Length in seconds. Defaults to 5."New value: +"Length in seconds. Must match the quoted duration for per-second models."
    • changedInput schema / properties / model / description
      Previous value: -"Model ID from list_models, e.g. \"kling_3_0\". Omitted means the platform picks a suitable one."New value: +"Model ID from list_models, e.g. \"kling_3_0\". Must match the quoted model; omitted means the quoted model."
    • addedInput schema / properties / quote_id
      Added value: +{
      +  "description": "The quote_id from estimate_credit_cost for this exact model, duration and resolution. Required.",
      +  "type": "string"
      +}
    • addedInput schema / properties / resolution
      Added value: +{
      +  "description": "e.g. \"720p\" or \"1080p\". Must match the quoted resolution for per-second models.",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "prompt"
      -]New value: +[
      +  "prompt",
      +  "quote_id"
      +]
    • addedOutput schema / properties / credits_quoted
      Added value: +{
      +  "description": "The price fixed by the quote.",
      +  "type": "number"
      +}
    • changedOutput schema / properties / credits_used / description
      Previous value: -"0 until the render succeeds — billing is post-deduct."New value: +"0 until the render succeeds; billing is post-deduct."
    • addedOutput schema / properties / image_url
      Added value: +{
      +  "description": "Null until the render finishes.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / kind
      Added value: +{
      +  "enum": [
      +    "video",
      +    "image"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / replayed
      Added value: +{
      +  "description": "True when this quote_id had already been submitted and the original job was returned.",
      +  "type": "boolean"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "id",
      -  "status",
      -  "credits_used",
      -  "next_step"
      -]New value: +[
      +  "id",
      +  "kind",
      +  "status",
      +  "credits_quoted",
      +  "credits_used",
      +  "replayed",
      +  "next_step"
      +]
  4. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations: states that credits are charged only on success, that an OAuth sign-in or a specific API key header is required, and that a job id is returned for polling. This adds billing, auth and async-job context that the hints (readOnlyHint=false, idempotentHint=true) do not convey, and it is consistent with them.

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-loads the purpose and the required quote_id flow before the auth block, and every sentence carries information. The OAuth/API-key sentence is long and partly host-handled, but it is genuinely needed setup context rather than padding.

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 multi-parameter, async, credit-charging tool with an output schema, the description covers the cost gate, the auth requirement, and the follow-up call (get_generation). 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 baseline is 3; the description still adds value by naming the sibling that produces quote_id and framing the quote as the agreed price, and by tying reference_video_url to a quote priced with reference_video_seconds. It does not add syntax beyond the schema for the remaining parameters.

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?

States a specific verb and resource ('Make an AI video') and enumerates concrete output types (product ad, vertical social clip, cinematic shot, image-to-video). It distinguishes the image-to-video mode explicitly, but never differentiates itself from close siblings such as generate_ugc_video or generate_ad.

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?

Gives a clear required workflow: obtain a quote_id from estimate_credit_cost first, then poll the returned job with get_generation. Prerequisites (quote must exist, price agreed) are stated. No explicit when-not-to-use guidance versus generate_ugc_video or generate_image is offered.

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.