kie-mcp
A comprehensive Model Context Protocol server for the kie.ai generation API. Gives Claude (and any MCP client) access to 54+ image models, 95+ video models, and 20+ audio tools with deep model intelligence built in.
Why this exists
Most MCPs are thin API wrappers. This one is different:
-
Vertical profiles (NEW in 5.0) β per-domain playbooks: profile_brief returns the intake questions a professional would ask, model routing per deliverable with live costs, per-model prompt formulas, and multi-tool workflows. Profiles double as MCP prompts (/kie-art:architecture in Claude Code). Verticals (10): architecture & interiors, video game assets, advertising & marketing, web & software product imagery, film & storyboarding, product photography & e-commerce, brand & graphic design, editorial & publishing, short-form social video, and audio branding & music.
-
Deep research embedded β Every major model has a research field with verdicts, prompt techniques, weaknesses, cost-efficiency analysis, and competitor comparisons. Researched by Averiguare, our model intelligence agent.
-
Cost-aware β Every model has pricing in credits and USD. The MCP tells you the cheapest option for your use case.
-
Smart filtering β list_models filter="lip sync" or filter="architecture" or filter="cheapest video" β searches across capability tags, descriptions, AND research fields.
-
Dual-mode transport β stdio for local Claude Code, HTTP Streamable for remote Cowork/cloud usage.
What you can do with it
Just ask Claude things like:
- "Generate a brand presentation board for a perfume launch" β picks GPT Image 2 (best for text-heavy layouts)
- "Make a 10s video of fruit scarecrows defending against crows, Pixar style" β recommends Veo 3.1 or Wan 2.7
- "Generate music for a fantasy adventure game" β Suno V5
- "Lip-sync this audio to my character image" β Kling AI Avatar or Infinitalk
- "Upscale this video to 4K" β Veo 4K upscale or Topaz
- "Replace the wall color in this room photo" β Flux Kontext Pro (best for surgical edits)
Model coverage
Image (54+)
- OpenAI: GPT Image 2 (NEW), GPT-4o Image, GPT Image 1.5
- Google: Nano Banana 2 / 2 Lite (NEW) / Pro / Edit / Original, Imagen 4 (Fast/Standard/Ultra)
- Black Forest Labs: Flux Kontext Pro/Max, Flux 2 Pro/Flex
- ByteDance: Seedream 3.0 / 4.0 / 4.5 / 5.0 Lite
- Alibaba: Wan 2.7 Image / Image Pro
- Ideogram: v3, Character, Edit, Remix, Reframe
- xAI Grok Imagine Image 2.0 (#2 Arena T2I + edit; free segment map β region-targeted edit chain; whole-image edits of ANY uploaded image)
- ByteDance Seedream 5.0 Pro (NEW β T2I/I2I + layer decomposition: split any image into layer files)
- Qwen Image 3.0 / 3.0 Pro (NEW β seed, negative prompts, 2K at the 1K price on standard)
- Others: Qwen/Qwen2, Z-Image, Grok Imagine 1.x, Recraft, Topaz
Video (95+)
- Google Veo 3.1: Quality / Fast / Lite (T2V + I2V), Extend, 1080p/4K upscale
- Alibaba HappyHorse: 1.1 (NEW β T2V/I2V/R2V with native audio + 7-language lip-sync), 1.0 (T2V/I2V/R2V/Video Edit)
- ByteDance Seedance: 2.5 (NEW β 30s single takes, live Aug 2026) / 2.0 / 2.0 Fast / 2.0 Mini / 1.5 Pro
- Kuaishou Kling: 3.0 Omni "O3" (NEW β per-shot multi_prompt scripting, 4K, video Transformation), 3.0, 3.0 Turbo, 2.6, V2.5 Turbo, V2.1 Master/Pro/Standard, AI Avatar
- Alibaba Wan: 3.0 + 3.0 Prime (NEW β unified prompt-or-media, audio), 2.7 (T2V/I2V/Edit/R2V), 2.6, 2.5, 2.2 Turbo, Animate
- MiniMax Hailuo: H3 (NEW β 2K + native stereo audio, image+video+audio references, firstβlast-frame I2V), 2.3 Pro/Standard, 02 Pro/Standard
- xAI Grok Imagine: Video 1.5 preview (NEW β I2V with native audio, cheapest audio video), T2V, I2V, Upscale, Extend
- Avatar / lip-sync: OmniHuman 1.5 (NEW β audio-driven full-body avatar + free subject-detection utility), Volcengine Video Lip-Sync (NEW β re-dub existing footage), Kling AI Avatar, Infinitalk
- PixVerse V6 (NEW): T2V, I2V (viral templates), Transition (firstβlast morph), Fusion R2V (@ref_name), Extend β budget all-rounder with native audio
- Runway: Aleph, Aleph Edit, Extend
- Others: ByteDance V1 Pro/Lite, Topaz upscale
Audio (20+)
- Suno: Music Gen, Extend, Cover, Add Instrumental/Vocals, Replace Section, Lyrics, Sounds, Sound Effects, MIDI, Music Video, Cover Art, Mashup, Persona, Timestamped Lyrics, Boost Style, Vocal Separation, WAV, Custom Voice cloning (experimental)
- ElevenLabs: TTS (Turbo 2.5 + Multilingual V2), Text-to-Dialogue V3, Audio Isolation, Speech-to-Text
- Google Gemini TTS (NEW): style-directed speech, 30 voices, 2-speaker dialogue, inline tone tags β ~4.2 cr/min
Utility
- File upload (URL or base64)
- Veo Extend, 1080p Upscale, 4K Upscale
- Runway Extend
- Task status, credit check, raw asset listing
Installation
Prerequisites
Setup
git clone https://github.com/YOUR_USERNAME/kie-mcp.git
cd kie-mcp
npm install
Run as stdio MCP (Claude Code, Claude Desktop)
Add to your Claude config (~/.claude.json for Claude Code, or your MCP client's equivalent):
{
"mcpServers": {
"kie-art": {
"command": "node",
"args": ["/absolute/path/to/kie-mcp/server.mjs"],
"env": {
"KIE_API_KEY": "your-kie-ai-api-key",
"KIE_PROJECT_ROOT": "/optional/path/for/outputs"
}
}
}
}
Or use the Claude Code CLI:
claude mcp add -s user kie-art /usr/bin/env -- KIE_API_KEY=your-key node /path/to/server.mjs
Run as HTTP MCP (Cowork, remote clients)
KIE_API_KEY=your-key node server.mjs --http --port=3100
Then expose via ngrok / Cloudflare Tunnel / VPS deployment:
Configure your MCP client to use the resulting URL:
{
"mcpServers": {
"kie-art": {
"type": "http",
"url": "https://your-tunnel.ngrok-free.dev/mcp"
}
}
}
Environment variables
| Variable | Required | Purpose |
|---|
KIE_API_KEY | yes | Your kie.ai API key |
KIE_PROJECT_ROOT | no | Server-wide default for where generated files are saved (default: server cwd; files go to $KIE_PROJECT_ROOT/kie/assets/raw/). Per-call download_dir (absolute path) on any file-writing tool overrides this |
KIE_MCP_PORT | no | Port for HTTP mode (default: 3100) |
KIE_CALLBACK_URL | no | Callback URL sent with Suno generation requests (kie.ai requires the field; results are fetched by polling regardless). Defaults to an inert placeholder β set this only if you want to receive the callbacks yourself |
KIE_MAX_CONCURRENT | no | Max simultaneous task-creation calls (default 4). Excess parallel generations queue inside the server instead of hitting kie.ai's rate limits β parallel tool calls are safe |
KIE_POLL_BUDGET_IMAGE / _VIDEO / _AUDIO / _SPEECH | no | Blocking-mode polling budget per tool category, in seconds (defaults: 600 / 900 / 300 / 300). Per-call max_wait_seconds takes precedence. For long generations prefer wait: false (async mode): the tool returns the task_id immediately; poll with check_task, fetch with download_result |
Tools available
generate_image, generate_video, generate_music, generate_sfx,
generate_tts, generate_gemini_tts, generate_dialogue, generate_sounds, generate_lyrics,
generate_persona, generate_mashup, generate_cover_art,
generate_midi, create_music_video,
prepare_voice_clone, create_voice_clone, regenerate_voice_clone,
create_omni_voice, create_omni_character,
extend_music, cover_audio, upload_extend_audio,
add_instrumental, add_vocals, replace_section,
convert_to_wav, separate_vocals, boost_style,
get_timestamped_lyrics, audio_isolation, speech_to_text,
profile_brief,
list_models, check_task, list_tasks, check_credits,
download_result, list_raw_assets, upload_file,
grok_segment_map, grok_image_edit, seedream_layer_decompose,
veo_extend, veo_upscale_1080p, veo_upscale_4k, runway_extend
Smart model recommendations
Try these queries in any MCP client:
list_models filter="reasoning" # GPT-4o, Nano Banana, GPT Image 2
list_models filter="lip-sync" # OmniHuman 1.5, Volcengine, Kling Avatar, HappyHorse 1.1
list_models filter="multi-shot" # Kling 3.0/Turbo
list_models filter="cheapest video" # Grok Imagine 1.5, Wan Flash
list_models filter="alibaba" # HappyHorse 1.0/1.1 family
list_models filter="best visual quality" # Veo Quality, Seedance 2.0
list_models filter="text rendering" # Ideogram v3, GPT Image 2
list_models filter="character" # Ideogram Character, Kling AI Avatar
Architecture
server.mjs # Transport, helpers, tool handlers (~2700 lines)
βββ createMcpServer() # Factory for stdio + HTTP modes
βββ Tool handlers # generate_*, list_*, etc.
βββ helpers # polling, recovery, pricing, validation, download
data/ # Pure data, imported (and re-exported) by server.mjs
βββ registry-image.mjs # MODEL_REGISTRY β image models (47+)
βββ registry-video.mjs # VIDEO_MODEL_REGISTRY β video models (80+)
βββ registry-audio.mjs # AUDIO_TOOLS_REGISTRY β audio tool metadata
βββ pricing.mjs # PRICING, PRICING_ESTIMATED, PROMPT_CAPS
βββ voices.mjs # ELEVENLABS_VOICES catalog
The registries and pricing live in data/*.mjs so model-catalog changes are reviewable diffs instead of edits buried in a 5000-line file; server.mjs imports and re-exports them (tests and downstream keep importing from server.mjs).