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


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 18 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, kling-ai-avatar-v1-pro, kling-v1-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.

ParametersJSON Schema
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.

ParametersJSON Schema
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.

ParametersJSON Schema
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.

ParametersJSON Schema
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_taskA

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

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

TDQS

A3.6/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. It does add real behavioral context by implying read-only retrieval and that the result is the 'latest' payload (i.e., may not yet be final), which supports polling semantics. It does not disclose rate limits, how to interpret status values, or what happens on an unknown task_id.

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 filler; the resource and the returned payload are stated immediately.

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 two-parameter lookup with full schema coverage and no output schema, the description usefully states what comes back (status plus latest result payload), which compensates for the missing output schema. It stops short of explaining status semantics or error behavior, so it is not fully 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 100%, and both required parameters (task_id, action enum) are documented in the schema. The description adds no further parameter detail, so the baseline 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?

States a specific verb ('Fetch') and resource ('status and latest result payload for a kling task'), so the agent knows exactly what it retrieves. It is clearly distinguishable from the sibling creation tools (text_to_video, extend_video, etc.), though it never names an alternative explicitly.

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?

Usage is only implied: because siblings all create tasks, this tool is obviously the status/polling counterpart, and the word 'current' hints at repeated polling. However, there is no explicit statement of when to call it (e.g., after task creation, poll until terminal status) or any exclusions.

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.

ParametersJSON Schema
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.

ParametersJSON Schema
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_controlC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNoPoll until the task reaches a terminal status.
modelNoRunAPI model slug for this model line.
promptNoDescription prompt. Declared type: string.
timeout_msNo
callback_urlNoWebhook URL for async notifications. Declared type: string.
poll_interval_msNo
source_image_urlYesSubject image URL. Declared type: string.
background_sourceNoBackground source. Declared type: string. Known values: "video", "image".
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

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden yet only discloses the return shape. It omits that this is an async generation job, that 'wait' defaults to polling, whether it costs credits, and how timeouts/callbacks behave — all of which are behavioral traits an agent must know.

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 action and resource, followed by the return shape. No waste, though it is arguably under-specified rather than efficiently complete.

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 11-parameter async generation tool with no annotations and no output schema, the description partially compensates by naming the return values (task id, status, output URLs). However it leaves usage, polling behavior, and cost/auth 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 82%, so the schema already documents most parameters (including the three required URLs and enum-like known values). The description adds no parameter meaning beyond what the schema provides, which is the baseline 3 for high coverage.

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)'. The purpose is clear, but it does not differentiate from siblings like image_to_video, text_to_video, or edit_video, which are also task-creating tools on the same platform.

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. The '(motion control)' parenthetical hints that a source image and reference video drive motion, but the description never says when to choose this over image_to_video or text_to_video, nor does it state prerequisites or exclusions.

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

text_to_videoC

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

ParametersJSON Schema
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 unless multi_shots is enabled. Declared type: string.
cfg_scaleNoGuidance scale (0-1). Declared type: number.
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_promptNoPrompt segments for multi-shot mode. 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

C2.9/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full disclosure burden. It notes the response shape (task id, status, output URLs), which is useful given there is no output schema, but says nothing about polling/`wait` behavior, cost, async callback semantics, or what happens with the many optional reference params. For a 22-parameter generation tool 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both front-loaded and waste-free: purpose first, then the return contract. Nothing is redundant, though it is arguably under-informative rather than truly concise.

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 22 parameters, zero annotations, and no output schema, the description should at minimum explain the wait/polling default and the interaction between multi_shots, multi_prompt, and the reference-* fields. The return-shape sentence partially compensates for the missing output schema, but the behavior of a complex async generation task is left unexplained.

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 every parameter (including enum-like known values and defaults). The description adds no parameter-level meaning beyond the schema, so the baseline 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?

States a specific verb and resource ('Create a Kling task'), plus the modality '(text to video)', which distinguishes it from siblings like image_to_video and edit_video. It does not name those siblings explicitly, but the modality label is enough for an agent to route correctly.

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, no mention of when to prefer image_to_video/extend_video/motion_control, and no prerequisites (e.g. that reference image URLs push work toward the image_to_video path). 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.

Tool Schema Changelog

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

  1. 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: +[]
  2. 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
  3. 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"
        +}
  4. 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"
        -]
  5. 1 tool updatev0.1.8
    • Addedlogin
  6. 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"
  7. 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 six task-creation tools map to distinct Kling video modes (text-to-video, image-to-video, extend, edit, motion control, AI avatar), so purposes are mostly clear. Minor potential confusion between extend_video and edit_video, but descriptions and names differentiate them adequately.

Naming Consistency4/5

All names use snake_case consistently with no style mixing. However, the pattern is not uniformly verb_noun: some are source-to-target phrases (image_to_video), some are noun phrases (motion_control, ai_avatar), and others are verb_noun (get_task, check_pricing).

Tool Count5/5

Nine tools is well-scoped for a video-generation API client. Each tool earns its place: six generation modes, one task-status fetcher, one pricing lookup, and one authentication helper.

Completeness4/5

Core workflows are covered: login, pricing check, task creation across modes, and task status retrieval. Minor gaps include no task cancellation, no task listing, and no direct video download (though output URLs are returned).

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers