Skip to main content
Glama

motion_control

Create Kling tasks that transfer motion from a reference video to a subject image, returning task ID, status, and output URLs.

Instructions

Create a Kling task on RunAPI (motion control). Returns a task id, status, and output URLs.

Input Schema

NameRequiredDescriptionDefault
waitNoPoll until the task reaches a terminal status.
modelNoRunAPI model slug for this model line.
promptNoDescription prompt. Declared type: string.
timeout_msNo
callback_urlNoWebhook URL for async notifications. Declared type: string.
poll_interval_msNo
source_image_urlYesSubject image URL. Declared type: string.
output_resolutionYesOutput resolution. Declared type: string. Known values: "720p", "1080p".
reference_video_urlYesReference motion video URL. Declared type: string.
character_orientationNoCharacter orientation. Declared type: string. Known values: "video", "image".

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.4.0
    • removedInput schema / properties / background_source
      Removed value: -{
      -  "description": "Background source. Declared type: string. Known values: \"video\", \"image\".",
      -  "type": "string"
      -}
  2. Changed15 schema fields changedv0.3.0
    • addedInput schema / additionalProperties
      Added value: +{}
    • removedInput schema / properties / background_source / anyOf
      Removed value: -[
      -  {
      -    "const": "video",
      -    "type": "string"
      -  },
      -  {
      -    "const": "image",
      -    "type": "string"
      -  }
      -]
    • changedInput schema / properties / background_source / description
      Previous value: -"Background source."New value: +"Background source. Declared type: string. Known values: \"video\", \"image\"."
    • addedInput schema / properties / background_source / type
      Added value: +"string"
    • changedInput schema / properties / callback_url / description
      Previous value: -"Webhook URL for async notifications."New value: +"Webhook URL for async notifications. Declared type: string."
    • removedInput schema / properties / character_orientation / anyOf
      Removed value: -[
      -  {
      -    "const": "video",
      -    "type": "string"
      -  },
      -  {
      -    "const": "image",
      -    "type": "string"
      -  }
      -]
    • changedInput schema / properties / character_orientation / description
      Previous value: -"Character orientation."New value: +"Character orientation. Declared type: string. Known values: \"video\", \"image\"."
    • addedInput schema / properties / character_orientation / type
      Added value: +"string"
    • removedInput schema / properties / model / enum
      Removed value: -[
      -  "kling-3.0",
      -  "kling-v2.6"
      -]
    • removedInput schema / properties / output_resolution / anyOf
      Removed value: -[
      -  {
      -    "const": "720p",
      -    "type": "string"
      -  },
      -  {
      -    "const": "1080p",
      -    "type": "string"
      -  }
      -]
    • changedInput schema / properties / output_resolution / description
      Previous value: -"Output resolution."New value: +"Output resolution. Declared type: string. Known values: \"720p\", \"1080p\"."
    • addedInput schema / properties / output_resolution / type
      Added value: +"string"
    • changedInput schema / properties / prompt / description
      Previous value: -"Description prompt."New value: +"Description prompt. Declared type: string."
    • changedInput schema / properties / reference_video_url / description
      Previous value: -"Reference motion video URL."New value: +"Reference motion video URL. Declared type: string."
    • changedInput schema / properties / source_image_url / description
      Previous value: -"Subject image URL."New value: +"Subject image URL. Declared type: string."
  3. Changed13 schema fields changedv0.2.0
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / background_source / anyOf
      Added value: +[
      +  {
      +    "const": "video",
      +    "type": "string"
      +  },
      +  {
      +    "const": "image",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / background_source / enum
      Removed value: -[
      -  "video",
      -  "image"
      -]
    • removedInput schema / properties / background_source / type
      Removed value: -"string"
    • addedInput schema / properties / character_orientation / anyOf
      Added value: +[
      +  {
      +    "const": "video",
      +    "type": "string"
      +  },
      +  {
      +    "const": "image",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / character_orientation / enum
      Removed value: -[
      -  "video",
      -  "image"
      -]
    • removedInput schema / properties / character_orientation / type
      Removed value: -"string"
    • addedInput schema / properties / output_resolution / anyOf
      Added value: +[
      +  {
      +    "const": "720p",
      +    "type": "string"
      +  },
      +  {
      +    "const": "1080p",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / output_resolution / enum
      Removed value: -[
      -  "720p",
      -  "1080p"
      -]
    • removedInput schema / properties / output_resolution / type
      Removed value: -"string"
    • addedInput schema / properties / poll_interval_ms / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / timeout_ms / maximum
      Added value: +9007199254740991
    • changedInput schema / required
      Previous value: -[
      -  "source_image_url",
      -  "reference_video_url"
      -]New value: +[
      +  "source_image_url",
      +  "reference_video_url",
      +  "output_resolution"
      +]
  4. Changed8 schema fields changedv0.1.13
    • addedInput schema / properties / background_source / description
      Added value: +"Background source."
    • addedInput schema / properties / callback_url / description
      Added value: +"Webhook URL for async notifications."
    • addedInput schema / properties / character_orientation / description
      Added value: +"Character orientation."
    • changedInput schema / properties / model / enum
      Previous value: -[
      -  "kling-3.0"
      -]New value: +[
      +  "kling-3.0",
      +  "kling-v2.6"
      +]
    • addedInput schema / properties / output_resolution / description
      Added value: +"Output resolution."
    • addedInput schema / properties / prompt / description
      Added value: +"Description prompt."
    • addedInput schema / properties / reference_video_url / description
      Added value: +"Reference motion video URL."
    • addedInput schema / properties / source_image_url / description
      Added value: +"Subject image URL."
  5. Changed5 schema fields changedv0.1.2
    • addedInput schema / properties / callback_url / type
      Added value: +"string"
    • addedInput schema / properties / prompt / type
      Added value: +"string"
    • addedInput schema / properties / reference_video_url / type
      Added value: +"string"
    • addedInput schema / properties / source_image_url / type
      Added value: +"string"
    • addedInput schema / required
      Added value: +[
      +  "source_image_url",
      +  "reference_video_url"
      +]
  6. First observedv0.1.1

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden, and it does disclose the return payload (task id, status, output URLs), which signals an asynchronous job pattern consistent with the wait/callback_url params. It says nothing about authentication against RunAPI, cost, latency, rate limits, or failure/error behavior for what is clearly an external paid API call.

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?

Two short sentences, front-loaded with the action and platform, then the return shape. Every clause carries information and there is no filler.

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 10-parameter task-creation tool with no output schema, the description adequately signals what comes back, and the schema covers most inputs. It omits the operational context an agent would want before firing a costly asynchronous job — authentication, what a non-terminal status means, and whether waiting is the default path.

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% with 10 parameters, so the schema already documents most inputs, making the baseline 3 appropriate. The description adds no parameter-level meaning (no guidance on prompt, model slug, character_orientation, or how wait interacts with callback_url), so it neither compensates for nor extends the schema.

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 ('Create a Kling task on RunAPI (motion control)') and identifies the model line, which separates it from image_to_video, text_to_video, and extend_video. It does not explicitly name which sibling to prefer over it, but the motion-control framing implies a source image plus reference video.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of alternatives among the eight sibling tools. The agent must infer from the required source_image_url/reference_video_url that this is motion transfer, but nothing tells it when this is the right choice versus image_to_video.

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