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 5 endpoints and 16 model variants without loading the full RunAPI catalog.

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


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.

extend_video

Yes

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

image_to_video

Yes

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

motion_control

Yes

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

text_to_video

Yes

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

get_task

Yes

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

check_pricing

No

Look up current pricing for a Kling model and endpoint.


Models

Kling covers 16 model variants across 5 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

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

8 tools
ai_avatarB

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.
timeout_msNo
callback_urlNoWebhook URL for async notifications.
poll_interval_msNo
source_audio_urlYesAudio URL for lip sync.
source_image_urlYesFace image URL.

TDQS

B3.1/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 full burden. It discloses that the tool creates a task and returns specific fields, but it fails to mention behavioral traits like whether the operation is destructive (e.g., overwriting previous tasks), any authentication or rate limit constraints, or the nature of the 'status' field (e.g., polling behavior).

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 description is a single, direct sentence that conveys the core action and outputs. While efficient, it could be improved by front-loading the return values or structuring into multiple sentences for clarity.

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?

Given the tool has 8 parameters and no output schema, the description is insufficient. It does not explain what constitutes a 'Kling task,' how to interpret the output fields, or the behavior of the 'wait' parameter. For a creator tool of this complexity, more context is needed to ensure correct invocation.

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%, meaning most parameters are already documented in the schema. The description adds no additional parameter context beyond the schema, so it meets the baseline of 3. It does not explain the purpose or constraints of parameters like 'wait' or 'timeout_ms' in relation to the task creation process.

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 action (Create a Kling task), the specific resource (ai avatar), and the return values (task id, status, output URLs). This distinguishes it from sibling tools like text_to_video or image_to_video, which focus on other video generation tasks.

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 provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as requiring a specific source image or audio format, nor does it clarify when other sibling tools like text_to_video would be more appropriate.

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

check_pricingB

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

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It fails to mention whether the operation is read-only, requires authentication, has rate limits, or what kind of pricing data is returned (e.g., current or historical). This is insufficient for an agent to understand the tool's side effects or constraints.

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 description is a single, concise sentence that front-loads the core purpose. It wastes no words, but could be slightly more informative without losing conciseness.

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?

Given the lack of output schema and annotations, the description is too minimal. It does not explain the return value format, whether the output is a list or single price, or any other contextual details that an agent would need to interpret the tool's result.

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% since both parameters have descriptions in the schema. The tool description adds no additional meaning beyond what the schema already provides. Baseline score of 3 is appropriate.

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 function: 'Look up RunAPI pricing for the kling model line.' It uses a specific verb ('look up') and resource ('pricing'), and the scope is narrowed to the kling model line, distinguishing it from sibling tools that perform actions (e.g., ai_avatar) or manage tasks.

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 the tool should be used when pricing information is needed, but it provides no explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives. However, since no other sibling tool handles pricing, the lack of guidance is somewhat mitigated.

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

extend_videoB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoExtension quality mode.
waitNoPoll until the task reaches a terminal status.
modelNoRunAPI model slug for this model line.
promptNoOptional description for the continuation.
timeout_msNo
callback_urlNoWebhook URL for async notifications.
source_task_idYesCompleted Kling v2.5 Turbo source task ID.
poll_interval_msNo

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are present, so the description must fully disclose behaviors. It only states it creates a task and returns outputs, but omits details like asynchronous nature, required permissions, error handling, or side effects.

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, clear sentence that conveys the tool's core function and outputs, with no unnecessary words.

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 8 parameters and no output schema, the description lacks details on parameter interactions, task lifecycle, what constitutes a successful extension, and how output URLs are structured. It is too minimal for the tool's complexity.

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%, and the description adds no additional meaning beyond 'extend video'. The schema already documents parameters adequately, so the description does not improve parameter understanding.

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 it creates a Kling task to extend a video, and mentions what it returns. This distinguishes it from sibling tools like text_to_video and image_to_video which are for generation.

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 the tool is for extending an existing video, but it does not explicitly say when to use it versus the generative siblings, nor does it mention prerequisites or exclusions.

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

get_taskB

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

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

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, and the description only states it fetches data, without discussing side effects, idempotency, or error handling. Minimal behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

