Skip to main content
Glama

Why This Package?

@runapi.ai/kling-mcp is a focused Model Context Protocol server for the Kling model line on RunAPI. It gives MCP-compatible assistants direct access to 6 endpoints and 16 model variants without loading the full RunAPI catalog.

Use this per-model server when an agent should stay scoped to Kling. Use @runapi.ai/mcp when one assistant should discover every RunAPI model line.

kling-ai-avatar-v1-pro was retired on 2026-10-14T00:00:00Z. New requests return HTTP 410 before task creation or balance deduction. Existing tasks can still be queried. This model ID is not mapped to another model.

kling-v1-avatar-standard was retired on 2026-10-14T00:00:00Z. New requests return HTTP 410 before task creation or balance deduction. Existing tasks can still be queried. This model ID is not mapped to another model.


Related MCP server: @runapi.ai/elevenlabs-mcp

Install

Add it to Claude Code:

claude mcp add kling -s user -- npx -y @runapi.ai/kling-mcp

Use project scope when the server should be shared with a repository:

claude mcp add kling -s project -- npx -y @runapi.ai/kling-mcp

Codex, Cursor, Windsurf, VS Code, Roo Code, and other MCP hosts can use the same stdio command:

{
  "mcpServers": {
    "kling": {
      "command": "npx",
      "args": ["-y", "@runapi.ai/kling-mcp"]
    }
  }
}

check_pricing works before sign-in. For task creation and status polling, ask your assistant to call the login tool. It opens a browser login and saves credentials to ~/.config/runapi/config.json, the same file used by runapi login. Headless and CI hosts can still set RUNAPI_API_KEY before starting the MCP host.

Ready-made examples are in examples/ for Claude, Cursor, Windsurf, VS Code, and Roo Code.


Tools

Tool

Auth

Purpose

ai_avatar

Yes

Create a Kling ai avatar task and optionally wait for a terminal status. Returns the task id, status, and output URLs.

edit_video

Yes

Create a Kling edit video task and optionally wait for a terminal status. Returns the task id, status, and output URLs.

extend_video

Yes

Create a Kling extend video task and optionally wait for a terminal status. Returns the task id, status, and output URLs.

image_to_video

Yes

Create a Kling image to video task and optionally wait for a terminal status. Returns the task id, status, and output URLs.

motion_control

Yes

Create a Kling motion control task and optionally wait for a terminal status. Returns the task id, status, and output URLs.

text_to_video

Yes

Create a Kling text to video task and optionally wait for a terminal status. Returns the task id, status, and output URLs.

get_task

Yes

Fetch the current status and latest payload for an existing task.

check_pricing

No

Look up current pricing for a Kling model and endpoint.


Models

Kling covers 16 model variants across 6 endpoints. Each tool accepts the models listed for it:

Tool

Models

ai_avatar

kling-ai-avatar-pro, kling-ai-avatar-standard

edit_video

kling-v3-omni-edit, kling-v3-omni-reference

extend_video

kling-v2.5-turbo-image-to-video-pro, kling-v2.5-turbo-text-to-video-pro

image_to_video

kling-o1, kling-v2.1-master-image-to-video, kling-v2.1-pro, kling-v2.1-standard, kling-v2.5-turbo-image-to-video-pro, kling-v2.6, kling-v3-omni, kling-v3-turbo-image-to-video

motion_control

kling-3.0, kling-v2.6

text_to_video

kling-3.0, kling-o1, kling-v2.1-master-text-to-video, kling-v2.5-turbo-text-to-video-pro, kling-v2.6, kling-v3-omni, kling-v3-omni-reference, kling-v3-turbo-text-to-video

Model availability can change between releases. Use check_pricing or the Kling model page for the current catalog view.


Agent Prompts

Ask your assistant in natural language; it can inspect pricing, create the task, and return the task id plus output URLs.

Create a task

Run a Kling ai avatar task with RunAPI.

The assistant can call check_pricing, then ai_avatar, and return the task id, status, and output URLs.

Submit without waiting

Create the task but don't wait for it to finish.

The assistant calls the create tool with wait: false and returns the task id. Check on it later with get_task.

Check pricing before creating

Check current Kling pricing, then create the task if it matches my request.

The assistant calls check_pricing and can link to the Kling model page for the canonical catalog entry.


Configuration

The server resolves auth in this order:

  1. RUNAPI_API_KEY environment variable, useful for headless and CI hosts

  2. ~/.config/runapi/config.json, created by the MCP login tool or runapi login

  3. No key, which still allows check_pricing

The config file is normally managed by login. A pre-provisioned headless config can use:

{
  "apiKey": "your_runapi_key"
}

Do not commit real API keys.


Resource

URL

Kling model page

https://runapi.ai/models/kling

npm package

@runapi.ai/kling-mcp

GitHub repository

runapi-ai/kling-mcp

RunAPI MCP overview

runapi.ai/mcp

RunAPI docs

runapi.ai/docs


License

Licensed under the Apache License, Version 2.0.

Available Tools

9 tools
ai_avatarC

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

NameRequiredDescriptionDefault
waitNoPoll until the task reaches a terminal status.
modelNoRunAPI model slug for this model line.
promptYesDescription of the avatar. Declared type: string.
timeout_msNo
callback_urlNoWebhook URL for async notifications. Declared type: string.
poll_interval_msNo
source_audio_urlYesAudio URL for lip sync. Declared type: string.
source_image_urlYesFace image URL. Declared type: string.

TDQS

C2.9/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 burden, and it does disclose the return shape (task id, status, output URLs) which is useful given there is no output schema. However, it omits the asynchronous task semantics implied by the wait/poll_interval_ms/timeout_ms parameters, the default blocking poll (wait=true), and any auth or cost considerations despite a sibling check_pricing tool.

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?

Two short sentences with no filler, and the core purpose is front-loaded before the return-value note. Minor waste in the '(ai avatar)' parenthetical and vendor jargon, but nothing that harms scanning.

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

Completeness2/5

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

For an 8-parameter generative task tool with no annotations and no output schema, the description covers only the return shape and leaves usage conditions, async/polling behavior, and two parameters entirely unaddressed. An agent has enough to attempt a call but not enough to call it correctly or confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description mentions no parameters at all, and schema coverage is only 75%, below the high-coverage threshold where the schema alone could justify a 3. Two undocumented parameters (timeout_ms, poll_interval_ms) have no meaning supplied anywhere, so the description fails to compensate.

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+resource ('Create a Kling task'), and the '(ai avatar)' gloss ties it to the tool name, distinguishing it from sibling video tools like text_to_video and image_to_video. The 'Kling task on RunAPI' phrasing is vendor jargon that only indirectly conveys that this produces a lip-synced avatar from an image plus audio.

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?

No when-to-use guidance is given: nothing says this is for talking-head/lip-sync avatars requiring an image and audio, nor how it differs from image_to_video or motion_control. The agent must infer applicability purely from the required params.

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

check_pricingC

Look up RunAPI pricing for the kling model line.

NameRequiredDescriptionDefault
modelNoModel slug. Defaults to the line's primary model.
actionNoEndpoint name. Defaults to the endpoint that offers the model.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full disclosure burden. 'Look up' implies a safe read, but the description does not state whether pricing is real-time or cached, whether auth is required, or what the lookup returns (per-call, per-second, currency), which matters greatly for a pricing tool with no output schema.

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?

A single front-loaded sentence with no waste; the resource and scope appear immediately. Nothing extraneous is included.

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

Completeness2/5

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

With no output schema and no annotations, the description should explain what the pricing result looks like and any auth or rate constraints, but it says nothing about the return value. For a tool whose entire purpose is retrieving pricing data, this leaves a significant gap.

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 description coverage is 100%, so the schema already documents both params including the action enum and the default behavior, making the baseline 3 appropriate. The phrase 'kling model line' hints that the model param is constrained to kling slugs, but no semantic detail is added beyond 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?

