wan-mcp
The wan-mcp server gives AI agents direct access to Wan AI models for image/video generation, editing, and animation via RunAPI. Key capabilities:
Authenticate (
login): Browser-based PKCE OAuth flow to save credentials locally; headless/CI environments can use theRUNAPI_API_KEYenv var instead.Animate images (
animate): Create animation tasks from source images using models likewan-2.2-animate-moveorwan-2.2-animate-replace.Edit videos (
edit_video): Apply prompt-driven edits to existing videos using models likewan-2.6-edit-videoorwan-2.7-edit-video, supporting resolutions up to 1080p.Image to video (
image_to_video): Generate videos from a first-frame image across 5 model variants, with control over duration, resolution, and optional audio.Speech/audio to video (
speech_to_video): Generate video from a source image and audio file.Text to image (
text_to_image): Create images from text prompts with aspect ratio options and resolutions up to 4K.Text to video (
text_to_video): Produce videos from text prompts with duration (2–10 seconds), aspect ratio, and resolution controls across 5 model variants.Poll task status (
get_task): Fetch status and output URLs for any previously created task by ID. Each creation tool can also wait for completion or return a task ID for later polling.Check pricing (
check_pricing): Look up current pricing for any Wan model and endpoint — no authentication required.
Supports 18 model variants across 6 endpoints (Wan 2.2–2.7) and integrates with MCP clients like Claude, Cursor, Windsurf, VS Code, and more.
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., "@wan-mcpgenerate a video of a cat dancing"
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/wan-mcp is a focused Model Context Protocol server for the Wan model line on RunAPI.
It gives MCP-compatible assistants direct access to 6 endpoints and 18 model variants without loading the full RunAPI catalog.
Use this per-model server when an agent should stay scoped to Wan. Use @runapi.ai/mcp when one assistant should discover every RunAPI model line.
Related MCP server: @runapi.ai/gpt-4o-image-mcp
Install
Add it to Claude Code:
claude mcp add wan -s user -- npx -y @runapi.ai/wan-mcpUse project scope when the server should be shared with a repository:
claude mcp add wan -s project -- npx -y @runapi.ai/wan-mcpCodex, Cursor, Windsurf, VS Code, Roo Code, and other MCP hosts can use the same stdio command:
{
"mcpServers": {
"wan": {
"command": "npx",
"args": ["-y", "@runapi.ai/wan-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 Wan animate task and optionally wait for a terminal status. Returns the task id, status, and output URLs. |
| Yes | Create a Wan edit video task and optionally wait for a terminal status. Returns the task id, status, and output URLs. |
| Yes | Create a Wan image to video task and optionally wait for a terminal status. Returns the task id, status, and output URLs. |
| Yes | Create a Wan speech to video task and optionally wait for a terminal status. Returns the task id, status, and output URLs. |
| Yes | Create a Wan text to image task and optionally wait for a terminal status. Returns the task id, status, and output URLs. |
| Yes | Create a Wan 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 Wan model and endpoint. |
Models
Wan covers 18 model variants across 6 endpoints. Each tool accepts the models listed for it:
Tool | Models |
|
|
|
|
|
|
|
|
|
|
|
|
Model availability can change between releases. Use check_pricing or the Wan 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 Wan animate task with RunAPI.The assistant can call check_pricing, then animate, 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 Wan pricing, then create the task if it matches my request.The assistant calls check_pricing and can link to the Wan 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 |
Wan model page | |
npm package | |
GitHub repository | |
RunAPI MCP overview | |
RunAPI docs |
License
Licensed under the Apache License, Version 2.0.
Available Tools
9 toolsanimateC
Create a Wan task on RunAPI (animate). 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. | |
| timeout_ms | No | ||
| callback_url | No | ||
| poll_interval_ms | No | ||
| source_image_url | Yes | ||
| output_resolution | No | ||
| reference_video_url | Yes | ||
| enable_safety_checker | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only mentions the return values ('task id, status, and output URLs'). It does not explain that this is an asynchronous task creation, how the 'wait' parameter affects execution, whether it modifies resources, or any rate limits or safety implications. This leaves significant behavioral ambiguity.
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, front-loaded sentence that gets straight to the point. It efficiently states the action and the primary return values without filler. However, given the tool's complexity, the brevity may be excessive, but as a concise statement it earns a high score.
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?
This is a 9-parameter task-creation tool with no output schema and no annotations, yet the description is only one sentence. It does not cover input/output details, asynchronous behavior, or any operational context. For a tool of this complexity, the description is completely inadequate, leaving the agent without essential information to invoke it correctly.
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?
The description provides zero information about the 9 parameters, and schema description coverage is only 22%. It does not explain the required parameters (source_image_url, reference_video_url) or options like output_resolution, model, or wait. The description fails to compensate for the low schema coverage, leaving parameter meaning largely undocumented.
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 action: 'Create a Wan task on RunAPI (animate)' and specifies the return values: 'task id, status, and output URLs.' This distinguishes it from sibling tools like text_to_video or image_to_video by emphasizing the Wan model and animation focus, though it could be more explicit about the animation-specific use case.
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 like image_to_video or text_to_video. It does not mention prerequisites, use cases, or situations where another tool would be more appropriate, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_pricingB
Look up RunAPI pricing for the wan 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, the description carries full burden. It only says 'look up pricing' without mentioning behavioral details such as default parameter behavior (e.g., defaults to primary model and endpoint), output format, or any constraints like rate limits or authentication needs.
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, front-loaded sentence that conveys the core purpose efficiently. However, slightly more detail could be added 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?
For a simple lookup tool, the description is adequate but lacks details about the output format and any potential edge cases. Given the absence of an output schema, the description could be more complete.
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%, so parameters are fully documented in the schema. The description adds no additional meaning beyond what the schema already provides, meeting the baseline expectation.
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 specific action 'look up pricing' and the resource 'RunAPI pricing for the wan model line'. This distinguishes it from sibling tools which are focused on content generation or task retrieval.
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 explicit guidance on when to use this tool versus alternatives is provided. While it is the only pricing tool among siblings, the description does not clarify usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_videoC
Create a Wan task on RunAPI (edit video). Returns a task id, status, and output URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| wait | No | Poll until the task reaches a terminal status. | |
| audio | No | ||
| model | No | RunAPI model slug for this model line. | |
| prompt | No | ||
| watermark | No | ||
| timeout_ms | No | ||
| multi_shots | No | ||
| aspect_ratio | No | ||
| callback_url | No | ||
| audio_setting | No | ||
| negative_prompt | No | ||
| duration_seconds | No | ||
| poll_interval_ms | No | ||
| source_video_url | No | ||
| output_resolution | No | ||
| source_video_urls | No | ||
| reference_image_url | No | ||
| enable_safety_checker | No | ||
| enable_prompt_expansion | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It mentions task creation and return values, but omits crucial behaviors like asynchronous task processing (requiring polling via get_task), reliance on specific input parameters (e.g., source_video_url), potential side effects, or rate limits. The phrase 'Create a Wan task' hints at asynchrony but does not clarify the wait/polling mechanism.
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 concise single sentence that front-loads the purpose and key outputs. It avoids unnecessary verbosity. While it is sparse, the brevity is appropriate for this dimension, and the structure uses a clear cause-effect format: what it does and what it returns.
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 (20 parameters, no annotations, no output schema), the description is far from complete. It does not explain required inputs, the asynchronous workflow, output format details, or how it interacts with sibling tools like get_task. An agent cannot correctly invoke this tool based solely on the description and schema.
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?
The schema description coverage is only 10% (2 of 20 parameters have descriptions). The tool description adds no parameter explanations whatsoever, leaving critical inputs such as source_video_url, prompt, duration_seconds, and output_resolution undefined. This is inadequate for a 20-parameter tool; the description must compensate for schema gaps but does not.
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: 'Create a Wan task on RunAPI (edit video).' It specifies the verb ('Create'), resource ('Wan task on RunAPI'), and scope ('edit video'), differentiating it from sibling tools like text_to_video and image_to_video. The return values (task id, status, output URLs) are also explicitly mentioned.
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 editing videos via the parenthetical '(edit video)', but it does not explicitly state when to use it versus alternatives or provide exclusions. There is no mention of prerequisites, such as needing a source video, or when a different tool (e.g., 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.
get_taskB
Fetch the current status and latest result payload for a wan 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, so the description carries the full burden of behavioral disclosure. While 'fetch' implies a read operation, the description doesn't state that it is read-only, how errors are handled (e.g., task not found), or whether any authentication is required. This is minimal at best.
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, front-loaded sentence with zero filler. It states the action and the object of the action efficiently, earning a perfect score for 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?
With no output schema, the description should explain return values more thoroughly. It mentions status and latest result payload but doesn't address possible states like 'running' or 'failed,' nor does it clarify what happens when no payload exists. Adequate but incomplete for a status-checking tool.
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% with both parameters already described. The description adds no additional meaning beyond the schema, so the baseline of 3 is appropriate; it does not enhance understanding of task_id or action.
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 uses a specific verb 'Fetch' and clearly names the resource: 'current status and latest result payload for a wan task.' This distinguishes it from sibling creation tools like text_to_video and animate, which are clearly not retrieval operations.
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?
There is no explicit guidance on when to use this tool vs. alternatives. The description does not mention that it should be used after creating a task or that it is the polling mechanism for async operations, leaving the usage context implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
image_to_videoC
Create a Wan task on RunAPI (image to video). Returns a task id, status, and output URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| wait | No | Poll until the task reaches a terminal status. | |
| audio | No | ||
| model | No | RunAPI model slug for this model line. | |
| ratio | No | ||
| prompt | No | ||
| watermark | No | ||
| timeout_ms | No | ||
| multi_shots | No | ||
| acceleration | No | ||
| aspect_ratio | No | ||
| callback_url | No | ||
| negative_prompt | No | ||
| duration_seconds | No | ||
| poll_interval_ms | No | ||
| source_video_url | No | ||
| driving_audio_url | No | ||
| output_resolution | No | ||
| background_audio_url | No | ||
| last_frame_image_url | No | ||
| enable_safety_checker | No | ||
| first_frame_image_url | No | ||
| enable_prompt_expansion | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It mentions creating a task and returning a task id, status, and output URLs, hinting at asynchronous behavior, but fails to disclose auth requirements, side effects, cost implications, or the nature of the task creation. This is minimal and leaves critical behavioral questions unanswered.
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, front-loaded sentence that efficiently communicates the tool's core action and return value. It contains no unnecessary verbiage, though its brevity comes at the cost of substance. As a concise statement, it is appropriately sized, but not particularly detailed.
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?
For a tool with 23 parameters, no output schema, and no annotations, this description is grossly incomplete. It explains almost nothing about the task lifecycle, required inputs, available models, or result structure. Agents would be left guessing about how to properly invoke and interpret the tool.
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 only 9% (2 of 23 parameters described). The description adds no parameter details whatsoever, leaving the agent without any understanding of key parameters like prompt, seed, aspect_ratio, or output_resolution. The description fails to compensate for the sparse schema information.
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 'Wan task on RunAPI', and the specific scope '(image to video)'. It effectively distinguishes from sibling tools like text_to_video and speech_to_video through the explicit image-to-video parenthetical.
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 primary use case (image-to-video generation) but provides no explicit guidance on when to choose this tool over alternatives like text_to_video or speech_to_video. It lacks mention of exclusions or alternative tool recommendations.
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?
No annotations are provided, so the description carries the full burden. It discloses opening a browser, performing PKCE flow, and saving a config file. However, it does not mention side effects (e.g., overwriting existing config), whether the tool blocks, or security implications. Adequate but not exhaustive.
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. It efficiently conveys the main action (authentication) and key detail (config file location).
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?
For a simple tool with one optional boolean parameter and no output schema, the description covers the process (browser, PKCE, config save) and parameter behavior. It lacks mention of return value or error cases, but these are implied given the tool's nature.
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% (one parameter with description). The description does not add meaning beyond the schema; it repeats the parameter's purpose. Baseline 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 it authenticates RunAPI via a PKCE login flow and saves the API key to a specific config file. The verb 'Authenticate' and resource 'RunAPI' are specific, and the method (browser PKCE flow) distinguishes it from sibling tools which are unrelated (animate, check_pricing, etc.).
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 used for authentication before other tools, but it does not explicitly state when to use it versus alternatives, nor does it provide exclusions or prerequisites. Given no sibling overlaps, it's adequate but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
speech_to_videoB
Create a Wan task on RunAPI (speech to video). Returns a task id, status, and output URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| wait | No | Poll until the task reaches a terminal status. | |
| model | No | RunAPI model slug for this model line. | |
| shift | No | ||
| prompt | Yes | ||
| num_frames | No | ||
| timeout_ms | No | ||
| callback_url | No | ||
| guidance_scale | No | ||
| negative_prompt | No | ||
| poll_interval_ms | No | ||
| source_audio_url | Yes | ||
| source_image_url | Yes | ||
| frames_per_second | No | ||
| output_resolution | No | ||
| num_inference_steps | No | ||
| enable_safety_checker | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool creates a task and returns a task id, status, and output URLs, which implies an asynchronous workflow. However, it does not mention side effects, safety, permissions, or the task lifecycle beyond the return values.
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 two sentences, front-loaded with the primary action, and contains no redundant information. Every word contributes to understanding the tool's core purpose and output.
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?
For a tool with 17 parameters, no annotations, and no output schema, the description is severely lacking. It does not explain the task-based workflow, polling behavior (wait parameter), callback_url usage, or any prerequisites. The agent would struggle to invoke this correctly without additional context.
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 only 12%, with only wait and model having descriptions. The tool description does not explain any parameters, including the required source_image_url, source_audio_url, and prompt. It adds minimal value beyond the schema, leaving 88% of parameters underspecified.
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' and the resource 'Wan task', and explicitly identifies it as 'speech to video'. This distinguishes it from sibling tools like image_to_video and text_to_video, making the purpose 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?
There is no guidance on when to use this tool versus alternatives such as image_to_video or text_to_video. No context or exclusions are provided, leaving the agent to infer usage solely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_to_imageB
Create a Wan task on RunAPI (text to image). Returns a task id, status, and output URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| wait | No | Poll until the task reaches a terminal status. | |
| model | No | RunAPI model slug for this model line. | |
| prompt | No | ||
| bbox_list | No | ||
| watermark | No | ||
| timeout_ms | No | ||
| aspect_ratio | No | ||
| callback_url | No | ||
| output_count | No | ||
| color_palette | No | ||
| thinking_mode | No | ||
| poll_interval_ms | No | ||
| enable_sequential | No | ||
| output_resolution | No | ||
| source_image_urls | No | ||
| enable_safety_checker | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. It reveals the async task-based nature and mentions the return fields (task id, status, output URLs). However, it omits important behavioral context such as cost implications, authentication requirements, safety checker defaults, or rate limiting.
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, efficient sentence with no filler or repetition. It clearly states purpose and return values, though it could be more expansive given the tool's complexity. As conciseness measures efficiency, it scores well despite being underspecified.
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 17 parameters, no annotations, and no output schema, the description is far from complete. It does not explain the many optional parameters, default behavior, or potential pitfalls, making it insufficient for an agent to use this tool correctly in a real scenario.
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 only 12% (only wait and model have descriptions). The description itself adds no parameter semantics for the other 15 parameters, leaving the agent to guess the meaning and usage of fields like bbox_list, color_palette, thinking_mode, and enable_sequential.
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 states a specific action ('Create a Wan task on RunAPI') with a clear resource ('text to image') and return values (task id, status, output URLs). It distinguishes this from sibling tools like text_to_video or image_to_video by explicitly naming the text-to-image use case.
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?
There is no guidance on when to use this tool versus alternatives such as text_to_video or animate. No prerequisites, exclusions, or typical use cases are mentioned, leaving the agent to infer usage from the name alone.
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 Wan task on RunAPI (text to video). Returns a task id, status, and output URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| wait | No | Poll until the task reaches a terminal status. | |
| model | No | RunAPI model slug for this model line. | |
| ratio | No | ||
| prompt | No | ||
| watermark | No | ||
| timeout_ms | No | ||
| acceleration | No | ||
| aspect_ratio | No | ||
| callback_url | No | ||
| negative_prompt | No | ||
| duration_seconds | No | ||
| poll_interval_ms | No | ||
| output_resolution | No | ||
| reference_audio_url | No | ||
| background_audio_url | No | ||
| reference_image_urls | No | ||
| reference_video_urls | No | ||
| enable_safety_checker | No | ||
| first_frame_image_url | No | ||
| enable_prompt_expansion | No |
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 mentions the return value (task id, status, output URLs) but does not disclose that this is an asynchronous operation, potential side effects like costs or rate limits, or prerequisites such as authentication. The absence of these details for a task-creating tool is a significant gap.
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, front-loaded sentence with no waste, but it is under-specified for a tool with 21 parameters and complex behavior. It is concise but not appropriately sized to convey necessary information, making it borderline adequate.
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 high complexity (21 parameters, no output schema, no annotations), the description is far from complete. It only covers the high-level purpose and return format, omitting usage context, parameter guidance, and behavioral details that are critical for 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 only 10%, so the description must compensate by explaining key parameters. It does not mention any parameter semantics, leaving most of the 21 parameters undocumented in both the schema and description. This fails to add meaningful value beyond the bare schema.
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 states a specific verb ('Create') and resource ('Wan task on RunAPI') with an explicit scope ('text to video'). It clearly distinguishes this from sibling tools like image_to_video and speech_to_video by naming the modality.
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 this tool is for text-to-video generation, but it does not explicitly state when to use it over alternatives or provide exclusions. The context signals show many sibling tools, so more guidance on selection would be helpful, but the purpose is clear enough that usage is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have clearly distinct purposes: login, pricing, task status, and six different task creation types. The main potential confusion is between 'animate' and other creation tools, but descriptions clarify the specific task type.
The naming pattern is mostly verb_noun with underscores (get_task, check_pricing, image_to_video, etc.). However, 'animate' breaks the pattern by being just a verb, and 'login' is not verb_noun either, creating minor inconsistency.
Nine tools is well-scoped for a video/image generation server: one auth, one pricing, one status retrieval, and six creation endpoints. Each tool serves a distinct purpose without redundancy.
The core workflow is covered: login, create tasks via multiple modes, and check task status/results. Missing list/cancel/delete operations could be minor gaps, but the main task lifecycle is sufficiently covered.
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
MCP server for Wan AI video generation
MCP server for Hailuo (MiniMax) AI video generation
MCP server for Google Veo AI video generation
MCP server for Kling AI video generation
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for the Gemini Omni model line, enabling task creation (audio, character, text-to-video) and pricing checks through RunAPI.670Apache 2.0
- AlicenseAqualityAmaintenanceMCP server for GPT-4o Image model line, enabling text-to-image task creation, status polling, and pricing checks via RunAPI.4110Apache 2.0
- AlicenseBqualityAmaintenanceMCP server for Ideogram V3 model line enabling image editing, reframing, remixing, and text-to-image generation with task polling and pricing checks through RunAPI.766Apache 2.0
- AlicenseAqualityAmaintenanceMCP server for the InfiniteTalk model line, enabling audio-to-video task creation, status polling, and pricing checks via a RunAPI API key.464Apache 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/wan-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server