One sentence with no wasted words, efficiently conveying the tool's purpose.

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?

Adequate for a simple polling tool with two parameters, but lacks mention of error states or that it is a read-only operation.

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

Parameters3/5

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

Schema coverage is 100%, and the description adds no additional meaning beyond what the schema already provides for both 'action' and 'task_id'.

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 clearly states it fetches status and payload for a kling task with a specific verb and resource. However, it does not differentiate from sibling tools like ai_avatar or extend_video, which are separate actions.

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 guidance on when to use this tool, such as after task creation or for polling. The description lacks context for appropriate usage vs alternatives.

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.
waitNoPoll until the task reaches a terminal status.
modelNoRunAPI model slug for this model line.
promptYesVideo description; reference media with matching numbered markers.
cfg_scaleNoGuidance scale (0-1).
timeout_msNo
aspect_ratioNoOutput aspect ratio.
callback_urlNoWebhook URL for async notifications.
enable_soundNoSound generation must remain disabled.
negative_promptNoNegative prompt.
duration_secondsNoDuration in seconds.
poll_interval_msNo
output_resolutionNoOutput resolution.
reference_video_urlNoPublic HTTP(S) MP4 or MOV reference video URL; cannot be combined with last_frame_image_url.
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.
reference_image_urlsNoOrdered public HTTP(S) JPG, JPEG, or PNG reference image URLs; cannot be combined with last_frame_image_url.
reference_video_typeNoUse the video as a base edit or feature reference.
first_frame_image_urlYesPublic HTTP(S) JPG, JPEG, or PNG first-frame image URL.
preserve_reference_video_audioNoPreserve the reference video's original audio.

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavioral traits. It only states the return values (task id, status, output URLs) but omits critical details such as whether the operation is synchronous or asynchronous, authentication requirements, error handling, or what happens to existing tasks. The default polling behavior (implied by wait parameter) is not mentioned.

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 concise at two sentences, with the primary action in the first sentence and the return values in the second. Every sentence adds value without unnecessary words.

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?

Given the tool's complexity (19 parameters, no output schema), the description is insufficiently complete. It does not explain the main input fields (first_frame_image_url, prompt), the task lifecycle, or how to interpret the return values in conjunction with sibling tools like get_task. More context would be needed for an agent to use the tool effectively.

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 high (89%), so the schema itself documents most parameters. The description adds no additional parameter-specific meaning beyond the high-level action. A score of 3 is appropriate as the description does not compensate for any gaps in the schema coverage.

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 verb ('Create'), the resource ('Kling task'), and the specific domain ('image to video'). It effectively distinguishes the tool from siblings like text_to_video (text to video) and extend_video (extend existing video) by emphasizing the image-to-video focus.

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 does not provide any explicit guidance on when to use this tool versus alternatives such as text_to_video or extend_video. It lacks information about prerequisites (e.g., image URL requirements) or scenarios where the tool is inappropriate.

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.1/5.0
Behavior4/5

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

With no annotations, the description provides good transparency: it mentions opening a browser (interactive flow), PKCE method, and saving to a config file. It also hints at the 'force' parameter for re-authentication, but doesn't cover idempotency or existing credential handling.

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 core action ('Authenticate RunAPI') and efficiently conveys method and output location without extraneous words.

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

Completeness5/5

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

Given the tool's simplicity (one optional boolean parameter, no output schema, no nested objects), the description fully covers the essential context: what it does, how it does it, and where it stores results. No gaps remain.

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% for the single 'force' parameter. The tool description does not add further meaning beyond what the schema already provides, so baseline 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: authenticating RunAPI via a PKCE login flow and saving the API key to a config file. It distinctly differs from sibling tools (e.g., video-related), making selection unambiguous.

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 lacks explicit guidance on when or when not to use this tool vs alternatives. However, the context of sibling tools (all non-authentication) makes usage fairly clear, meeting a minimal viable standard.

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.
timeout_msNo
callback_urlNoWebhook URL for async notifications.
poll_interval_msNo
source_image_urlYesSubject image URL.
background_sourceNoBackground source.
output_resolutionNoOutput resolution.
reference_video_urlYesReference motion video URL.
character_orientationNoCharacter orientation.

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 full burden. It only states that the tool creates a task and returns an ID, status, and URLs. There is no disclosure about destructive actions, authorization requirements, rate limits, or whether the task is synchronous or asynchronous beyond the wait parameter in the schema.

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 description is a single sentence and very concise. However, conciseness is slightly compromised by underspecification; it could be a bit more informative without becoming verbose.

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?

Given the complexity (11 parameters, no output schema, no annotations), the description is too brief. It fails to cover important contextual details such as the lifecycle of the task, expected behavior, or error handling.

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

Parameters3/5

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

Schema coverage is high (82%), so baseline is 3. The description adds no additional meaning beyond what the schema provides; it does not explain any parameters. For this score, it is adequate given the schema's own descriptions.

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 clearly states the tool creates a Kling task specifically for motion control, and mentions the output (task id, status, output URLs). However, it does not differentiate this tool from siblings like image_to_video or text_to_video, which are also video generation tasks.

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 guidance is provided on when to use this tool versus alternatives such as image_to_video or text_to_video. The description does not specify prerequisites, exclusions, or context where this tool should be preferred.

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

text_to_videoB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoGeneration mode.
waitNoPoll until the task reaches a terminal status.
modelNoRunAPI model slug for this model line.
promptNoVideo description. Required unless multi_shots is enabled.
cfg_scaleNoGuidance scale (0-1).
timeout_msNo
multi_shotsNoEnable multi-shot generation.
aspect_ratioNoOutput aspect ratio.
callback_urlNoWebhook URL for async notifications.
enable_soundNoEnable sound generation.
multi_promptNoPrompt segments for multi-shot mode.
kling_elementsNoElement references with image, video, or audio materials.
negative_promptNoNegative prompt.
duration_secondsNoDuration in seconds.
poll_interval_msNo
output_resolutionNoOutput resolution.
reference_video_urlNoPublic HTTP(S) MP4 or MOV reference video URL.
last_frame_image_urlNoLast frame image URL for single-shot mode.
reference_image_urlsNoOrdered public HTTP(S) JPG, JPEG, or PNG reference image URLs.
reference_video_typeNoUse the video as a base edit or feature reference.
first_frame_image_urlNoFirst frame image URL.
preserve_reference_video_audioNoPreserve the reference video's original audio.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided; description mentions returning task id, status, and output URLs but does not disclose async behavior, polling (via wait parameter), or side effects. Lacks detail on what happens behind the scenes.

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?

Single sentence, 15 words, directly states purpose. No unnecessary information.

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, no output schema, and no annotations, the description is too sparse to fully inform an agent. Lacks explanation of which parameters are essential, how the task lifecycle works, or common use patterns.

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

Parameters3/5

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

Schema coverage is 91% with descriptions on most parameters; the description adds no extra meaning beyond 'create a task'. Baseline of 3 is appropriate.

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 creates a Kling text-to-video task on RunAPI, which distinguishes it from siblings like image_to_video and extend_video.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives (e.g., image_to_video, motion_control). No context about prerequisites or exclusions.

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. Dates show when Glama detected each change.

  1. 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"
        +}
  2. 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"
        -]
  3. 1 tool updatev0.1.8
    • Addedlogin
  4. 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"
  5. 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.3/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: login for authentication, five different video generation types (ai_avatar, extend_video, image_to_video, motion_control, text_to_video), get_task for status retrieval, and check_pricing for cost lookup. No overlap in functionality.

Naming Consistency3/5

All names use lowercase with underscores, but the pattern is inconsistent: some are verb_noun (extend_video, get_task, check_pricing) while others are just task type names (ai_avatar, image_to_video, motion_control, text_to_video). This mixed convention could cause minor confusion about which are actions vs. resource types.

Tool Count4/5

With 8 tools, the server covers authentication, five distinct generation operations, status retrieval, and pricing. This is a reasonable scope for a video generation API, though slightly on the higher side but still well-scoped.

Completeness3/5

Core operations are present: login, generation, status, pricing. However, missing cancel or delete for tasks, and there is no listing of past tasks. These gaps may force agents to rely on external tracking or default to polling, limiting workflow completeness.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/runapi-ai/kling-mcp'

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