The description states a specific verb and resource ('Look up RunAPI pricing') and scopes it to the 'kling model line', which is clear enough for an agent to understand the operation. It does not differentiate from siblings, but no sibling tool overlaps with pricing lookup, so the risk of confusion is low.

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: nothing explains when an agent should call this versus acting on pricing info, nor any prerequisite such as needing a model slug first. With both params optional, the description does not indicate any situation in which the tool is or isn't appropriate.

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

edit_videoC

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

NameRequiredDescriptionDefault
waitNoPoll until the task reaches a terminal status.
modelNoRunAPI model slug for this model line.
promptYesVideo description. Declared type: string.
timeout_msNo
aspect_ratioNoOutput aspect ratio; source-only requests require auto. Declared type: string. Known values: "auto", "16:9", "9:16", "1:1".
callback_urlNoWebhook URL for async notifications. Declared type: string.
enable_soundNoEnable synchronized sound generation. Declared type: boolean.
source_task_idNoCompleted compatible task ID; cannot be combined with source_video_url. Declared type: string.
duration_secondsNoOutput duration in seconds. Declared type: integer. Known values: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.
poll_interval_msNo
source_video_urlNoPublic source video URL; cannot be combined with source_task_id. Declared type: string.
output_resolutionNoOutput resolution. Declared type: string. Known values: "720p", "1080p", "4k".
reference_image_urlsNoOrdered reference image URLs. Declared type: array.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description carries the full behavioral burden. It notes the return values (task id, status, output URLs), but says nothing about asynchronous task creation, polling/wait behavior, authentication, cost, or the mutual exclusivity of source inputs, leaving major behavioral traits undisclosed.

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 single sentence is front-loaded with the primary operation and has no filler, and the return-value note is useful. Even though it is terse for a 13-parameter tool, the dimension rewards lack of waste.

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

Completeness2/5

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

For a complex video-editing task tool with no annotations and no output schema, the description is under-specified. It covers the return shape only briefly and omits the asynchronous workflow, usage context, and source-constraint details that an agent would need beyond the schema.

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 description coverage is 85%, so the input schema already documents nearly all 13 parameters, including mutual exclusivity notes and known values. The description adds no parameter meaning, so the baseline of 3 applies.

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 description states a specific action ('edit video') and the mechanism ('Create a Kling task on RunAPI'), which lets an agent know this is not text-to-video or image-to-video. However it does not explicitly name or differentiate from sibling tools such as extend_video or motion_control, so it falls short of a 5.

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?

The description gives no when-to-use guidance, no alternatives, and no conditions under which this tool should be chosen over sibling video tools. It only labels the operation; the agent must infer usage from the tool name alone.

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

extend_videoC

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

NameRequiredDescriptionDefault
modeNoExtension quality mode. Declared type: string. Known values: "std", "pro".
waitNoPoll until the task reaches a terminal status.
modelNoRunAPI model slug for this model line.
promptNoOptional description for the continuation. Declared type: string.
timeout_msNo
callback_urlNoWebhook URL for async notifications. Declared type: string.
source_task_idYesCompleted Kling v2.5 Turbo source task ID. Declared type: string.
poll_interval_msNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full disclosure burden. It does mention that a task id, status, and output URLs are returned, hinting at an async job model, but says nothing about cost, authentication, rate limits, whether the source task must be Kling v2.5 Turbo specifically, or how wait/callback interact.

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?

Two short sentences, front-loaded with the core action and followed by the return contract; nothing is wasted. It is marginally terse given eight parameters, but 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 an eight-parameter async task-creation tool with no output schema, the description partially compensates by naming the return fields (task id, status, output URLs). However, with no annotations it leaves async behavior, callback_url/polling semantics, and cost unaddressed, so it is minimally adequate rather than complete.

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 description coverage is 75%, so most parameters are self-documenting and the baseline is 3. The description adds no meaning beyond the schema, and two parameters (timeout_ms, poll_interval_ms) have no description in either place, so it does not compensate for that gap.

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 description states a concrete verb and resource ('Create a Kling task ... extend video'), so an agent can tell it produces a video extension rather than a fresh generation. It does not explicitly differentiate itself from siblings like text_to_video or image_to_video, but the action is unambiguous.

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 statement of when to use this versus alternatives such as text_to_video or edit_video, nor any prerequisites beyond the implicit need for a completed source task implied by the required source_task_id. The agent must infer that this continues an existing generation rather than starting one.

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

get_taskB

Fetch the current status and latest result payload for a kling task.

NameRequiredDescriptionDefault
actionYesAsynchronous endpoint the task was created on.
task_idYesTask id returned when the task was created.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It says it fetches 'current status and latest result payload', which is a mild disclosure of a polling read, but it doesn't disclose the status vocabulary, whether the payload is null or partial while pending, whether the result is preserved after completion, or rate limits for polling. For a polling endpoint with zero annotation coverage this is thin.

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?

One sentence, front-loaded with the verb and resource. No filler or redundant restatement of the name.

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?

There is no output schema, so the description should say more about the return shape than 'status and latest result payload' – e.g., whether status is a string or enum and how the result payload varies per action. Two required parameters and zero annotations also mean the description should explain the polling contract. Adequate but with clear gaps.

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 100%, so the schema already documents both task_id and the action enum with the note that action identifies the asynchronous endpoint. The description mentions 'kling task' but doesn't add format, mutability, or constraints beyond the schema. Baseline 3 is correct when the schema does all the work.

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?

States a specific verb and resource (fetch the status and result payload for a kling task). Clear and distinguishable from siblings, which are all login, video-generation endpoints, or pricing. An agent can tell this is the monitoring/retrieval counterpart to the generation siblings.

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?

No when-to-use guidance. It doesn't say to call this after starting any of the six generation endpoints, nor when to stop polling (e.g., terminal status), nor whether the task must exist. Sibling tools like text_to_video return task ids implicitly, but the description never makes the create-then-get_task loop explicit.

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

image_to_videoB

Create a Kling task on RunAPI (image to video). Returns a task id, status, and output URLs.

NameRequiredDescriptionDefault
modeNoGeneration mode. Declared type: string. Known values: "std", "pro".
waitNoPoll until the task reaches a terminal status.
modelNoRunAPI model slug for this model line.
promptYesVideo description; reference media with matching numbered markers. Declared type: string.
cfg_scaleNoGuidance scale (0-1). Declared type: number.
timeout_msNo
aspect_ratioNoOutput aspect ratio. Declared type: string.
callback_urlNoWebhook URL for async notifications. Declared type: string.
enable_soundNoSound generation must remain disabled. Declared type: boolean.
negative_promptNoNegative prompt. Declared type: string.
duration_secondsNoDuration in seconds. Declared type: integer. Known values: 5, 10, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14, 15.
poll_interval_msNo
output_resolutionNoOutput resolution. Declared type: string. Known values: "720p", "1080p", "4k".
reference_video_urlNoPublic HTTP(S) MP4 or MOV reference video URL; cannot be combined with last_frame_image_url. Declared type: string.
last_frame_image_urlNoPublic HTTP(S) JPG, JPEG, or PNG final-frame image URL; cannot be combined with reference_image_urls or reference_video_url. Declared type: string.
reference_image_urlsNoOrdered public HTTP(S) JPG, JPEG, or PNG reference image URLs; cannot be combined with last_frame_image_url. Declared type: array.
reference_video_typeNoUse the video as a base edit or feature reference. Declared type: string. Known values: "base", "feature".
first_frame_image_urlYesPublic HTTP(S) JPG, JPEG, or PNG first-frame image URL. Declared type: string.
preserve_reference_video_audioNoPreserve the reference video's original audio. Declared type: boolean.

TDQS

