Model Context Protocol (MCP) server for kie.ai — gives Claude and other MCP clients access to kie.ai's unified AI API: image, video, music, and chat models (Veo, Runway, Kling, Flux, Nano Banana, Seedream, Suno, GPT, Claude, Gemini, and more).
kie-mcp demonstrates solid tool design with 20 well-named, action-verb tools covering a coherent domain (AI generation and chat). All tools have descriptions (avg 150 chars) and input schemas with typed parameters. Naming follows verb_noun convention (kie_get_*, kie_generate, kie_create_task). However, output schemas are undocumented, responses are not formally specified, forcing LLMs to infer structure. Parameter descriptions are present but often lack constraints (enums, ranges, formats). Error handling is minimal; no recovery guidance or actionable error messages visible. Some tools expose implementation details (taskId polling, callback URLs) that could be abstracted. Composition is strong: tools chain logically (list_models → get_model_schema → generate), and responses include necessary IDs for downstream calls.
Convert a GPT-4o image result URL into a direct download link (POST /api/v1/gpt4o-image/download-url).
Generate an image from a prompt, or edit images (pass filesUrl), using GPT-4o image (POST /api/v1/gpt4o-image/generate). size is the aspect ratio: '1:1', '3:2', or '2:3'. Waits for the result image URL.
Query a GPT-4o image task's status and result (GET /api/v1/gpt4o-image/record-info).
Send a chat conversation to a kie.ai text model and get the reply. Supports OpenAI-style models (GPT, Gemini) and Claude. Known models: gpt-5-2, gpt-5-4, gpt-5-5, gemini-3-pro, gemini-3-1-pro, gemini-3-flash, gemini-3-5-flash, gemini-2-5-pro, gemini-2-5-flash, claude-opus-4-8, claude-opus-4-6, claude-sonnet-4-6, claude-haiku-4-5 (any valid kie chat model id works). Note: this is separate from media generation — use kie_generate for images/video/music.
Submit a job to any kie.ai market model via POST /api/v1/jobs/createTask and return the taskId immediately, without waiting. Use kie_get_task to poll for the result, or prefer kie_generate to submit and wait in one call.
Output schemas undocumented. No formal specification of response structure (fields, types, pagination). LLMs must infer what kie_generate returns or what kie_list_models yields.
Parameter constraints missing. Many numeric/string params lack enums, ranges, or format specs. E.g., waitSeconds has no min/max; temperature has no range; model accepts free-form strings instead of enum.
No error recovery guidance. Tools lack actionable error messages. E.g., if kie_generate fails, no guidance on retry, timeout, or next steps. No error classification (retryable vs fatal).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 71 | 2026-07-28+ | v2 |
Generate a new image from a prompt, or edit an existing image (pass inputImage), using Flux Kontext (POST /api/v1/flux/kontext/generate). Models: 'flux-kontext-pro' (default) or 'flux-kontext-max'. Waits for the result image URL.
Query a Flux Kontext task's status and result image (GET /api/v1/flux/kontext/record-info).
Run any kie.ai market model end-to-end: submit the job and poll until it finishes, returning the output URL(s). This is the primary tool for image/video/music generation. Find a modelId with kie_list_models and its inputs with kie_get_model_schema. Video/music jobs can take minutes — if the wait budget is exceeded it returns the taskId so you can resume with kie_get_task.
Return the remaining credit balance for your kie.ai account (GET /api/v1/chat/credit).
Convert a kie.ai-generated file URL into a temporary direct-download link (valid ~20 minutes) via POST /api/v1/common/download-url. Only works for files generated by kie.ai (external URLs are rejected).
Return the input fields (names, types, required, defaults, allowed values) and an example input for a specific market model, so you can build a correct `input` object for kie_generate / kie_create_task. Identify the model by its `modelId` (e.g. 'google/nano-banana') or its docs path. Set fresh=true to fetch the latest schema directly from the live kie.ai documentation.
Query the status and result of a market task created via kie_create_task or kie_generate (GET /api/v1/jobs/recordInfo). Returns state (waiting | queuing | generating | success | fail), the output URLs/object when finished, and credit usage.
Search the catalog of kie.ai 'market' models (image, video, and music generators reachable via the unified jobs API). Returns each model's exact `modelId` (pass it to kie_generate), label, category, and summary. Filter by category ('image' | 'video' | 'music') and/or a free-text search (vendor or capability, e.g. 'kling', 'nano banana', 'text to video', 'upscale').
Generate a video from a text prompt or image using Runway (POST /api/v1/runway/generate). Waits for the result video URL.
Query a Runway task's status and result video (GET /api/v1/runway/record-info).
Generate music from a text prompt using Suno (POST /api/v1/suno/generate). Waits for the result audio URL.
Query a Suno task's status and result audio (GET /api/v1/suno/record-info).
Upload a file to kie.ai's hosting and get back a public URL you can pass as an image/video/audio input to other tools. Provide either `fileUrl` (to fetch & re-host a remote file) or `base64Data` (raw base64 or a data: URI). Useful for turning a local/base64 image into a URL for image-to-image or image-to-video models.
Generate a video from a text prompt or image using Google Veo (POST /api/v1/veo/generate). Waits for the result video URL.
Query a Veo task's status and result video (GET /api/v1/veo/record-info).
Polling pattern exposed to LLM. Tools like kie_get_task, kie_veo_get, kie_runway_get require manual polling with taskId. Should abstract into wait-for-completion or offer async callback pattern transparently.
Duplicate tool sets for different models. kie_veo_generate/get, kie_runway_generate/get, kie_suno_generate/get, kie_flux_kontext_generate/get, kie_4o_image_generate/get are near-identical. Should consolidate into kie_generate with model selection.