MCP server for WanAPIs image and video generation. One key, every model.
Server has 5 tools with complete input schemas and descriptions. Naming follows verb_noun pattern (generate_*, check_*, estimate_*, list_*). Descriptions are detailed (100-300 chars) and explain WHEN to use each tool. However, parameter descriptions are sparse or missing for several fields (e.g., 'aspect' lacks format guidance, 'reference_images' lacks type clarity). Output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal; no recovery guidance or categorization. Security: API key injected via env var (correct), but no audit logging or permission gates visible. Composition is sound: tools chain logically (generate → check_task → download). Idempotency not addressed for async operations.
Check an async generation task. Returns status, progress, the real cost once billed, and media URLs when done. IMPORTANT: media URLs require your WanAPIs key — opening one in a browser returns 401, so do not hand the raw URL to a user. Pass save_dir to download the files locally instead. URLs also stop working once the upstream result expires (~24h).
Estimate what a generation will cost before running it. Prices come from the live WanAPIs pricing feed, so they match what you will actually be billed.
Generate an image with WanAPIs. Returns image URLs directly if it finishes quickly, otherwise a job_id to poll with wanapis_check_task (generation can take 1-5 minutes). Midjourney returns 4 images per call (its 2x2 grid, split). Models: gpt-image-2 (主力模型,同步返回); gpt-image-2-official (异步高清,支持 quality/resolution 分档); seedream-5-0-pro (Seedream 最强,1K/2K 分档); seedream-5-0-lite (Seedream 轻量); seedream-4-5 (Seedream 4.5); nano-banana-pro (Gemini 3 Pro Image,1K/2K/4K); nano-banana-2 (Gemini 3.1 Flash Image); midjourney (一次出 4 张(2x2 四宫格拆分))
Start a video generation. Returns a task_id immediately — video takes ~100s, so poll wanapis_check_task until status is completed. Models: seedance-2.5 (最新一代,画质与一致性最好); seedance-2.0 (标准版,质量优先); seedance-2.0-fast (速度版,适合草稿); seedance-2.0-mini (最便宜,适合大批量试稿); veo3.1-quality (Google Veo 3.1,4K + 同步音频); veo3.1-fast (Veo 3.1 速度档); veo3.1-lite (Veo 3.1 最低价); kling-v3 (可灵 v3,人物动作最自然); kling-v2-6 (可灵 2.6,性价比档); viduq3 (Vidu Q3); happyhorse-1.0 (阿里 ATH); grok-video (xAI,固定 6 秒)
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). wanapis_check_task returns 'status, progress, cost, media URLs' but schema is absent. wanapis_list_models returns model list but structure undefined.
Parameter descriptions lack format/constraint guidance. 'aspect' (e.g., '1:1, 16:9, 9:16') should specify allowed formats or regex. 'reference_images' array items are strings but no URL format validation stated. 'seconds' is unbounded (default 5, typical 4-15) but no min/max specified.
Error handling is minimal. No recovery guidance (e.g., 'If task not found, call wanapis_list_models to verify model exists'). No error categorization (retryable vs fatal). Code shows fail() returns raw error string with no actionable next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
List available image and video models with pricing and notes.
Async job tracking (wanapis_generate_image) uses in-memory Map with 30-min TTL. Process restart loses all job state. No idempotency guarantee, if agent retries a generate call, it may submit twice. No deduplication key or request ID tracking visible.
No audit logging or permission gates. API key is server-side (correct), but no trace of who called what tool, when, or with what parameters. Destructive operations (generate_image, generate_video) have no confirmation step or dry-run mode.