B3.2/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 burden, and it does disclose the async task pattern by stating it returns a task id, status, and output URLs. However, it omits auth/who can call, cost implications (a sibling check_pricing exists), and the fact that wait defaults to true (a blocking call by default), which are non-obvious behavioral traits.

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?

Two short, front-loaded sentences with no wasted words; the create action and return shape are both immediate. It is efficient, though slightly clipped for a tool of this complexity.

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 19-parameter, no-annotation, no-output-schema generation tool the description is thin. It does describe the return values (task id, status, output URLs), which compensates for the missing output schema, but leaves async/polling behavior, exclusivity constraints, and cost context unaddressed.

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 description coverage is 89%, so the schema already documents almost all 19 parameters. The description adds no parameter-level meaning (e.g., interaction rules like reference_video_url vs last_frame_image_url, or the mutually exclusive frame options), so it stays at the high-coverage baseline.

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+resource ('Create a Kling task') and parenthetically scopes it to image-to-video, which implicitly separates it from the text_to_video and extend_video siblings. It stops short of naming those alternatives explicitly, so it is clear but not fully self-differentiating.

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 at all: nothing tells the agent how this differs from text_to_video, motion_control, or extend_video, nor when to prefer wait=true polling versus a callback_url. Usage must be inferred entirely from the name.

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

loginA

Authenticate RunAPI by opening a browser PKCE login flow and saving the API key to ~/.config/runapi/config.json.

NameRequiredDescriptionDefault
forceNoRe-run browser login when the current credential comes from the local config file.

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden. It discloses the interactive browser flow and the file write side effect (config.json). However, it does not mention that it may overwrite existing credentials or that it could block waiting for user input, though these are implied.

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 a single, well-structured sentence that front-loads the action ('Authenticate RunAPI') and provides necessary details without extraneous information.

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 simple login tool with one optional parameter and no output schema, the description covers the core purpose and side effect. It lacks an explicit statement that this is a prerequisite for other tools, but that is implied.

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 description coverage is 100% (the only parameter 'force' has a description). The tool description adds no additional meaning about parameters beyond the schema, so the baseline of 3 applies.

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 purpose with a specific verb ('Authenticate'), target resource ('RunAPI'), method ('browser PKCE login flow'), and side effect (saving to config.json). It is distinct from sibling tools, none of which relate to authentication.

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

Usage Guidelines3/5

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

The description implies usage (to authenticate RunAPI) but does not explicitly say when to run it (e.g., before other RunAPI tools) or when to use the 'force' parameter. Since there are no alternative auth tools among siblings, 'vs alternatives' is not applicable.

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

motion_controlB

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

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".

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.

text_to_videoB

Create a Kling task on RunAPI (text to video). Returns a task id, status, and output URLs.

NameRequiredDescriptionDefault
modeNoGeneration mode. Declared type: string. Known values: "std", "pro".
waitNoPoll until the task reaches a terminal status.
modelNoRunAPI model slug for this model line.
promptNoVideo description. Required for single-shot and automatic storyboarding. Declared type: string.
cfg_scaleNoGuidance scale (0-1). Declared type: number.
shot_typeNoMulti-shot storyboard method: custom or automatic; defaults to custom only when multi_shots is true. Declared type: string. Known values: "custom", "automatic".
timeout_msNo
multi_shotsNoEnable multi-shot generation. Declared type: boolean.
aspect_ratioNoOutput aspect ratio. Declared type: string. Known values: "16:9", "9:16", "1:1".
callback_urlNoWebhook URL for async notifications. Declared type: string.
enable_soundNoEnable sound generation. Declared type: boolean.
multi_promptNoRequired for custom multi-shot mode: 1–6 shots with nonempty prompts up to 500 characters (each @element reference counts as 37), each duration_seconds 1–12, summing to duration_seconds. Declared type: array.
kling_elementsNoElement references with image, video, or audio materials. Declared type: array.
negative_promptNoNegative prompt. Declared type: string.
duration_secondsNoDuration in seconds. Declared type: integer. Known values: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.
poll_interval_msNo
output_resolutionNoOutput resolution. Declared type: string. Known values: "720p", "1080p", "4k".
reference_video_urlNoPublic HTTP(S) MP4 or MOV reference video URL. Declared type: string.
last_frame_image_urlNoLast frame image URL for single-shot mode. Declared type: string.
reference_image_urlsNoOrdered public HTTP(S) JPG, JPEG, or PNG reference image URLs. Declared type: array.
reference_video_typeNoUse the video as a base edit or feature reference. Declared type: string. Known values: "base", "feature".
first_frame_image_urlNoFirst frame image URL. Declared type: string.
preserve_reference_video_audioNoPreserve the reference video's original audio. Declared type: boolean.

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It usefully discloses that a task is created asynchronously and that the response includes a task id, status, and output URLs, which implies long-running/queued work. However, it omits cost implications, whether generation is billable, rate limits, and what the 'wait' polling semantics imply for latency.

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 compact sentences, front-loaded with the action and resource, then the return value. No filler, no repetition of schema content.

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

Completeness2/5

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

