Skip to main content
Glama

kling_generate_motion

Animate a still character image by transferring motion from a reference video. Use a video URL for movement and an image URL for the character to create dynamic clips.

Instructions

Transfer motion from a reference video to a character image.

This tool enables character animation by extracting motion from a video
and applying it to a static character image.

Use this when:
- You want to animate a character image using motion from a video
- You want to create a dance or movement video from a still photo
- You need to transfer specific movements to a character

Returns:
    Task ID and motion generation information.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNoGeneration mode. 'std' (standard, default) for faster generation, 'pro' for higher quality.std
promptNoOptional text description to guide the motion transfer. Use to add details about the desired output.
image_urlYesURL of the character image to animate. The character in this image will be animated with the motion from the reference video.
video_urlYesURL of the reference video providing the motion. The character movements from this video will be transferred to the image.
model_nameNoOptional Kling motion model name, such as 'kling-v2-6' or 'kling-v3'.
callback_urlNoWebhook callback URL for asynchronous notifications.
watermark_infoNoOptional watermark configuration forwarded to the API.
keep_original_soundNoWhether to keep the original sound from the reference video. Options: 'yes' or 'no'. Default depends on API.
character_orientationNoOrientation of the character. 'image' (default) uses the orientation from the character image, 'video' uses the orientation from the reference video.image

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed4 schema fields changedv0.1.23
    • addedInput schema / $defs
      Added value: +{
      +  "KlingWatermarkInfo": {
      +    "description": "Watermark configuration for motion transfer.",
      +    "properties": {
      +      "enabled": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Enabled"
      +      }
      +    },
      +    "title": "KlingWatermarkInfo",
      +    "type": "object"
      +  }
      +}
    • changedInput schema / properties / model_name / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "kling-v2-6",
      +      "kling-v3"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / watermark_info / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "$ref": "#/$defs/KlingWatermarkInfo"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / watermark_info / title
      Removed value: -"Watermark Info"
  2. Changed4 schema fields changedv0.1.21
    • changedInput schema / properties / keep_original_sound / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "yes",
      +      "no"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / mode / enum
      Previous value: -[
      -  "std",
      -  "pro",
      -  "4k"
      -]New value: +[
      +  "std",
      +  "pro"
      +]
    • addedInput schema / properties / model_name
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional Kling motion model name, such as 'kling-v2-6' or 'kling-v3'.",
      +  "title": "Model Name"
      +}
    • addedInput schema / properties / watermark_info
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional watermark configuration forwarded to the API.",
      +  "title": "Watermark Info"
      +}
  3. Changed1 schema field changedv0.1.13
    • changedInput schema / properties / mode / enum
      Previous value: -[
      -  "std",
      -  "pro"
      -]New value: +[
      +  "std",
      +  "pro",
      +  "4k"
      +]
  4. First observedv0.1.0

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It states the tool returns a Task ID and motion generation information, implying an asynchronous task-based workflow. However, it does not explain polling, error conditions, or that generation may take time. Some behavior is disclosed, but significant gaps remain.

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?

The description is well-structured with a concise summary, a bulleted list of use cases, and a clear Returns statement. Every sentence adds value and helps an agent decide when and how to use the tool without unnecessary verbosity.

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?

Given the tool's complexity (9 parameters, asynchronous task creation) and the presence of an output schema, the description adequately covers the core purpose and usage context. It lacks details about how to retrieve results or handle failures, but the Task ID return hints at the asynchronous pattern. The description is mostly complete for an agent to select and invoke the tool correctly.

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?

The schema provides 100% parameter coverage with detailed descriptions for all 9 parameters, so the baseline is 3. The tool description itself does not add extra parameter-level meaning beyond what the schema already contains, but it does not need to because the schema is sufficiently rich.

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 description clearly states the tool's primary function: transferring motion from a reference video to a character image. It uses a specific verb-resource combination and directly differentiates from siblings like kling_lip_sync and kling_generate_video by focusing on motion transfer for character animation. The purpose is unmistakable.

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?

The description provides a clear 'Use this when' list with three concrete scenarios, giving an agent strong context for when to invoke this tool. However, it does not explicitly mention when not to use it or name alternative sibling tools, so it stops short of a perfect score.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AceDataCloud/KlingMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server