kling-mcp
This MCP server enables AI agents to interact with Kling video generation models via RunAPI, providing tools to create video tasks, monitor results, and query pricing through a standardized interface.
Text-to-Video (
text_to_video): Generate videos from text prompts using models likekling-3.0orkling-v2.5-turbo, with options for duration (3–15s), aspect ratio, output resolution (up to 4K), sound, and multi-shot support.Image-to-Video (
image_to_video): Convert a static image into a video by supplying a prompt and first frame image URL, with optional duration (5 or 10s) and CFG scale settings.Motion Control (
motion_control): Generate videos with motion control by combining a source image and reference video, with options for output resolution (720p/1080p) and background source.AI Avatar (
ai_avatar): Generate avatar videos from a prompt, source audio URL, and source image URL, using models likekling-ai-avatar-proorkling-ai-avatar-standard.Get task status (
get_task): Retrieve the current status and output URLs for any previously created task by its ID.Check pricing (
check_pricing): Look up current pricing for any Kling model and endpoint — no API key required.Optional waiting: All creation tools support a
waitparameter (defaulttrue) to poll until completion, orwait: falseto submit and return the task ID immediately.
Only the RUNAPI_API_KEY environment variable is needed for authentication; pricing queries work without a key.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@kling-mcpCreate a text-to-video task with kling-3.0"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-mcpUse project scope when the server should be shared with a repository:
claude mcp add kling -s project -- npx -y @runapi.ai/kling-mcpCodex, 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 |
| Yes | Create a Kling ai avatar task and optionally wait for a terminal status. Returns the task id, status, and output URLs. |
| Yes | Create a Kling extend video task and optionally wait for a terminal status. Returns the task id, status, and output URLs. |
| Yes | Create a Kling image to video task and optionally wait for a terminal status. Returns the task id, status, and output URLs. |
| Yes | Create a Kling motion control task and optionally wait for a terminal status. Returns the task id, status, and output URLs. |
| Yes | Create a Kling text to video task and optionally wait for a terminal status. Returns the task id, status, and output URLs. |
| Yes | Fetch the current status and latest payload for an existing task. |
| 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 |
|
|
|
|
|
|
|
|
|
|
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:
RUNAPI_API_KEYenvironment variable, useful for headless and CI hosts~/.config/runapi/config.json, created by the MCPlogintool orrunapi loginNo 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.
Links
Resource | URL |
Kling model page | |
npm package | |
GitHub repository | |
RunAPI MCP overview | |
RunAPI docs |
License
Licensed under the Apache License, Version 2.0.
Available Tools
8 toolsai_avatarB
Create a Kling task on RunAPI (ai avatar). Returns a task id, status, and output URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| wait | No | Poll until the task reaches a terminal status. | |
| model | No | RunAPI model slug for this model line. | |
| prompt | Yes | Description of the avatar. | |
| timeout_ms | No | ||
| callback_url | No | Webhook URL for async notifications. | |
| poll_interval_ms | No | ||
| source_audio_url | Yes | Audio URL for lip sync. | |
| source_image_url | Yes | Face image URL. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model slug. Defaults to the line's primary model. | |
| action | No | Endpoint name. Defaults to the endpoint that offers the model. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Extension quality mode. | |
| wait | No | Poll until the task reaches a terminal status. | |
| model | No | RunAPI model slug for this model line. | |
| prompt | No | Optional description for the continuation. | |
| timeout_ms | No | ||
| callback_url | No | Webhook URL for async notifications. | |
| source_task_id | Yes | Completed Kling v2.5 Turbo source task ID. | |
| poll_interval_ms | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Asynchronous endpoint the task was created on. | |
| task_id | Yes | Task id returned when the task was created. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Generation mode. | |
| wait | No | Poll until the task reaches a terminal status. | |
| model | No | RunAPI model slug for this model line. | |
| prompt | Yes | Video description; reference media with matching numbered markers. | |
| cfg_scale | No | Guidance scale (0-1). | |
| timeout_ms | No | ||
| aspect_ratio | No | Output aspect ratio. | |
| callback_url | No | Webhook URL for async notifications. | |
| enable_sound | No | Sound generation must remain disabled. | |
| negative_prompt | No | Negative prompt. | |
| duration_seconds | No | Duration in seconds. | |
| poll_interval_ms | No | ||
| output_resolution | No | Output resolution. | |
| reference_video_url | No | Public HTTP(S) MP4 or MOV reference video URL; cannot be combined with last_frame_image_url. | |
| last_frame_image_url | No | Public HTTP(S) JPG, JPEG, or PNG final-frame image URL; cannot be combined with reference_image_urls or reference_video_url. | |
| reference_image_urls | No | Ordered public HTTP(S) JPG, JPEG, or PNG reference image URLs; cannot be combined with last_frame_image_url. | |
| reference_video_type | No | Use the video as a base edit or feature reference. | |
| first_frame_image_url | Yes | Public HTTP(S) JPG, JPEG, or PNG first-frame image URL. | |
| preserve_reference_video_audio | No | Preserve the reference video's original audio. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Re-run browser login when the current credential comes from the local config file. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| wait | No | Poll until the task reaches a terminal status. | |
| model | No | RunAPI model slug for this model line. | |
| prompt | No | Description prompt. | |
| timeout_ms | No | ||
| callback_url | No | Webhook URL for async notifications. | |
| poll_interval_ms | No | ||
| source_image_url | Yes | Subject image URL. | |
| background_source | No | Background source. | |
| output_resolution | No | Output resolution. | |
| reference_video_url | Yes | Reference motion video URL. | |
| character_orientation | No | Character orientation. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Generation mode. | |
| wait | No | Poll until the task reaches a terminal status. | |
| model | No | RunAPI model slug for this model line. | |
| prompt | No | Video description. Required unless multi_shots is enabled. | |
| cfg_scale | No | Guidance scale (0-1). | |
| timeout_ms | No | ||
| multi_shots | No | Enable multi-shot generation. | |
| aspect_ratio | No | Output aspect ratio. | |
| callback_url | No | Webhook URL for async notifications. | |
| enable_sound | No | Enable sound generation. | |
| multi_prompt | No | Prompt segments for multi-shot mode. | |
| kling_elements | No | Element references with image, video, or audio materials. | |
| negative_prompt | No | Negative prompt. | |
| duration_seconds | No | Duration in seconds. | |
| poll_interval_ms | No | ||
| output_resolution | No | Output resolution. | |
| reference_video_url | No | Public HTTP(S) MP4 or MOV reference video URL. | |
| last_frame_image_url | No | Last frame image URL for single-shot mode. | |
| reference_image_urls | No | Ordered public HTTP(S) JPG, JPEG, or PNG reference image URLs. | |
| reference_video_type | No | Use the video as a base edit or feature reference. | |
| first_frame_image_url | No | First frame image URL. | |
| preserve_reference_video_audio | No | Preserve the reference video's original audio. |
TDQS
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.
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.
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.
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.
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.
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.
7 tool updates
v0.1.13- Changed
ai_avatar4 fields changed- added
Input schema / properties / callback_url / descriptionAdded value: +"Webhook URL for async notifications." - added
Input schema / properties / prompt / descriptionAdded value: +"Description of the avatar." - added
Input schema / properties / source_audio_url / descriptionAdded value: +"Audio URL for lip sync." - added
Input schema / properties / source_image_url / descriptionAdded value: +"Face image URL."
- Changed
check_pricing2 fields changed- changed
Input schema / properties / action / enumPrevious 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" +] - changed
Input schema / properties / model / enumPrevious 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" +]
- Added
extend_video - Changed
get_task2 fields changed- changed
Input schema / properties / action / descriptionPrevious value: -"Endpoint the task was created on."New value: +"Asynchronous endpoint the task was created on." - changed
Input schema / properties / action / enumPrevious 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" +]
- Added
image_to_video - Changed
motion_control8 fields changed- added
Input schema / properties / background_source / descriptionAdded value: +"Background source." - added
Input schema / properties / callback_url / descriptionAdded value: +"Webhook URL for async notifications." - added
Input schema / properties / character_orientation / descriptionAdded value: +"Character orientation." - changed
Input schema / properties / model / enumPrevious value: -[ - "kling-3.0" -]New value: +[ + "kling-3.0", + "kling-v2.6" +] - added
Input schema / properties / output_resolution / descriptionAdded value: +"Output resolution." - added
Input schema / properties / prompt / descriptionAdded value: +"Description prompt." - added
Input schema / properties / reference_video_url / descriptionAdded value: +"Reference motion video URL." - added
Input schema / properties / source_image_url / descriptionAdded value: +"Subject image URL."
- Changed
text_to_video20 fields changed- added
Input schema / properties / aspect_ratio / descriptionAdded value: +"Output aspect ratio." - added
Input schema / properties / callback_url / descriptionAdded value: +"Webhook URL for async notifications." - added
Input schema / properties / cfg_scale / descriptionAdded value: +"Guidance scale (0-1)." - added
Input schema / properties / duration_seconds / descriptionAdded value: +"Duration in seconds." - added
Input schema / properties / enable_sound / descriptionAdded value: +"Enable sound generation." - added
Input schema / properties / first_frame_image_url / descriptionAdded value: +"First frame image URL." - added
Input schema / properties / kling_elements / descriptionAdded value: +"Element references with image, video, or audio materials." - added
Input schema / properties / last_frame_image_url / descriptionAdded value: +"Last frame image URL for single-shot mode." - added
Input schema / properties / modeAdded value: +{ + "description": "Generation mode.", + "enum": [ + "std", + "pro" + ], + "type": "string" +} - changed
Input schema / properties / model / enumPrevious 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" +] - added
Input schema / properties / multi_prompt / descriptionAdded value: +"Prompt segments for multi-shot mode." - added
Input schema / properties / multi_shots / descriptionAdded value: +"Enable multi-shot generation." - added
Input schema / properties / negative_prompt / descriptionAdded value: +"Negative prompt." - added
Input schema / properties / output_resolution / descriptionAdded value: +"Output resolution." - added
Input schema / properties / output_resolution / enumAdded value: +[ + "720p", + "1080p", + "4k" +] - added
Input schema / properties / preserve_reference_video_audioAdded value: +{ + "description": "Preserve the reference video's original audio.", + "type": "boolean" +} - added
Input schema / properties / prompt / descriptionAdded value: +"Video description. Required unless multi_shots is enabled." - added
Input schema / properties / reference_image_urlsAdded value: +{ + "description": "Ordered public HTTP(S) JPG, JPEG, or PNG reference image URLs.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / reference_video_typeAdded value: +{ + "description": "Use the video as a base edit or feature reference.", + "enum": [ + "base", + "feature" + ], + "type": "string" +} - added
Input schema / properties / reference_video_urlAdded value: +{ + "description": "Public HTTP(S) MP4 or MOV reference video URL.", + "type": "string" +}
4 tool updates
v0.1.9- Changed
ai_avatar1 field changed- changed
Input schema / requiredPrevious value: -[ - "prompt", - "source_audio_url", - "source_image_url" -]New value: +[ + "source_image_url", + "source_audio_url", + "prompt" +]
- Changed
check_pricing1 field changed- changed
Input schema / properties / model / enumPrevious 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" +]
- Removed
image_to_video - Changed
text_to_video2 fields changed- changed
Input schema / properties / model / enumPrevious 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" +] - removed
Input schema / properties / output_resolution / enumRemoved value: -[ - "720p", - "1080p", - "4k" -]
1 tool update
v0.1.8- Added
login
4 tool updates
v0.1.2- Changed
ai_avatar5 fields changed- added
Input schema / properties / callback_url / typeAdded value: +"string" - added
Input schema / properties / prompt / typeAdded value: +"string" - added
Input schema / properties / source_audio_url / typeAdded value: +"string" - added
Input schema / properties / source_image_url / typeAdded value: +"string" - added
Input schema / requiredAdded value: +[ + "prompt", + "source_audio_url", + "source_image_url" +]
- Changed
image_to_video7 fields changed- added
Input schema / properties / aspect_ratio / typeAdded value: +"string" - added
Input schema / properties / callback_url / typeAdded value: +"string" - added
Input schema / properties / first_frame_image_url / typeAdded value: +"string" - added
Input schema / properties / last_frame_image_url / typeAdded value: +"string" - added
Input schema / properties / negative_prompt / typeAdded value: +"string" - added
Input schema / properties / prompt / typeAdded value: +"string" - added
Input schema / requiredAdded value: +[ + "prompt", + "first_frame_image_url" +]
- Changed
motion_control5 fields changed- added
Input schema / properties / callback_url / typeAdded value: +"string" - added
Input schema / properties / prompt / typeAdded value: +"string" - added
Input schema / properties / reference_video_url / typeAdded value: +"string" - added
Input schema / properties / source_image_url / typeAdded value: +"string" - added
Input schema / requiredAdded value: +[ + "source_image_url", + "reference_video_url" +]
- Changed
text_to_video5 fields changed- added
Input schema / properties / callback_url / typeAdded value: +"string" - added
Input schema / properties / first_frame_image_url / typeAdded value: +"string" - added
Input schema / properties / last_frame_image_url / typeAdded value: +"string" - added
Input schema / properties / negative_prompt / typeAdded value: +"string" - added
Input schema / properties / prompt / typeAdded value: +"string"
6 tool updates
v0.1.1- First observed
ai_avatar - First observed
check_pricing - First observed
get_task - First observed
image_to_video - First observed
motion_control - First observed
text_to_video
TDQS
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.
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.
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.
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
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
Create and manage cinematic AI video renders through the Future Video Studio Agent API.
130+ AI models for image, video, music, and audio — 18 model families, one RunAPI account.
Run multi-step AI pipelines for video, image, audio and text: upload media, run, poll results.
- MorphedOAuthapp.morphed
Create AI images and videos, manage projects and credits, and use workspace campaign context.
Related MCP Servers
AlicenseAqualityBmaintenanceEnables AI video and image generation through the Runway API. Supports video generation from images and text prompts, image creation, video upscaling and editing, and task management.72522MIT- AlicenseBqualityAmaintenanceEnables interaction with ElevenLabs AI models (audio isolation, speech-to-text, text-to-dialogue, sound effects, text-to-speech) through RunAPI, supporting task creation, status polling, and pricing checks.884Apache 2.0
- AlicenseBqualityAmaintenanceEnables AI image and video generation tasks (text-to-image, image-to-video, edit, upscale, etc.) via RunAPI, with support for polling and pricing lookups.10280Apache 2.0
- AlicenseAqualityAmaintenanceEnables creating and polling Luma video modification tasks, fetching task status, and checking pricing via the RunAPI API.468Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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