For a 23-parameter tool with no annotations and no output schema, the description does far too little: it never tells the agent when to choose this over the other video-generation siblings, does not explain the polling/async workflow implied by 'wait', and gives only a one-line hint at return shape. The brief mention of task id/status/output URLs partially compensates for the missing output schema but not enough.

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 description coverage is 91%, so the schema already documents nearly all 23 parameters (e.g., multi_prompt shot constraints, duration enums, image URL formats). The description adds nothing about parameters, so the baseline 3 applies; the two undocumented params (timeout_ms, poll_interval_ms) remain unexplained in both places.

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 ('Create') and resource ('Kling task on RunAPI') with the modality in parentheses ('text to video'), so an agent knows it is a generation task rather than a query or edit. It is distinguishable from image_to_video and extend_video by the explicit text-to-video framing, though it never names those siblings to draw the boundary.

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 statement of when to use this tool versus image_to_video, motion_control, or edit_video, and no prerequisites (API key, credits, prompt requirement) are given. Usage is only implied by the tool name and the parenthetical.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv0.4.0
    • Changedget_task1 field changed
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "ai_avatar",
        -  "edit_video",
        -  "extend_video",
        -  "image_to_video",
        -  "motion_control",
        -  "text_to_video"
        -]New value: +[
        +  "ai_avatar",
        +  "image_to_video",
        +  "extend_video",
        +  "text_to_video",
        +  "edit_video",
        +  "motion_control"
        +]
    • Changedmotion_control1 field changed
      • removedInput schema / properties / background_source
        Removed value: -{
        -  "description": "Background source. Declared type: string. Known values: \"video\", \"image\".",
        -  "type": "string"
        -}
    • Changedtext_to_video3 fields changed
      • changedInput schema / properties / multi_prompt / description
        Previous value: -"Prompt segments for multi-shot mode. Declared type: array."New value: +"Required for custom multi-shot mode: 1–6 shots with nonempty prompts up to 500 characters (each @element reference counts as 37), each duration_seconds 1–12, summing to duration_seconds. Declared type: array."
      • changedInput schema / properties / prompt / description
        Previous value: -"Video description. Required unless multi_shots is enabled. Declared type: string."New value: +"Video description. Required for single-shot and automatic storyboarding. Declared type: string."
      • addedInput schema / properties / shot_type
        Added value: +{
        +  "description": "Multi-shot storyboard method: custom or automatic; defaults to custom only when multi_shots is true. Declared type: string. Known values: \"custom\", \"automatic\".",
        +  "type": "string"
        +}
  2. 8 tool updatesv0.3.0
    • Changedai_avatar6 fields changed
      • addedInput schema / additionalProperties
        Added value: +{}
      • 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 / model / enum
        Removed value: -[
        -  "kling-ai-avatar-pro",
        -  "kling-ai-avatar-standard",
        -  "kling-ai-avatar-v1-pro",
        -  "kling-v1-avatar-standard"
        -]
      • changedInput schema / properties / prompt / description
        Previous value: -"Description of the avatar."New value: +"Description of the avatar. Declared type: string."
      • changedInput schema / properties / source_audio_url / description
        Previous value: -"Audio URL for lip sync."New value: +"Audio URL for lip sync. Declared type: string."
      • changedInput schema / properties / source_image_url / description
        Previous value: -"Face image URL."New value: +"Face image URL. Declared type: string."
    • Changedcheck_pricing2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • removedInput schema / properties / model / enum
        Removed value: -[
        -  "kling-ai-avatar-pro",
        -  "kling-ai-avatar-standard",
        -  "kling-ai-avatar-v1-pro",
        -  "kling-v1-avatar-standard",
        -  "kling-v3-omni-edit",
        -  "kling-v3-omni-reference",
        -  "kling-v2.5-turbo-image-to-video-pro",
        -  "kling-v2.5-turbo-text-to-video-pro",
        -  "kling-o1",
        -  "kling-v2.1-master-image-to-video",
        -  "kling-v2.1-pro",
        -  "kling-v2.1-standard",
        -  "kling-v2.6",
        -  "kling-v3-omni",
        -  "kling-v3-turbo-image-to-video",
        -  "kling-3.0",
        -  "kling-v2.1-master-text-to-video",
        -  "kling-v3-turbo-text-to-video"
        -]
    • Changededit_video21 fields changed
      • addedInput schema / additionalProperties
        Added value: +{}
      • removedInput schema / properties / aspect_ratio / anyOf
        Removed value: -[
        -  {
        -    "const": "auto",
        -    "type": "string"
        -  },
        -  {
        -    "const": "16:9",
        -    "type": "string"
        -  },
        -  {
        -    "const": "9:16",
        -    "type": "string"
        -  },
        -  {
        -    "const": "1:1",
        -    "type": "string"
        -  }
        -]
      • changedInput schema / properties / aspect_ratio / description
        Previous value: -"Output aspect ratio; source-only requests require auto."New value: +"Output aspect ratio; source-only requests require auto. Declared type: string. Known values: \"auto\", \"16:9\", \"9:16\", \"1:1\"."
      • addedInput schema / properties / aspect_ratio / 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 / duration_seconds / anyOf
        Removed value: -[
        -  {
        -    "const": 3,
        -    "type": "number"
        -  },
        -  {
        -    "const": 4,
        -    "type": "number"
        -  },
        -  {
        -    "const": 5,
        -    "type": "number"
        -  },
        -  {
        -    "const": 6,
        -    "type": "number"
        -  },
        -  {
        -    "const": 7,
        -    "type": "number"
        -  },
        -  {
        -    "const": 8,
        -    "type": "number"
        -  },
        -  {
        -    "const": 9,
        -    "type": "number"
        -  },
        -  {
        -    "const": 10,
        -    "type": "number"
        -  },
        -  {
        -    "const": 11,
        -    "type": "number"
        -  },
        -  {
        -    "const": 12,
        -    "type": "number"
        -  },
        -  {
        -    "const": 13,
        -    "type": "number"
        -  },
        -  {
        -    "const": 14,
        -    "type": "number"
        -  },
        -  {
        -    "const": 15,
        -    "type": "number"
        -  }
        -]
      • changedInput schema / properties / duration_seconds / description
        Previous value: -"Output duration in seconds."New value: +"Output duration in seconds. Declared type: integer. Known values: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15."
      • addedInput schema / properties / duration_seconds / type
        Added value: +"integer"
      • changedInput schema / properties / enable_sound / description
        Previous value: -"Enable synchronized sound generation."New value: +"Enable synchronized sound generation. Declared type: boolean."
      • removedInput schema / properties / model / enum
        Removed value: -[
        -  "kling-v3-omni-edit",
        -  "kling-v3-omni-reference"
        -]
      • removedInput schema / properties / output_resolution / anyOf
        Removed value: -[
        -  {
        -    "const": "720p",
        -    "type": "string"
        -  },
        -  {
        -    "const": "1080p",
        -    "type": "string"
        -  },
        -  {
        -    "const": "4k",
        -    "type": "string"
        -  }
        -]
      • changedInput schema / properties / output_resolution / description
        Previous value: -"Output resolution."New value: +"Output resolution. Declared type: string. Known values: \"720p\", \"1080p\", \"4k\"."
      • addedInput schema / properties / output_resolution / type
        Added value: +"string"
      • changedInput schema / properties / prompt / description
        Previous value: -"Video description."New value: +"Video description. Declared type: string."
      • removedInput schema / properties / prompt / maxLength
        Removed value: -2500
      • removedInput schema / properties / prompt / minLength
        Removed value: -1
      • changedInput schema / properties / reference_image_urls / description
        Previous value: -"Ordered reference image URLs."New value: +"Ordered reference image URLs. Declared type: array."
      • removedInput schema / properties / reference_image_urls / maxItems
        Removed value: -4
      • removedInput schema / properties / reference_image_urls / minItems
        Removed value: -1
      • changedInput schema / properties / source_task_id / description
        Previous value: -"Completed compatible task ID; cannot be combined with source_video_url."New value: +"Completed compatible task ID; cannot be combined with source_video_url. Declared type: string."
      • changedInput schema / properties / source_video_url / description
        Previous value: -"Public source video URL; cannot be combined with source_task_id."New value: +"Public source video URL; cannot be combined with source_task_id. Declared type: string."
    • Changedextend_video8 fields changed
      • addedInput schema / additionalProperties
        Added value: +{}
      • 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 / mode / anyOf
        Removed value: -[
        -  {
        -    "const": "std",
        -    "type": "string"
        -  },
        -  {
        -    "const": "pro",
        -    "type": "string"
        -  }
        -]
      • changedInput schema / properties / mode / description
        Previous value: -"Extension quality mode."New value: +"Extension quality mode. Declared type: string. Known values: \"std\", \"pro\"."
      • addedInput schema / properties / mode / type
        Added value: +"string"
      • removedInput schema / properties / model / enum
        Removed value: -[
        -  "kling-v2.5-turbo-image-to-video-pro",
        -  "kling-v2.5-turbo-text-to-video-pro"
        -]
      • changedInput schema / properties / prompt / description
        Previous value: -"Optional description for the continuation."New value: +"Optional description for the continuation. Declared type: string."
      • changedInput schema / properties / source_task_id / description
        Previous value: -"Completed Kling v2.5 Turbo source task ID."New value: +"Completed Kling v2.5 Turbo source task ID. Declared type: string."
    • Changedget_task1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedimage_to_video27 fields changed
      • addedInput schema / additionalProperties
        Added value: +{}
      • changedInput schema / properties / aspect_ratio / description
        Previous value: -"Output aspect ratio."New value: +"Output aspect ratio. Declared type: string."
      • changedInput schema / properties / callback_url / description
        Previous value: -"Webhook URL for async notifications."New value: +"Webhook URL for async notifications. Declared type: string."
      • changedInput schema / properties / cfg_scale / description
        Previous value: -"Guidance scale (0-1)."New value: +"Guidance scale (0-1). Declared type: number."
      • removedInput schema / properties / duration_seconds / anyOf
        Removed value: -[
        -  {
        -    "const": 5,
        -    "type": "number"
        -  },
        -  {
        -    "const": 10,
        -    "type": "number"
        -  },
        -  {
        -    "const": 3,
        -    "type": "number"
        -  },
        -  {
        -    "const": 4,
        -    "type": "number"
        -  },
        -  {
        -    "const": 6,
        -    "type": "number"
        -  },
        -  {
        -    "const": 7,
        -    "type": "number"
        -  },
        -  {
        -    "const": 8,
        -    "type": "number"
        -  },
        -  {
        -    "const": 9,
        -    "type": "number"
        -  },
        -  {
        -    "const": 11,
        -    "type": "number"
        -  },
        -  {
        -    "const": 12,
        -    "type": "number"
        -  },
        -  {
        -    "const": 13,
        -    "type": "number"
        -  },
        -  {
        -    "const": 14,
        -    "type": "number"
        -  },
        -  {
        -    "const": 15,
        -    "type": "number"
        -  }
        -]
      • changedInput schema / properties / duration_seconds / description
        Previous value: -"Duration in seconds."New value: +"Duration in seconds. Declared type: integer. Known values: 5, 10, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14, 15."
      • addedInput schema / properties / duration_seconds / type
        Added value: +"integer"
      • changedInput schema / properties / enable_sound / description
        Previous value: -"Sound generation must remain disabled."New value: +"Sound generation must remain disabled. Declared type: boolean."
      • changedInput schema / properties / first_frame_image_url / description
        Previous value: -"Public HTTP(S) JPG, JPEG, or PNG first-frame image URL."New value: +"Public HTTP(S) JPG, JPEG, or PNG first-frame image URL. Declared type: string."
      • changedInput schema / properties / last_frame_image_url / description
        Previous value: -"Public HTTP(S) JPG, JPEG, or PNG final-frame image URL; cannot be combined with reference_image_urls or reference_video_url."New value: +"Public HTTP(S) JPG, JPEG, or PNG final-frame image URL; cannot be combined with reference_image_urls or reference_video_url. Declared type: string."
      • removedInput schema / properties / mode / anyOf
        Removed value: -[
        -  {
        -    "const": "std",
        -    "type": "string"
        -  },
        -  {
        -    "const": "pro",
        -    "type": "string"
        -  }
        -]
      • changedInput schema / properties / mode / description
        Previous value: -"Generation mode."New value: +"Generation mode. Declared type: string. Known values: \"std\", \"pro\"."
      • addedInput schema / properties / mode / type
        Added value: +"string"
      • removedInput schema / properties / model / enum
        Removed value: -[
        -  "kling-o1",
        -  "kling-v2.1-master-image-to-video",
        -  "kling-v2.1-pro",
        -  "kling-v2.1-standard",
        -  "kling-v2.5-turbo-image-to-video-pro",
        -  "kling-v2.6",
        -  "kling-v3-omni",
        -  "kling-v3-turbo-image-to-video"
        -]
      • changedInput schema / properties / negative_prompt / description
        Previous value: -"Negative prompt."New value: +"Negative prompt. Declared type: string."
      • removedInput schema / properties / output_resolution / anyOf
        Removed value: -[
        -  {
        -    "const": "720p",
        -    "type": "string"
        -  },
        -  {
        -    "const": "1080p",
        -    "type": "string"
        -  },
        -  {
        -    "const": "4k",
        -    "type": "string"
        -  }
        -]
      • changedInput schema / properties / output_resolution / description
        Previous value: -"Output resolution."New value: +"Output resolution. Declared type: string. Known values: \"720p\", \"1080p\", \"4k\"."
      • addedInput schema / properties / output_resolution / type
        Added value: +"string"
      • changedInput schema / properties / preserve_reference_video_audio / description
        Previous value: -"Preserve the reference video's original audio."New value: +"Preserve the reference video's original audio. Declared type: boolean."
      • changedInput schema / properties / prompt / description
        Previous value: -"Video description; reference media with matching numbered markers."New value: +"Video description; reference media with matching numbered markers. Declared type: string."
      • removedInput schema / properties / prompt / maxLength
        Removed value: -2500
      • removedInput schema / properties / prompt / minLength
        Removed value: -1
      • changedInput schema / properties / reference_image_urls / description
        Previous value: -"Ordered public HTTP(S) JPG, JPEG, or PNG reference image URLs; cannot be combined with last_frame_image_url."New value: +"Ordered public HTTP(S) JPG, JPEG, or PNG reference image URLs; cannot be combined with last_frame_image_url. Declared type: array."
      • removedInput schema / properties / reference_video_type / anyOf
        Removed value: -[
        -  {
        -    "const": "base",
        -    "type": "string"
        -  },
        -  {
        -    "const": "feature",
        -    "type": "string"
        -  }
        -]
      • changedInput schema / properties / reference_video_type / description
        Previous value: -"Use the video as a base edit or feature reference."New value: +"Use the video as a base edit or feature reference. Declared type: string. Known values: \"base\", \"feature\"."
      • addedInput schema / properties / reference_video_type / type
        Added value: +"string"
      • changedInput schema / properties / reference_video_url / description
        Previous value: -"Public HTTP(S) MP4 or MOV reference video URL; cannot be combined with last_frame_image_url."New value: +"Public HTTP(S) MP4 or MOV reference video URL; cannot be combined with last_frame_image_url. Declared type: string."
    • Changedmotion_control15 fields changed
      • 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."
    • Changedtext_to_video31 fields changed
      • addedInput schema / additionalProperties
        Added value: +{}
      • removedInput schema / properties / aspect_ratio / anyOf
        Removed value: -[
        -  {
        -    "const": "16:9",
        -    "type": "string"
        -  },
        -  {
        -    "const": "9:16",
        -    "type": "string"
        -  },
        -  {
        -    "const": "1:1",
        -    "type": "string"
        -  }
        -]
      • changedInput schema / properties / aspect_ratio / description
        Previous value: -"Output aspect ratio."New value: +"Output aspect ratio. Declared type: string. Known values: \"16:9\", \"9:16\", \"1:1\"."
      • addedInput schema / properties / aspect_ratio / 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."
      • changedInput schema / properties / cfg_scale / description
        Previous value: -"Guidance scale (0-1)."New value: +"Guidance scale (0-1). Declared type: number."
      • removedInput schema / properties / duration_seconds / anyOf
        Removed value: -[
        -  {
        -    "const": 3,
        -    "type": "number"
        -  },
        -  {
        -    "const": 4,
        -    "type": "number"
        -  },
        -  {
        -    "const": 5,
        -    "type": "number"
        -  },
        -  {
        -    "const": 6,
        -    "type": "number"
        -  },
        -  {
        -    "const": 7,
        -    "type": "number"
        -  },
        -  {
        -    "const": 8,
        -    "type": "number"
        -  },
        -  {
        -    "const": 9,
        -    "type": "number"
        -  },
        -  {
        -    "const": 10,
        -    "type": "number"
        -  },
        -  {
        -    "const": 11,
        -    "type": "number"
        -  },
        -  {
        -    "const": 12,
        -    "type": "number"
        -  },
        -  {
        -    "const": 13,
        -    "type": "number"
        -  },
        -  {
        -    "const": 14,
        -    "type": "number"
        -  },
        -  {
        -    "const": 15,
        -    "type": "number"
        -  }
        -]
      • changedInput schema / properties / duration_seconds / description
        Previous value: -"Duration in seconds."New value: +"Duration in seconds. Declared type: integer. Known values: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15."
      • addedInput schema / properties / duration_seconds / type
        Added value: +"integer"
      • changedInput schema / properties / enable_sound / description
        Previous value: -"Enable sound generation."New value: +"Enable sound generation. Declared type: boolean."
      • changedInput schema / properties / first_frame_image_url / description
        Previous value: -"First frame image URL."New value: +"First frame image URL. Declared type: string."
      • changedInput schema / properties / kling_elements / description
        Previous value: -"Element references with image, video, or audio materials."New value: +"Element references with image, video, or audio materials. Declared type: array."
      • changedInput schema / properties / last_frame_image_url / description
        Previous value: -"Last frame image URL for single-shot mode."New value: +"Last frame image URL for single-shot mode. Declared type: string."
      • removedInput schema / properties / mode / anyOf
        Removed value: -[
        -  {
        -    "const": "std",
        -    "type": "string"
        -  },
        -  {
        -    "const": "pro",
        -    "type": "string"
        -  }
        -]
      • changedInput schema / properties / mode / description
        Previous value: -"Generation mode."New value: +"Generation mode. Declared type: string. Known values: \"std\", \"pro\"."
      • addedInput schema / properties / mode / type
        Added value: +"string"
      • removedInput schema / properties / model / enum
        Removed value: -[
        -  "kling-3.0",
        -  "kling-o1",
        -  "kling-v2.1-master-text-to-video",
        -  "kling-v2.5-turbo-text-to-video-pro",
        -  "kling-v2.6",
        -  "kling-v3-omni",
        -  "kling-v3-omni-reference",
        -  "kling-v3-turbo-text-to-video"
        -]
      • changedInput schema / properties / multi_prompt / description
        Previous value: -"Prompt segments for multi-shot mode."New value: +"Prompt segments for multi-shot mode. Declared type: array."
      • changedInput schema / properties / multi_shots / description
        Previous value: -"Enable multi-shot generation."New value: +"Enable multi-shot generation. Declared type: boolean."
      • changedInput schema / properties / negative_prompt / description
        Previous value: -"Negative prompt."New value: +"Negative prompt. Declared type: string."
      • removedInput schema / properties / output_resolution / anyOf
        Removed value: -[
        -  {
        -    "const": "720p",
        -    "type": "string"
        -  },
        -  {
        -    "const": "1080p",
        -    "type": "string"
        -  },
        -  {
        -    "const": "4k",
        -    "type": "string"
        -  }
        -]
      • changedInput schema / properties / output_resolution / description
        Previous value: -"Output resolution."New value: +"Output resolution. Declared type: string. Known values: \"720p\", \"1080p\", \"4k\"."
      • addedInput schema / properties / output_resolution / type
        Added value: +"string"
      • changedInput schema / properties / preserve_reference_video_audio / description
        Previous value: -"Preserve the reference video's original audio."New value: +"Preserve the reference video's original audio. Declared type: boolean."
      • changedInput schema / properties / prompt / description
        Previous value: -"Video description. Required unless multi_shots is enabled."New value: +"Video description. Required unless multi_shots is enabled. Declared type: string."
      • changedInput schema / properties / reference_image_urls / description
        Previous value: -"Ordered public HTTP(S) JPG, JPEG, or PNG reference image URLs."New value: +"Ordered public HTTP(S) JPG, JPEG, or PNG reference image URLs. Declared type: array."
      • removedInput schema / properties / reference_video_type / anyOf
        Removed value: -[
        -  {
        -    "const": "base",
        -    "type": "string"
        -  },
        -  {
        -    "const": "feature",
        -    "type": "string"
        -  }
        -]
      • changedInput schema / properties / reference_video_type / description
        Previous value: -"Use the video as a base edit or feature reference."New value: +"Use the video as a base edit or feature reference. Declared type: string. Known values: \"base\", \"feature\"."
      • addedInput schema / properties / reference_video_type / type
        Added value: +"string"
      • changedInput schema / properties / reference_video_url / description
        Previous value: -"Public HTTP(S) MP4 or MOV reference video URL."New value: +"Public HTTP(S) MP4 or MOV reference video URL. Declared type: string."
      • addedInput schema / required
        Added value: +[]
  3. 8 tool updatesv0.2.0
    • Changedai_avatar3 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / poll_interval_ms / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / timeout_ms / maximum
        Added value: +9007199254740991
    • Changedcheck_pricing2 fields changed
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "ai_avatar",
        -  "extend_video",
        -  "image_to_video",
        -  "motion_control",
        -  "text_to_video"
        -]New value: +[
        +  "ai_avatar",
        +  "edit_video",
        +  "extend_video",
        +  "image_to_video",
        +  "motion_control",
        +  "text_to_video"
        +]
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "kling-ai-avatar-pro",
        -  "kling-ai-avatar-standard",
        -  "kling-ai-avatar-v1-pro",
        -  "kling-v1-avatar-standard",
        -  "kling-v2.5-turbo-image-to-video-pro",
        -  "kling-v2.5-turbo-text-to-video-pro",
        -  "kling-o1",
        -  "kling-v2.1-master-image-to-video",
        -  "kling-v2.1-pro",
        -  "kling-v2.1-standard",
        -  "kling-v2.6",
        -  "kling-v3-omni",
        -  "kling-v3-turbo-image-to-video",
        -  "kling-3.0",
        -  "kling-v2.1-master-text-to-video",
        -  "kling-v3-turbo-text-to-video"
        -]New value: +[
        +  "kling-ai-avatar-pro",
        +  "kling-ai-avatar-standard",
        +  "kling-ai-avatar-v1-pro",
        +  "kling-v1-avatar-standard",
        +  "kling-v3-omni-edit",
        +  "kling-v3-omni-reference",
        +  "kling-v2.5-turbo-image-to-video-pro",
        +  "kling-v2.5-turbo-text-to-video-pro",
        +  "kling-o1",
        +  "kling-v2.1-master-image-to-video",
        +  "kling-v2.1-pro",
        +  "kling-v2.1-standard",
        +  "kling-v2.6",
        +  "kling-v3-omni",
        +  "kling-v3-turbo-image-to-video",
        +  "kling-3.0",
        +  "kling-v2.1-master-text-to-video",
        +  "kling-v3-turbo-text-to-video"
        +]
    • Addededit_video
    • Changedextend_video6 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / mode / anyOf
        Added value: +[
        +  {
        +    "const": "std",
        +    "type": "string"
        +  },
        +  {
        +    "const": "pro",
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / mode / enum
        Removed value: -[
        -  "std",
        -  "pro"
        -]
      • removedInput schema / properties / mode / type
        Removed value: -"string"
      • addedInput schema / properties / poll_interval_ms / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / timeout_ms / maximum
        Added value: +9007199254740991
    • Changedget_task1 field changed
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "ai_avatar",
        -  "extend_video",
        -  "image_to_video",
        -  "motion_control",
        -  "text_to_video"
        -]New value: +[
        +  "ai_avatar",
        +  "edit_video",
        +  "extend_video",
        +  "image_to_video",
        +  "motion_control",
        +  "text_to_video"
        +]
    • Changedimage_to_video15 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / duration_seconds / anyOf
        Added value: +[
        +  {
        +    "const": 5,
        +    "type": "number"
        +  },
        +  {
        +    "const": 10,
        +    "type": "number"
        +  },
        +  {
        +    "const": 3,
        +    "type": "number"
        +  },
        +  {
        +    "const": 4,
        +    "type": "number"
        +  },
        +  {
        +    "const": 6,
        +    "type": "number"
        +  },
        +  {
        +    "const": 7,
        +    "type": "number"
        +  },
        +  {
        +    "const": 8,
        +    "type": "number"
        +  },
        +  {
        +    "const": 9,
        +    "type": "number"
        +  },
        +  {
        +    "const": 11,
        +    "type": "number"
        +  },
        +  {
        +    "const": 12,
        +    "type": "number"
        +  },
        +  {
        +    "const": 13,
        +    "type": "number"
        +  },
        +  {
        +    "const": 14,
        +    "type": "number"
        +  },
        +  {
        +    "const": 15,
        +    "type": "number"
        +  }
        +]
      • removedInput schema / properties / duration_seconds / enum
        Removed value: -[
        -  5,
        -  10,
        -  3,
        -  4,
        -  6,
        -  7,
        -  8,
        -  9,
        -  11,
        -  12,
        -  13,
        -  14,
        -  15
        -]
      • removedInput schema / properties / duration_seconds / type
        Removed value: -"number"
      • addedInput schema / properties / mode / anyOf
        Added value: +[
        +  {
        +    "const": "std",
        +    "type": "string"
        +  },
        +  {
        +    "const": "pro",
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / mode / enum
        Removed value: -[
        -  "std",
        -  "pro"
        -]
      • removedInput schema / properties / mode / type
        Removed value: -"string"
      • addedInput schema / properties / output_resolution / anyOf
        Added value: +[
        +  {
        +    "const": "720p",
        +    "type": "string"
        +  },
        +  {
        +    "const": "1080p",
        +    "type": "string"
        +  },
        +  {
        +    "const": "4k",
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / output_resolution / enum
        Removed value: -[
        -  "720p",
        -  "1080p",
        -  "4k"
        -]
      • removedInput schema / properties / output_resolution / type
        Removed value: -"string"
      • addedInput schema / properties / poll_interval_ms / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / reference_video_type / anyOf
        Added value: +[
        +  {
        +    "const": "base",
        +    "type": "string"
        +  },
        +  {
        +    "const": "feature",
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / reference_video_type / enum
        Removed value: -[
        -  "base",
        -  "feature"
        -]
      • removedInput schema / properties / reference_video_type / type
        Removed value: -"string"
      • addedInput schema / properties / timeout_ms / maximum
        Added value: +9007199254740991
    • Changedmotion_control13 fields changed
      • 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"
        +]
    • Changedtext_to_video19 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / aspect_ratio / anyOf
        Added value: +[
        +  {
        +    "const": "16:9",
        +    "type": "string"
        +  },
        +  {
        +    "const": "9:16",
        +    "type": "string"
        +  },
        +  {
        +    "const": "1:1",
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / aspect_ratio / enum
        Removed value: -[
        -  "16:9",
        -  "9:16",
        -  "1:1"
        -]
      • removedInput schema / properties / aspect_ratio / type
        Removed value: -"string"
      • addedInput schema / properties / duration_seconds / anyOf
        Added value: +[
        +  {
        +    "const": 3,
        +    "type": "number"
        +  },
        +  {
        +    "const": 4,
        +    "type": "number"
        +  },
        +  {
        +    "const": 5,
        +    "type": "number"
        +  },
        +  {
        +    "const": 6,
        +    "type": "number"
        +  },
        +  {
        +    "const": 7,
        +    "type": "number"
        +  },
        +  {
        +    "const": 8,
        +    "type": "number"
        +  },
        +  {
        +    "const": 9,
        +    "type": "number"
        +  },
        +  {
        +    "const": 10,
        +    "type": "number"
        +  },
        +  {
        +    "const": 11,
        +    "type": "number"
        +  },
        +  {
        +    "const": 12,
        +    "type": "number"
        +  },
        +  {
        +    "const": 13,
        +    "type": "number"
        +  },
        +  {
        +    "const": 14,
        +    "type": "number"
        +  },
        +  {
        +    "const": 15,
        +    "type": "number"
        +  }
        +]
      • removedInput schema / properties / duration_seconds / enum
        Removed value: -[
        -  3,
        -  4,
        -  5,
        -  6,
        -  7,
        -  8,
        -  9,
        -  10,
        -  11,
        -  12,
        -  13,
        -  14,
        -  15
        -]
      • removedInput schema / properties / duration_seconds / type
        Removed value: -"number"
      • addedInput schema / properties / mode / anyOf
        Added value: +[
        +  {
        +    "const": "std",
        +    "type": "string"
        +  },
        +  {
        +    "const": "pro",
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / mode / enum
        Removed value: -[
        -  "std",
        -  "pro"
        -]
      • removedInput schema / properties / mode / type
        Removed value: -"string"
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "kling-3.0",
        -  "kling-o1",
        -  "kling-v2.1-master-text-to-video",
        -  "kling-v2.5-turbo-text-to-video-pro",
        -  "kling-v2.6",
        -  "kling-v3-omni",
        -  "kling-v3-turbo-text-to-video"
        -]New value: +[
        +  "kling-3.0",
        +  "kling-o1",
        +  "kling-v2.1-master-text-to-video",
        +  "kling-v2.5-turbo-text-to-video-pro",
        +  "kling-v2.6",
        +  "kling-v3-omni",
        +  "kling-v3-omni-reference",
        +  "kling-v3-turbo-text-to-video"
        +]
      • addedInput schema / properties / output_resolution / anyOf
        Added value: +[
        +  {
        +    "const": "720p",
        +    "type": "string"
        +  },
        +  {
        +    "const": "1080p",
        +    "type": "string"
        +  },
        +  {
        +    "const": "4k",
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / output_resolution / enum
        Removed value: -[
        -  "720p",
        -  "1080p",
        -  "4k"
        -]
      • removedInput schema / properties / output_resolution / type
        Removed value: -"string"
      • addedInput schema / properties / poll_interval_ms / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / reference_video_type / anyOf
        Added value: +[
        +  {
        +    "const": "base",
        +    "type": "string"
        +  },
        +  {
        +    "const": "feature",
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / reference_video_type / enum
        Removed value: -[
        -  "base",
        -  "feature"
        -]
      • removedInput schema / properties / reference_video_type / type
        Removed value: -"string"
      • addedInput schema / properties / timeout_ms / maximum
        Added value: +9007199254740991
  4. 7 tool updatesv0.1.13
    • Changedai_avatar4 fields changed
      • addedInput schema / properties / callback_url / description
        Added value: +"Webhook URL for async notifications."
      • addedInput schema / properties / prompt / description
        Added value: +"Description of the avatar."
      • addedInput schema / properties / source_audio_url / description
        Added value: +"Audio URL for lip sync."
      • addedInput schema / properties / source_image_url / description
        Added value: +"Face image URL."
    • Changedcheck_pricing2 fields changed
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "ai_avatar",
        -  "image_to_video",
        -  "motion_control",
        -  "text_to_video"
        -]New value: +[
        +  "ai_avatar",
        +  "extend_video",
        +  "image_to_video",
        +  "motion_control",
        +  "text_to_video"
        +]
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "kling-ai-avatar-pro",
        -  "kling-ai-avatar-standard",
        -  "kling-ai-avatar-v1-pro",
        -  "kling-v1-avatar-standard",
        -  "kling-v2.1-master-image-to-video",
        -  "kling-v2.1-pro",
        -  "kling-v2.1-standard",
        -  "kling-v2.5-turbo-image-to-video-pro",
        -  "kling-v3-turbo-image-to-video",
        -  "kling-3.0",
        -  "kling-v2.1-master-text-to-video",
        -  "kling-v2.5-turbo-text-to-video-pro",
        -  "kling-v3-turbo-text-to-video"
        -]New value: +[
        +  "kling-ai-avatar-pro",
        +  "kling-ai-avatar-standard",
        +  "kling-ai-avatar-v1-pro",
        +  "kling-v1-avatar-standard",
        +  "kling-v2.5-turbo-image-to-video-pro",
        +  "kling-v2.5-turbo-text-to-video-pro",
        +  "kling-o1",
        +  "kling-v2.1-master-image-to-video",
        +  "kling-v2.1-pro",
        +  "kling-v2.1-standard",
        +  "kling-v2.6",
        +  "kling-v3-omni",
        +  "kling-v3-turbo-image-to-video",
        +  "kling-3.0",
        +  "kling-v2.1-master-text-to-video",
        +  "kling-v3-turbo-text-to-video"
        +]
    • Addedextend_video
    • Changedget_task2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Endpoint the task was created on."New value: +"Asynchronous endpoint the task was created on."
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "ai_avatar",
        -  "image_to_video",
        -  "motion_control",
        -  "text_to_video"
        -]New value: +[
        +  "ai_avatar",
        +  "extend_video",
        +  "image_to_video",
        +  "motion_control",
        +  "text_to_video"
        +]
    • Addedimage_to_video
    • Changedmotion_control8 fields changed
      • 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."
    • Changedtext_to_video20 fields changed
      • addedInput schema / properties / aspect_ratio / description
        Added value: +"Output aspect ratio."
      • addedInput schema / properties / callback_url / description
        Added value: +"Webhook URL for async notifications."
      • addedInput schema / properties / cfg_scale / description
        Added value: +"Guidance scale (0-1)."
      • addedInput schema / properties / duration_seconds / description
        Added value: +"Duration in seconds."
      • addedInput schema / properties / enable_sound / description
        Added value: +"Enable sound generation."
      • addedInput schema / properties / first_frame_image_url / description
        Added value: +"First frame image URL."
      • addedInput schema / properties / kling_elements / description
        Added value: +"Element references with image, video, or audio materials."
      • addedInput schema / properties / last_frame_image_url / description
        Added value: +"Last frame image URL for single-shot mode."
      • addedInput schema / properties / mode
        Added value: +{
        +  "description": "Generation mode.",
        +  "enum": [
        +    "std",
        +    "pro"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "kling-3.0",
        -  "kling-v2.1-master-text-to-video",
        -  "kling-v2.5-turbo-text-to-video-pro",
        -  "kling-v3-turbo-text-to-video"
        -]New value: +[
        +  "kling-3.0",
        +  "kling-o1",
        +  "kling-v2.1-master-text-to-video",
        +  "kling-v2.5-turbo-text-to-video-pro",
        +  "kling-v2.6",
        +  "kling-v3-omni",
        +  "kling-v3-turbo-text-to-video"
        +]
      • addedInput schema / properties / multi_prompt / description
        Added value: +"Prompt segments for multi-shot mode."
      • addedInput schema / properties / multi_shots / description
        Added value: +"Enable multi-shot generation."
      • addedInput schema / properties / negative_prompt / description
        Added value: +"Negative prompt."
      • addedInput schema / properties / output_resolution / description
        Added value: +"Output resolution."
      • addedInput schema / properties / output_resolution / enum
        Added value: +[
        +  "720p",
        +  "1080p",
        +  "4k"
        +]
      • addedInput schema / properties / preserve_reference_video_audio
        Added value: +{
        +  "description": "Preserve the reference video's original audio.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / prompt / description
        Added value: +"Video description. Required unless multi_shots is enabled."
      • addedInput schema / properties / reference_image_urls
        Added value: +{
        +  "description": "Ordered public HTTP(S) JPG, JPEG, or PNG reference image URLs.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / reference_video_type
        Added value: +{
        +  "description": "Use the video as a base edit or feature reference.",
        +  "enum": [
        +    "base",
        +    "feature"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / reference_video_url
        Added value: +{
        +  "description": "Public HTTP(S) MP4 or MOV reference video URL.",
        +  "type": "string"
        +}
  5. 4 tool updatesv0.1.9
    • Changedai_avatar1 field changed
      • changedInput schema / required
        Previous value: -[
        -  "prompt",
        -  "source_audio_url",
        -  "source_image_url"
        -]New value: +[
        +  "source_image_url",
        +  "source_audio_url",
        +  "prompt"
        +]
    • Changedcheck_pricing1 field changed
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "kling-ai-avatar-pro",
        -  "kling-ai-avatar-standard",
        -  "kling-ai-avatar-v1-pro",
        -  "kling-v1-avatar-standard",
        -  "kling-v2.1-master-image-to-video",
        -  "kling-v2.1-pro",
        -  "kling-v2.1-standard",
        -  "kling-v2.5-turbo-image-to-video-pro",
        -  "kling-3.0",
        -  "kling-v2.1-master-text-to-video",
        -  "kling-v2.5-turbo-text-to-video-pro"
        -]New value: +[
        +  "kling-ai-avatar-pro",
        +  "kling-ai-avatar-standard",
        +  "kling-ai-avatar-v1-pro",
        +  "kling-v1-avatar-standard",
        +  "kling-v2.1-master-image-to-video",
        +  "kling-v2.1-pro",
        +  "kling-v2.1-standard",
        +  "kling-v2.5-turbo-image-to-video-pro",
        +  "kling-v3-turbo-image-to-video",
        +  "kling-3.0",
        +  "kling-v2.1-master-text-to-video",
        +  "kling-v2.5-turbo-text-to-video-pro",
        +  "kling-v3-turbo-text-to-video"
        +]
    • Removedimage_to_video
    • Changedtext_to_video2 fields changed
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "kling-3.0",
        -  "kling-v2.1-master-text-to-video",
        -  "kling-v2.5-turbo-text-to-video-pro"
        -]New value: +[
        +  "kling-3.0",
        +  "kling-v2.1-master-text-to-video",
        +  "kling-v2.5-turbo-text-to-video-pro",
        +  "kling-v3-turbo-text-to-video"
        +]
      • removedInput schema / properties / output_resolution / enum
        Removed value: -[
        -  "720p",
        -  "1080p",
        -  "4k"
        -]
  6. 1 tool updatev0.1.8
    • Addedlogin
  7. 4 tool updatesv0.1.2
    • Changedai_avatar5 fields changed
      • addedInput schema / properties / callback_url / type
        Added value: +"string"
      • addedInput schema / properties / prompt / type
        Added value: +"string"
      • addedInput schema / properties / source_audio_url / type
        Added value: +"string"
      • addedInput schema / properties / source_image_url / type
        Added value: +"string"
      • addedInput schema / required
        Added value: +[
        +  "prompt",
        +  "source_audio_url",
        +  "source_image_url"
        +]
    • Changedimage_to_video7 fields changed
      • addedInput schema / properties / aspect_ratio / type
        Added value: +"string"
      • addedInput schema / properties / callback_url / type
        Added value: +"string"
      • addedInput schema / properties / first_frame_image_url / type
        Added value: +"string"
      • addedInput schema / properties / last_frame_image_url / type
        Added value: +"string"
      • addedInput schema / properties / negative_prompt / type
        Added value: +"string"
      • addedInput schema / properties / prompt / type
        Added value: +"string"
      • addedInput schema / required
        Added value: +[
        +  "prompt",
        +  "first_frame_image_url"
        +]
    • Changedmotion_control5 fields changed
      • 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"
        +]
    • Changedtext_to_video5 fields changed
      • addedInput schema / properties / callback_url / type
        Added value: +"string"
      • addedInput schema / properties / first_frame_image_url / type
        Added value: +"string"
      • addedInput schema / properties / last_frame_image_url / type
        Added value: +"string"
      • addedInput schema / properties / negative_prompt / type
        Added value: +"string"
      • addedInput schema / properties / prompt / type
        Added value: +"string"
  8. 6 tool updatesv0.1.1
    • First observedai_avatar
    • First observedcheck_pricing
    • First observedget_task
    • First observedimage_to_video
    • First observedmotion_control
    • First observedtext_to_video

TDQS

B3.4/5.0

Scored across 9 tools

Disambiguation4/5

The generation tools (text_to_video, image_to_video, motion_control, ai_avatar, edit_video, extend_video) share near-identical descriptions differing only by the parenthetical task type, but their names clearly signal distinct modalities. login, get_task, and check_pricing are cleanly separate. Only mild overlap between the many generation variants.

Naming Consistency4/5

Nearly all names use snake_case, and the generation tools follow a consistent verb/resource-to-resource pattern. Slight inconsistency between imperative verbs (login, get_task, check_pricing) and the descriptive generation names, but nothing confusing.

Tool Count5/5

Nine tools is well-scoped for a video-generation API: one auth, one status lookup, one pricing, and six distinct generation modes. Each tool earns its place.

Completeness3/5

The surface covers auth, all major generation modes, task lookup, and pricing, but lacks task lifecycle management such as listing tasks, canceling, or deleting a task. Agents can poll get_task but cannot enumerate or abort tasks.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers