Skip to main content
Glama

kie-mcp

A comprehensive Model Context Protocol server for the kie.ai generation API. Gives Claude (and any MCP client) access to 60+ image models, 85+ 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.

Related MCP server: kie-ai-mcp-server

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 (60+)

  • OpenAI: GPT Image 2.5 Flare / Sunburst (NEW — 1K-4K, transparent background), GPT Image 2, GPT-4o Image, GPT Image 1.5

  • Google: Nano Banana 2.1 (NEW, 4 cr), Nano Banana 2 / 2 Lite / 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)

  • Qwen Image 2.1 (NEW — transparent background, mask inpainting, 10-ref compositing)

  • Others: Qwen/Qwen2, Z-Image, Grok Imagine 1.x, Recraft, Topaz

Video (85+)

  • 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

  • Google Gemini Omni: Video + 1.1 Flash (NEW — first→last-frame mode, 360p-4K; image/voice/video/character references)

  • 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 + human-identification utilities), 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)

HTTP mode requires a bearer token and listens on 127.0.0.1 by default.

export KIE_MCP_AUTH_TOKEN=$(openssl rand -hex 32)
KIE_API_KEY=your-key node server.mjs --http --port=3100

Configure your MCP client with the URL and the token:

{
  "mcpServers": {
    "kie-art": {
      "type": "http",
      "url": "http://127.0.0.1:3100/mcp",
      "headers": { "Authorization": "Bearer <your KIE_MCP_AUTH_TOKEN>" }
    }
  }
}

To reach it remotely, put it behind a tunnel (ngrok / Cloudflare Tunnel) or a reverse proxy. The server stays on loopback and the tunnel forwards to it. Add the tunnel's hostname to KIE_MCP_ALLOWED_HOSTS. Treat the token like a password: anyone who has it can spend your kie credits and upload media files from the server's disk.

Security note (5.2.2): earlier versions ran HTTP mode on 0.0.0.0 with no authentication and Access-Control-Allow-Origin: *. Any web page open in your browser, or anyone who had the tunnel URL, could call the tools, including reading local files through upload_file. Upgrade if you use --http.

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_SUNO_API

no

legacy sends Suno tools to kie's old Suno endpoints. Default since 5.5.0 is kie's new market API (ai-music-api/*), which reports the actual credits charged. MIDI, mashup and voice cloning always use the old endpoints

KIE_ELEVENLABS_ENABLED

no

1 re-enables the ElevenLabs tools (paused since 5.4.0 while kie's ElevenLabs integration fails)

KIE_MAX_CREDITS_PER_CALL

no

Default spending cap per tool call, in credits. Calls whose estimate exceeds it are refused before submission; a per-call max_credits overrides it

KIE_MCP_AUTH_TOKEN

HTTP mode

Bearer token HTTP clients must send (Authorization: Bearer …). The server refuses to start in HTTP mode without it

KIE_MCP_HOST

no

HTTP bind address (default 127.0.0.1). Set 0.0.0.0 only inside a container or behind a firewall

KIE_MCP_ALLOWED_HOSTS

no

Comma-separated extra Host header names to accept (e.g. your tunnel hostname). On loopback, localhost names are always accepted; other hosts are rejected to block DNS rebinding

KIE_MCP_ALLOWED_ORIGINS

no

Comma-separated browser origins allowed to call the server (CORS). Requests with any other Origin header are rejected. Non-browser MCP clients send no Origin and are unaffected

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, spend_report,
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

Cost control

kie bills per call, and a few calls are expensive (1080p/4K video, layer splits, 1080p draft upgrades). Every paid tool takes two optional parameters:

  • estimate_only: true returns the estimated credits from published rates, including resolution/size tiers and video duration, without submitting anything.

  • max_credits: N refuses to submit when the estimate exceeds N. Set KIE_MAX_CREDITS_PER_CALL to apply a default cap to every call.

generate_video { model: "bytedance/seedance-2-5", model_options: { resolution: "1080p", duration: 10 }, estimate_only: true }
→ 💰 ~1580 credits (~$7.90) — 158 cr/s × 10s. Nothing was submitted.

spend_report shows where the credits went. It totals the server's task history over the last N days, by model or by day, using the actual amounts kie charged (it looks up any missing ones), and lists failed tasks separately.

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).

Each model entry has:

  • name, description, capabilities (tags), pricing (credits)

  • aspectRatios, options (with types and defaults)

  • buildBody / buildInput (request builders)

  • research (Averiguare verdicts, prompt techniques, weaknesses, comparisons, sources)

Development

npm run check   # node --check server.mjs (syntax)
npm test        # offline unit tests for the pure helpers (test/*.test.mjs)
npm run smoke   # live end-to-end over MCP stdio — needs KIE_API_KEY
                # (spends ~0 credits; uses the free subject-detection model)

server.mjs guards its side effects behind a main-module check, so it can be imported by tests (test/unit.test.mjs) to exercise the pure helpers without starting a server. test/harness.mjs is a reusable stdio JSON-RPC client for driving the real server in smoke/integration checks. CI (.github/workflows/ci.yml) runs the syntax check + unit tests on Node 20 and 22 for every push and PR.

Live check (run this weekly)

npm run live-check   # KIE_API_KEY from env, else ~/.claude.json kie-art

Runs the whole maintenance routine in about 2 minutes and writes live-check-report.md:

  1. Docs-index diff: docs.kie.ai pages added or removed since the last run. This is the most reliable new-model signal.

  2. Drift watch with live slug probes: price drift, paused/removed models, catalog changes.

  3. Watch list: real calls to models that were failing upstream (e.g. ElevenLabs), so you know when to re-enable them. Failures cost 0 credits.

  4. npm audit summary.

Run it from your own machine. GitHub-hosted runners can't fetch kie.ai pages, so the scheduled workflow below only reports that it's blind.

Drift watch

kie.ai changes things without notice — advertised prices, model availability, even API shapes. .github/workflows/drift-watch.yml runs scripts/drift-watch.mjs weekly (and on demand) to scan for it: paused/removed slugs, pricing that no longer matches the PRICING table, and new models in kie's catalog. Findings land in a single rolling GitHub issue. Add a KIE_API_KEY repo secret to enable the per-slug liveness probes (0 credits — empty-input validation errors); the pricing and new-model scans need no secret. Run locally with node scripts/drift-watch.mjs.

Releasing

Releases are automated by .github/workflows/release.yml. To cut a release:

  1. Bump the version in package.json, server.json (both the top-level version and packages[0].version), and server.mjs (SERVER_INFO + the /health handler), and add a ## [X.Y.Z] section to CHANGELOG.md. Merge to main.

  2. Tag and push:

    git tag vX.Y.Z && git push origin vX.Y.Z

The workflow verifies the tag matches every in-repo version string, publishes to npm with provenance (NPM_TOKEN repo secret), and creates the GitHub Release using the matching CHANGELOG section as the notes. A tag whose version doesn't match the code fails fast without publishing. workflow_dispatch is an emergency manual publish of the current package.json version.

Credits

  • Built with the MCP TypeScript SDK

  • Powered by kie.ai — affordable unified API for 100+ AI models

  • Model intelligence by Averiguare — "No sabes hasta que averiguas — y averiguo en todas partes."

License

MIT

Available Tools

47 tools
add_instrumentalC

Add instrumental backing to uploaded vocal audio via Suno.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoStyle tags for the instrumental
waitNoSet false to submit and return immediately with the task_id (async mode) — then poll with check_task and fetch with download_result. Recommended for long generations to avoid client-side watchdog timeouts.
modelNoV5
titleNo
filenameNo
uploadUrlYesURL of vocal audio
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
negativeTagsNo
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
max_wait_secondsNoOverride the blocking-mode polling budget in seconds (default: audio 300). Ignored when wait=false.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it adds almost nothing beyond the provider name. It does not state that this is a paid generation consuming credits, does not mention sync-vs-async behavior, output artifacts, or any permissions/API-key requirements — all operational detail lives in the schema parameter descriptions rather than the tool description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, which is good structure. It is arguably too terse for an 11-parameter generation tool with no annotations, but nothing in it is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a paid, multi-parameter generation tool with no annotations and no output schema, the description is incomplete: an agent gets no sense of cost implications, blocking vs. async behavior, or what is returned. The schema fills some of this gap, but the description itself leaves the operational picture mostly unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 11 parameters at 64% schema coverage, the description contributes zero parameter meaning — it never mentions tags, model, negativeTags, title, filename, or the wait/estimate_only controls. The schema documents several key fields, but the undocumented ones (model, negativeTags, title, filename) are left unexplained in both places.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ("Add instrumental backing"), names the required input (uploaded vocal audio) and the provider (Suno). An agent can distinguish this from generate_music, but it never explicitly contrasts itself with the obvious mirror sibling add_vocals, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The precondition is implied — you must already have uploaded vocal audio, which is why uploadUrl is the only required field. However, there is no explicit when-to-use/when-not guidance and no pointer to alternatives like add_vocals, generate_music, or cover_audio, so the agent must infer routing 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.

add_vocalsC

Add AI vocals to uploaded instrumental audio via Suno.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNoSet false to submit and return immediately with the task_id (async mode) — then poll with check_task and fetch with download_result. Recommended for long generations to avoid client-side watchdog timeouts.
modelNoV5
styleNo
titleNo
promptYesLyrics or vocal description
filenameNo
uploadUrlYesURL of instrumental audio
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
negativeTagsNo
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
max_wait_secondsNoOverride the blocking-mode polling budget in seconds (default: audio 300). Ignored when wait=false.

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and one sentence does not cover it. It never mentions credit consumption, that this is a long-running generation with an async option, or any prerequisite on the uploaded audio; the schema's wait/max_credits/estimate_only fields partially fill the gap but the description adds almost nothing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero wasted words. It is tight and readable, though for a 12-parameter generation tool it is arguably undersized rather than optimally scoped.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 12 parameters, no annotations, and no output schema, an agent needs more: the uploadUrl prerequisite, the credit/cost model, and the async submit-then-poll workflow are all omitted. The description is not sufficient on its own to call this tool correctly without reading the whole schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 58%, below the 80% baseline, so the description should compensate for undocumented parameters — and it does not. Key fields like model (9-value enum), style, title, filename, and negativeTags have no description text anywhere, and the description mentions no parameter semantics at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Add AI vocals to uploaded instrumental audio') and names the provider (Suno), so the agent knows exactly what the tool produces. It does not explicitly contrast itself with close siblings such as add_instrumental (the inverse operation) or extend_music, but the operation is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance, and no alternatives are named. The agent must infer that uploadUrl must come from a prior upload (e.g. upload_file) and that check_task/download_result are the polling path — none of that routing is stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

audio_isolationB

Isolate vocals or audio from background noise using ElevenLabs via kie.ai. Input an audio URL, get clean isolated audio back.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameNoOutput filename. Auto-generated if omitted.
audio_urlYesAudio URL to process (max 10MB)
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, yet it only restates the input/output shape. For a credit-consuming, likely asynchronous job it never says that credits are spent, whether the call blocks or returns a task handle, how large inputs are handled, or what the output artifact looks like. The schema hints at cost controls but the description itself is thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core action and immediately followed by the input/output contract. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for what the tool produces, and no output schema exists so return-value detail is minimal. However, for a paid generation tool with no annotations, it omits the cost/async behavior an agent needs to call it safely and to choose it over separate_vocals.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so filename, audio_url, max_credits, download_dir, and estimate_only are already fully documented in structured data. The description adds no extra semantics for any of them, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (isolate) and resource (vocals/audio) and clarifies the transformation: input URL in, clean isolated audio out. It does not, however, distinguish itself from the sibling separate_vocals, leaving the agent to guess which of the two isolation tools to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no exclusions, and no mention of the closely related separate_vocals sibling. The only structural hint is the schema's estimate_only note about expensive runs, which is not framed as selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

boost_styleB

NEW — Convert concise style input (e.g. "Pop, Mysterious") into enhanced style description for music generation.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesConcise style description to enhance
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).

TDQS

B3.2/5.0
Behavior2/5

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 never says whether this submits a billable task, whether it is a pure text transform, or what the returned enhanced description looks like, despite max_credits and estimate_only parameters strongly implying credit-spending behavior that goes unmentioned in the description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that covers purpose, input, and output. The 'NEW —' prefix is marketing noise that earns no place, but the rest is tight with zero redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple text-transform tool with no output schema and no annotations, the description covers the core purpose but omits what the enhanced output looks like and whether the call consumes credits, which the credit-related parameters make a relevant open question.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents content, max_credits, and estimate_only thoroughly (including override precedence and estimate semantics). The description's only added parameter meaning is the input example 'Pop, Mysterious', which lightly clarifies expected content format; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (convert) and both the input (concise style text) and output (enhanced style description), with a concrete example. It clearly reads as a style-expansion utility rather than a generation tool, though it doesn't explicitly position itself against generate_music, its most likely companion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for music generation' implies the output feeds a downstream generation call, giving implied usage context. There is no explicit statement of when to reach for boost_style versus just passing a style directly to generate_music, and no alternatives are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_creditsB

Check remaining kie.ai account credits

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden of behavioral disclosure. It only states the action without revealing whether the operation is read-only, whether it consumes credits, or what the response format looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, short sentence that directly states the tool's purpose with no extraneous words. It is optimally concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless tool, the description covers the essential purpose. However, it lacks any mention of return values or format, which would help the agent interpret the result. Given the simplicity, it is mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters with 100% coverage, so no parameter documentation is needed. The description adds no parameter semantics, but this is adequate given the absence of parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'check' and clearly identifies the resource as 'remaining kie.ai account credits'. Among sibling tools focused on generation and editing, this is the only credit-related tool, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives, nor does it mention any prerequisites or context for checking credits.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_taskA

Check the status of a kie.ai generation task by taskId

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It only states 'check status', omitting whether the tool is read-only, what the response contains, or any side effects. Minimal behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is front-loaded and to the point, with no wasted words. Efficiently conveys the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description is minimally adequate but lacks details on response content, error handling, or behavior under different task states. Enough to understand basic function but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one string parameter (task_id) with 0% description coverage. The description mentions 'by taskId', adding context that task_id is the identifier, but does not explain format, origin, or examples. Some value added but insufficient for full compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'check' and the resource 'status of a kie.ai generation task' with the mechanism 'by taskId'. It distinguishes itself from sibling tools like list_tasks, which lists tasks, and generate_*, which create tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you have a taskId and want to query its status, but provides no explicit guidance on when to use this tool versus alternatives like list_tasks (which might also show status) or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convert_to_wavB

Convert a Suno track to lossless WAV format. Downloads to kie/assets/raw/.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNoSet false to submit and return immediately with the task_id (async mode) — then poll with check_task and fetch with download_result.
taskIdYesTask ID of the Suno generation
audioIdYesAudio ID from sunoData
filenameNo
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
max_wait_secondsNoOverride the blocking-mode polling budget in seconds (default: audio 300). Ignored when wait=false.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, yet it only restates the save location that download_dir's schema already documents. It says nothing about default blocking behavior, credit consumption (the schema implies credits are billed via max_credits), or how async polling works.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core action, with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, a synchronous/async fork, and a credit-charging model, the description is thin, but the rich schema covers most of the operational detail. It is minimally adequate, with the credit and blocking-default story left entirely to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 88%, so per-parameter semantics are already well documented in the schema. The description adds no parameter-level detail, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Convert a Suno track to lossless WAV format') plus the output destination, which is more precise than most siblings. It does not explicitly differentiate itself from adjacent tools like download_result or separate_vocals, but the conversion framing is distinguishable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance, no prerequisites (e.g. a completed Suno generation task must exist), and no routing toward or away from siblings. Some usage hints exist, but they live in the schema (wait, estimate_only) rather than the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cover_audioC

Create an AI cover from uploaded audio — custom vocals, style, and instrumentation via Suno.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNoSet false to submit and return immediately with the task_id (async mode) — then poll with check_task and fetch with download_result. Recommended for long generations to avoid client-side watchdog timeouts.
modelNoV5
styleNo
titleNo
promptNoDescription of desired cover style
filenameNo
uploadUrlYesURL of audio to cover
customModeNo
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
vocalGenderNoVocal gender preference
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
instrumentalNo
negativeTagsNoTags to avoid in the cover
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
max_wait_secondsNoOverride the blocking-mode polling budget in seconds (default: audio 300). Ignored when wait=false.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, yet it says nothing about credit cost, latency/blocking behavior, where output lands, or whether the operation is idempotent. The schema parameters (max_credits, estimate_only, download_dir) hint at these traits, but the description body itself discloses none of them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero waste and a clear verb-resource-mechanism order. It is efficient, though arguably undersized for a 15-parameter tool with no annotations, which keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 15-parameter, 60%-covered, no-annotation, no-output-schema tool, the description is too thin: it omits cost/credit implications, the async workflow, output location defaults, and the relationship to sibling extend/add_vocals tools. An agent could invoke it but would miss important operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 60% with 15 parameters, so the schema does much of the work. The description's mention of vocals, style, and instrumentation loosely maps to vocalGender/style/instrumental, but adds no syntax, format, or interaction details beyond what the schema fields already state – roughly baseline for this coverage level.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (create an AI cover from uploaded audio) and names the key axes: custom vocals, style, instrumentation via Suno. It is reasonably distinguishable from siblings like generate_music or add_vocals, but it never explicitly contrasts itself with them, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no when-to-use guidance, prerequisites, or named alternatives among the many sibling generation tools (generate_music, extend_music, add_vocals, upload_extend_audio). The async/polling advice exists only inside the schema's `wait` parameter, not in the tool description itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_music_videoB

Generate an MP4 music video visualization from a Suno track. Downloads to kie/assets/raw/.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNoSet false to submit and return immediately with the task_id (async mode) — then poll with check_task and fetch with download_result.
authorNoAuthor name for video credits
taskIdYesTask ID of the Suno generation
audioIdYesAudio ID from sunoData
filenameNo
domainNameNoDomain name for video branding
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
max_wait_secondsNoOverride the blocking-mode polling budget in seconds (default: audio 300). Ignored when wait=false.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden. It reveals a side effect (writes an MP4 into kie/assets/raw/), but says nothing about cost/credits, the fact that blocking is the default (wait=true), or async behavior — all of which live only in the schema, leaving a real gap for a paid generative tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and output artifact, no filler. The second sentence is a fragment, but it earns its place by naming the download destination.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a costly generative tool with 10 parameters, no output schema, and no annotations, the description is thin. The rich schema compensates on parameters, but credit behavior, blocking-vs-async default, and what the returned MP4 contains are left unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 90%, so the schema already documents taskId, audioId, wait, estimate_only, max_credits, max_wait_seconds and download_dir in detail. The description adds no parameter-level meaning beyond pointing at the Suno source, so baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb, resource, output format, and source: 'Generate an MP4 music video visualization from a Suno track.' This tells an agent it produces video from an existing Suno track, distinguishing it from generate_music (audio) and generate_video (generic video). It stops short of naming the sibling it most resembles (generate_video) to make the split unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a prerequisite (a Suno track must exist) but gives no explicit when-to-use or when-not-to-use guidance, and never contrasts itself with generate_video. An agent gets no routing rule for choosing this over other video tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_omni_characterB

NEW — Create a reusable visual character for Gemini Omni video generation. Combines image + optional voice. Returns characterId.

ParametersJSON Schema
NameRequiredDescriptionDefault
audio_idsNoOptional voice IDs from create_omni_voice
image_urlsYesExactly 1 image URL (≤20MB)
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
descriptionsYesCharacter appearance, identity, style, clothing, personality
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
character_nameNoCharacter name

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full behavioral burden but discloses little beyond 'returns characterId'. It does not explain credit implications, whether the character persists/is reusable across calls, idempotency, or any auth/rate constraints, even though the schema hints at billing behavior via max_credits and estimate_only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, front-loaded sentences with no waste; the key action and return value lead. The 'NEW —' prefix is marketing rather than functional, but costs nothing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description does name the return value ('characterId'), which is the essential output. For a creation tool with zero annotations, it should say more about persistence, cost, and failure behavior, so it is only minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents every parameter thoroughly. The description adds only high-level mapping ('image + optional voice') to image_urls/audio_ids. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a reusable visual character for Gemini Omni video generation') and clarifies it 'combines image + optional voice', which helps distinguish it from create_omni_voice. It never names a sibling explicitly, but the scope is clear enough for an agent to select it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by 'for Gemini Omni video generation'. There is no explicit when-to-use/when-not-to-use guidance, no mention of prerequisites (e.g. needing an existing voice ID from create_omni_voice), and no routing to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_omni_voiceA

NEW — Create a reusable voice character for Gemini Omni video generation. Returns kieAudioId for use in generate_video audio_ids.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesVoice character name (max 210 chars)
audio_idYesPreset base voice (30 options). The created voice inherits this preset and is customized by voice_description.
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
example_dialogueNoSample dialogue (max 120 chars), e.g. "Hello, I am Adam"
voice_descriptionNoDetailed voice characteristics: timbre, style, rate, emotion (max 20000 chars)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully discloses that the created voice is persistent/reusable and returns a kieAudioId handle, which is the key output fact given there is no output schema. It says nothing about cost, credit consumption, provisioning latency, or whether the creation is reversible — notable omissions for a mutation tool whose own schema exposes max_credits/estimate_only guardrails.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with zero padding; the core action leads and the return-value/downstream-use fact follows immediately. The only removable token is the 'NEW —' marker, which is minor.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter mutation tool with no output schema, the description does cover the most important missing structured data (the kieAudioId return handle) and its consumer. It remains thin on billing/cost behavior and asynchronous execution, leaving the agent without the context it would need to call this responsibly alongside estimate_only and max_credits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all six parameters, including the 30-value audio_id enum and the voice_description/example_dialogue distinction. The description adds no further parameter semantics (e.g. how voice_description shapes the preset), so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'Create a reusable voice character for Gemini Omni video generation' — and names the artifact it produces (kieAudioId) plus its downstream consumer. It scopes itself to Gemini Omni, which partly separates it from create_voice_clone and create_omni_character, but it never names those siblings explicitly, so the differentiation is only implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it by naming the downstream call site ('for use in generate_video audio_ids'), which tells the agent this belongs to the Omni video pipeline. However it gives no explicit when-not-to-use guidance and never contrasts with the closely related create_voice_clone, prepare_voice_clone, or create_omni_character tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_voice_cloneA

EXPERIMENTAL (#20) — STEP 2 — after the voice owner records the verification phrase from prepare_voice_clone, submit that recording to finish the voice. On success returns a voiceId usable in generate_music. Unverified end-to-end.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNo
styleNoOptional style hint, e.g. "Pop, Female Vocal"
task_idYestask_id from prepare_voice_clone (must be at wait_validating)
verify_urlYesPublic URL of the voice owner's recording of the verification phrase
voice_nameYesName for the custom voice
descriptionNoOptional description
max_wait_secondsNo
singer_skill_levelNoOptional

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden. It highlights experimental status and unverified end-to-end flow but does not disclose what happens on failure, required permissions, or state changes beyond returning a voiceId.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at one sentence, front-loading key info (EXPERIMENTAL, STEP 2). Every word adds value without fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters and no output schema, the description is somewhat sparse. It omits details like verification URL format, timeout behavior for max_wait_seconds, and failure handling, leaving gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 75% schema coverage, most parameters already have descriptions. The tool description adds no extra meaning beyond what's in the schema, so it meets the baseline but does not improve understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is the second step after prepare_voice_clone, requiring the verification recording. It specifies the outcome (voiceId) and usage context (generate_music), distinguishing it from siblings like prepare_voice_clone and regenerate_voice_clone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells when to use (after prepare_voice_clone, after recording the verification phrase) but does not provide exclusions or alternatives for failure cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

download_resultC

Download a completed task result to kie/assets/raw/

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
filenameNo
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.

TDQS

C2.7/5.0
Behavior2/5

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 does not mention error handling, authentication, or whether files are overwritten, leaving significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence is concise with no wasted words. However, it may be too terse for important nuances.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 3 parameters, no output schema, and zero annotations, the description is insufficient. It lacks details on return values, error cases, and workflow context among siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% (only download_dir has a description). The description adds default directory info but does not explain task_id or filename, which are crucial but undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Download a completed task result' and the default target directory 'kie/assets/raw/', making the purpose apparent. However, it implies a fixed destination while the schema allows a custom directory, causing slight inconsistency.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., upload_file) or prerequisites like task completion. The agent is left to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

extend_musicB

Extend/continue an existing Suno track from a specific point. Requires audioId from a previous generate_music task.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNoSet false to submit and return immediately with the task_id (async mode) — then poll with check_task and fetch with download_result. Recommended for long generations to avoid client-side watchdog timeouts.
modelNoV5
styleNoStyle tags for the extension
titleNo
promptYesLYRICS for the extended section (Suno sings this text). Give real lyric lines; a short instruction like "add an outro" is rejected as malformed lyrics (error 531, refunded).
audioIdYesAudio ID from a previous Suno generation (from sunoData)
filenameNo
continueAtNoTimestamp in seconds to continue from
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
defaultParamFlagNoUse default params from original track
max_wait_secondsNoOverride the blocking-mode polling budget in seconds (default: audio 300). Ignored when wait=false.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and delivers very little: it does not mention that this is a credit-consuming generation, that it returns an async task_id, or anything about billing/reversibility. The behavioral detail that does exist (async wait, max_credits, estimate_only) lives entirely in schema parameter descriptions, which the description does not reference.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the core action and scope, with no padding. The second sentence overlaps with the audioId schema description, costing minor redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter credit-consuming generation tool with no annotations and no output schema, the description omits cost implications, the async result shape, and how the extended segment relates to the original track. The rich schema compensates substantially, but a caller reading only the description would not know this is a billable generation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 77%, so the schema already documents most parameters in detail, including prompt, wait, max_credits, and continueAt. The description adds only that audioId comes from a previous generation, which the schema also states — a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Extend/continue an existing Suno track from a specific point') and adds the required lineage of the input. It is not explicitly contrasted with nearby siblings like generate_music, replace_section, or cover_audio, so it stops short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives one real prerequisite — audioId must come from a prior generate_music task — which implies this is a follow-on operation rather than a fresh generation. However, it never says when to choose this over add_instrumental, replace_section, or regenerate-style siblings, so usage is largely inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_cover_artA

NEW — Generate album cover art image for an existing Suno music track. One call per taskId only.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesSuno task ID from a previous music generation
filenameNoOutput filename. Auto-generated if omitted.
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses only the 'one call per taskId' constraint, but fails to mention if the operation is destructive, what happens on repeated calls, authentication needs, or rate limits. The lack of behavioral context makes it risky for an AI agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, fully front-loaded with purpose in the first sentence and a key constraint in the second. No wasted words; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters and no output schema, the description provides core purpose and a constraint, but omits expected output type, file format, or error handling. Given the absence of output schema, more detail on return values would help completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds important context: 'Auto-generated if omitted' for filename and a crucial warning about absolute directory paths for download_dir. 'One call per taskId' also relates to parameter usage, enhancing understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'generate' and the specific resource 'album cover art image for an existing Suno music track'. It distinguishes from sibling tools like 'generate_image' (general image generation) and 'create_music_video' (video). The constraint 'One call per taskId only' further clarifies the scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context (existing music track) and a constraint (one call per taskId), but does not explicitly state when to use this tool over alternatives like 'generate_image' or what prerequisites are needed. There is no guidance on when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_dialogueA

Generate multi-speaker dialogue using ElevenLabs Text-to-Dialogue V3 via kie.ai. Great for conversations between characters. Downloads to kie/assets/raw/.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNoSet false to submit and return immediately with the task_id (async mode) — then poll with check_task and fetch with download_result. Recommended for long generations to avoid client-side watchdog timeouts.
dialogueYesArray of dialogue lines with voice assignments
filenameNoOutput filename. Auto-generated if omitted.
stabilityNoVoice stability — kie accepts exactly 0 (creative), 0.5 (natural), or 1 (robust)
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
language_codeNoLanguage code (e.g. "en")
max_wait_secondsNoOverride the blocking-mode polling budget in seconds (defaults: image 600, video 900, audio 300, speech 300). Ignored when wait=false.

TDQS

A3.6/5.0
Behavior3/5

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 usefully discloses the provider/model and the filesystem side effect ('Downloads to kie/assets/raw/'), but says nothing about credit consumption, blocking vs async behavior, or auth — details the agent must recover from the schema parameter descriptions instead.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with zero filler: what it does, what it is good for, and where the output lands. Everything is front-loaded and no sentence is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nine-parameter generation tool with a fully documented schema and no output schema, the description plus schema give the agent enough to invoke it correctly: engine, speaker model, and destination directory. The only shortfall is the missing explicit routing against the other TTS siblings, which is a usage rather than an invocation gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all nine parameters, including the dialogue array shape, wait/async flow, credit guard, and estimate_only, are already documented in the schema. The description adds no parameter-level meaning beyond that, which is the correct baseline when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Generate multi-speaker dialogue') and names the underlying engine (ElevenLabs Text-to-Dialogue V3 via kie.ai). The 'multi-speaker' qualifier implicitly separates it from the single-speaker siblings generate_tts and generate_gemini_tts, though it never names an alternative, so the differentiation is inferential rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Great for conversations between characters' implies the use case (multi-character dialogue) but is a soft recommendation rather than a rule. There is no statement of when NOT to use it, and no pointer to generate_tts/generate_gemini_tts for single-speaker output, leaving the agent to infer the boundary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_gemini_ttsA

NEW — Google Gemini native TTS via kie.ai: style-directed speech from natural-language direction, 30 named voices, up to 2 speakers, inline tone tags like [whispers]/[laughs] (flash model). ~4.2 credits per MINUTE of audio — cheaper than all ElevenLabs tiers. Simple mode: pass text (+ optional voice_name). Dialogue mode: pass speakers + dialogue_turns. model=flash is most expressive (keep expected audio <60s — quality degrades on long takes); model=pro is more stable for multi-minute narration. Downloads to kie/assets/raw/.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoSimple mode: the text to speak (single speaker). Inline tone tags like [whispers] work on flash. Ignored if dialogue_turns is set.
waitNoSet false to submit and return immediately with the task_id (async mode) — then poll with check_task and fetch with download_result.
modelNoflash = Gemini 3.1 Flash TTS (most expressive, 200+ inline tags, best <60s; ~4.2 cr/min). flash-3.8 = Gemini 3.8 Flash TTS (NEW Sept 2026, same inputs, ~1.9 cr/min, ~40% cheaper per clip in live tests). flash-lite = Gemini 3.8 Flash Lite TTS (NEW, cheapest at ~1.3 cr/min; draft/bulk narration). pro = Gemini 2.5 Pro TTS (more stable long-form, ~4.2 cr/min). 3.8 prices are kie limited-time pricing until 2026-12-31.flash
sceneNoScene description, e.g. "A quiet, warm room with a fireplace crackling softly."
filenameNoOutput filename (default gemini-tts-<ts>.wav)
speakersNoDialogue mode: 1-2 speakers as [{speaker_id: "Speaker 1", voice_name, audio_profile?, accent?, style?, pace?}]. accent: Neutral|American (Gen)|American (Valley)|American (South)|British (RP)|British (Brixton)|Transatlantic|Australian. style: Vocal Smile|Newscaster|Whisper|Empathetic|Promo/Hype|Deadpan. pace: Natural|Rapid Fire|The Drift|Staccato.
voice_nameNoSimple mode voice (default Zephyr)
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
temperatureNoSampling temperature (default 1)
download_dirNoAbsolute directory to save into (created if missing). Defaults to the server's kie/assets/raw/.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
dialogue_turnsNoDialogue mode: [{speaker_id, text}] in order; text ≤10000 chars, may contain tone tags
sample_contextNoOverall tone/direction, e.g. "Audiobook style narration. Tone is gentle and inviting."
max_wait_secondsNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses per-minute credit cost, the quality degradation on long flash takes, the default download destination (kie/assets/raw/), and the model tradeoffs. It does not address auth requirements, failure modes, or what happens on partial/retry runs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is front-loaded with the distinguishing identity ('NEW — Google Gemini native TTS') before cost and modes, which is the right order for an agent. It is dense and somewhat list-like, and pricing appears both here and again per-model in the schema, but for a 14-parameter multimodal generation tool the length is largely justified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, annotation-free tool with no output schema and zero required parameters, the description covers the essentials an agent needs: mode selection, model choice, cost ceiling rationale, and output location. It omits guidance on failure/async recovery beyond the schema's own wait note, and gives no indication of rate limits or concurrency.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 93%, so the baseline is 3; the description adds value by grouping the 14 flat parameters into coherent modes ('Simple mode: pass text', 'Dialogue mode: pass speakers + dialogue_turns') and explaining the model enum's cost/quality tradeoffs rather than just listing values. It stops short of explaining mutually exclusive combinations or precedence rules beyond the single 'Ignored if dialogue_turns is set' note.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific resource (Google Gemini native TTS via kie.ai) and enumerates distinguishing capabilities: style-directed speech, 30 named voices, up to 2 speakers, inline tone tags. It implicitly separates itself from the ElevenLabs-based siblings via 'cheaper than all ElevenLabs tiers,' but it never names generate_tts or generate_dialogue, so the differentiation is inferential rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is unusually concrete: it distinguishes Simple mode (text + optional voice_name) from Dialogue mode (speakers + dialogue_turns), and gives model-selection heuristics (flash for expressive short takes, pro for multi-minute stability). What is missing is an explicit 'use this instead of X' or when-not-to-use statement relative to the sibling TTS tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_imageA

Generate an image using kie.ai. TIP: for architecture/game-art/advertising/product-UI jobs, call profile_brief first — it returns the vertical's intake questions, routing, and prompt formulas. (60+ models). Downloads to kie/assets/raw/. MODEL GUIDE: Architecture/blueprints→gpt4o or nano-banana-2 (reasoning, 8cr). Cheap fast all-rounder→nano-banana-2-1 (4cr, ~13s, NEW Oct 2026; NB2 doubled to 8cr). Game art/3D→seedream/4.5 or 5-lite. Character sheets→ideogram/character. Text/logos→ideogram/v3 (best text). Photo editing→flux-kontext-pro. Newest OpenAI→gpt-image-2-5/flare-* (6cr @1K, fast default) or gpt-image-2-5/sunburst-* (premium polish); both 1K-4K + transparent background (NEW). Split any image into layers→seedream_layer_decompose tool (7cr/layer, NEW). Generate-then-refine by named region→grok-imagine-image-2-0/text-to-image (4cr, #2 Arena T2I+edit) then grok_segment_map (free) + grok_image_edit (4cr; also edits ANY uploaded image via image_urls mode). Anime→qwen (3cr cheapest); qwen2-1/* (4cr, NEW) adds transparent BG, mask inpainting, 10-ref compositing. Fast drafts→nano-banana-2-lite (4cr, ~4s, NEW). Upscale→recraft/crisp-upscale (0.5cr). BG removal→recraft/remove-background. Cheapest→z-image,qwen (3cr). Best quality→nano-banana-pro (24cr), flux-kontext-max (100cr). Use list_models filter="use-case" to explore.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNoSet false to submit and return immediately with the task_id (async mode) — then poll with check_task and fetch with download_result. Recommended for long generations to avoid client-side watchdog timeouts.
modelNoModel ID. Use list_models to see all available models and their options.gpt4o
promptYesText prompt describing the image to generate
filenameNoOutput filename (saved to kie/assets/raw/). Auto-generated if omitted.
image_urlsNoReference/input image URLs for image-to-image models
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
aspect_ratioNoAspect ratio (valid values depend on model — see list_models). Common: 1:1, 2:3, 3:2, 16:9, 9:16, 4:3, 3:42:3
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
model_optionsNoModel-specific options (quality, resolution, seed, negative_prompt, etc). Use list_models to see available options per model.
max_wait_secondsNoOverride the blocking-mode polling budget in seconds (defaults: image 600, video 900, audio 300, speech 300). Ignored when wait=false.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the disclosure burden and mostly succeeds: it reveals cost in credits per model, approximate latency (~13s, ~4s), the 60+ model catalogue size, output landing directory (kie/assets/raw/), and the async submit-and-poll workflow. It does not state authentication/permission requirements or whether a submitted generation is cancellable, so it stops short of full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and the profile_brief tip are front-loaded, but the MODEL GUIDE becomes a dense run-on with repeated 'NEW' markers and per-model credit notes that partly duplicate what list_models already exposes. Information-dense but over-stuffed for a description field.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 11-parameter, 60+-model generation tool with no annotations and no output schema, the description covers model routing, cost, timing, async behavior, and output location well. It leaves the concrete response shape largely to the schema's async description, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The MODEL GUIDE adds genuine value beyond the schema by mapping use cases to concrete model IDs and their credit/speed tradeoffs, which directly informs the `model` parameter. It also reinforces the output location relevant to `filename`/`download_dir`.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Generate an image using kie.ai') and immediately differentiates from siblings by routing related tasks to seedream_layer_decompose, grok_image_edit, and grok_segment_map. An agent can tell this apart from generate_video or generate_cover_art without reading schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names alternatives and the conditions that select them: profile_brief for architecture/game-art/advertising/product-UI, seedream_layer_decompose for layer splitting, grok_image_edit for refinement, list_models to explore. It also tells the agent when to prefer estimate_only and async mode for long runs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_lyricsA

Generate song lyrics from a prompt using Suno AI (max 200 characters). Returns text, no file download.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesPrompt for lyrics generation (max 200 chars)
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully discloses the output modality ('Returns text, no file download'), which saves a pointless download_result call, and the 200-char prompt ceiling. However, it says nothing about credit consumption, even though max_credits/estimate_only exist and this is a billed Suno AI call — a material gap for a paid operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core action, and the output-modality caveat immediately follows. Nothing extraneous beyond a minor duplication of the 200-char limit already in the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-param, no-output-schema tool this covers the essentials: what it produces and that no file is returned. It omits whether the call is synchronous or submit-and-poll (relevant given the many check_task-style siblings) and gives no hint that the call spends credits, so it is adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents prompt's 200-char limit, max_credits and estimate_only in detail. The description only restates the prompt limit and adds no new meaning for any parameter, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (generate song lyrics) plus an output modality ('Returns text, no file download'), which separates it from audio-producing siblings like generate_music and from the retrieval-oriented get_timestamped_lyrics. It does not name a sibling explicitly, so it stops just short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied — reach for this when you want lyric text rather than an audio artifact — but there is no explicit when-to-use/when-not statement and no mention of how it relates to generate_music or get_timestamped_lyrics. No alternatives or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_mashupC

NEW — Mashup up to 2 Suno tracks into one new track. Provide audioIds from previous generations.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNoSet false to submit and return immediately with the task_id (async mode) — then poll with check_task and fetch with download_result. Recommended for long generations to avoid client-side watchdog timeouts.
modelNoV5
promptNoOptional prompt for mashup direction
taskIdNoSource task ID
audioIdsYesUp to 2 audio IDs to mashup
filenameNo
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
max_wait_secondsNoOverride the blocking-mode polling budget in seconds (default: audio 300). Ignored when wait=false.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden and delivers only one sentence. It omits that this consumes credits, that output requires subsequent download, and that blocking vs async behavior is configurable — details that live only in the schema parameter text, not in the description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences with no padding beyond the 'NEW —' marketing prefix, which is noise but minor. The core scope constraint comes first where an agent will read it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter generation tool with no annotations and no output schema, a single sentence is thin. It never mentions that the result is an async task costing credits, what the model enum implies for quality, or anything about retrieval of the generated track.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 80% schema description coverage, the schema already documents the notable parameters (wait/async mode, max_credits, estimate_only, download_dir, max_wait_seconds). The description only restates the audioIds constraint ('up to 2'), adding no format, sourcing, or interaction detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — mash up Suno tracks into one new track — and gives a bounded scope ('up to 2'). It is clearly distinct from sibling transformations like extend_music, cover_audio, or add_instrumental, though it never names an alternative to contrast against.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Provide audioIds from previous generations' hints at the input prerequisite but says nothing about when this tool should be chosen over cover_audio, extend_music, or add_vocals. No exclusions, no cost context, no guidance for how many or which tracks are suitable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_midiA

Export a Suno track to MIDI notation. Downloads .mid file to kie/assets/raw/.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNoSet false to submit and return immediately with the task_id (async mode) — then poll with check_task and fetch with download_result.
taskIdYesTask ID of the Suno generation
audioIdNoAudio ID from sunoData (optional)
filenameNo
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
max_wait_secondsNoOverride the blocking-mode polling budget in seconds (default: audio 300). Ignored when wait=false.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the output location and file type (.mid downloaded to kie/assets/raw/), which is useful behavioral context. However, it omits credit consumption, async behavior, permission requirements, and failure modes, leaving clear gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core action and immediately followed by the output destination. No wasted words or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter tool with no annotations and no output schema, the description is minimal. It states purpose and output location, and the schema covers most parameter details, but it does not mention credit implications, async mode, or when to prefer this over sibling conversion tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high (88%), so the schema already documents nearly all parameters in detail. The description adds no parameter-level meaning beyond what the input schema provides, making the baseline score of 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Export) and resource (Suno track to MIDI notation), making clear this is a format conversion tool. The output target is also named, which further distinguishes it from audio-generation siblings like generate_music or convert_to_wav.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance, no prerequisites, and does not name any alternative tools. It implies the tool is used when a Suno track needs MIDI export, but provides no routing context relative to siblings such as convert_to_wav or separate_vocals.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_musicA

Generate music using Suno via kie.ai. Supports V5.5 (custom style), V5 (best quality), V4.5+, V4.5, V4. Up to 8 minutes. Great for game music stems, ambient tracks, and jingles. Polls until done and downloads to kie/assets/raw/.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNoSet false to submit and return immediately with the task_id (async mode) — then poll with check_task and fetch with download_result. Recommended for long generations to avoid client-side watchdog timeouts.
modelNoSuno model. V5_5=custom style, V5=best quality. Default: V5V5
styleNoStyle tags (e.g. "Celtic, orchestral, upbeat, fantasy, game music")
titleNoTrack title (optional)
promptYesMusic description (e.g. "upbeat Celtic fantasy adventure, flute and drums, heroic")
filenameNoOutput filename. Auto-generated if omitted.
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
instrumentalNoNo vocals when true (recommended for game music)
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
max_wait_secondsNoOverride the blocking-mode polling budget in seconds (defaults: image 600, video 900, audio 300, speech 300). Ignored when wait=false.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, and it does disclose the default blocking/polling behavior and the output destination ('Polls until done and downloads to kie/assets/raw/') plus an 8-minute duration limit. It omits credit/cost behavior (only hinted at in the schema), failure/timeout handling, and auth requirements, leaving meaningful gaps for a tool with 11 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with the core action and provider, then capabilities, use cases, and execution behavior. The V5.5/V5/V4.5 enumeration is somewhat redundant with the schema enum descriptions, costing a little efficiency, but there is no padding overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description helpfully states that results are downloaded to kie/assets/raw/. Combined with 100% schema coverage for all 11 parameters (including the async wait/check_task/download_result flow), an agent has enough to invoke correctly, though it lacks cost and failure-handling detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter, setting the baseline at 3. The description adds only marginal meaning by glossing model tiers ('V5.5 custom style, V5 best quality') and the duration cap, which largely restate information already present in the enum and schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Generate music') and names the underlying provider (Suno via kie.ai), which is enough to separate it from generate_sfx, generate_tts, and generate_lyrics. It does not, however, explicitly distinguish itself from music-adjacent siblings like extend_music, cover_audio, or add_instrumental, so it falls short of the 5-level sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Great for game music stems, ambient tracks, and jingles' gives implicit usage context, and the model list implies quality/style tradeoffs. But there is no explicit when-to-use-this-vs-siblings guidance (e.g. vs extend_music or cover_audio) and no stated prerequisites or exclusions, so routing remains largely inferential.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_personaA

NEW — Create a Suno Persona (reusable music character) from an existing Suno track. Requires taskId from V3.6+ generation.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesPersona name
styleNoMusic style tag (e.g. "Electronic Pop")
taskIdYesTask ID from a previous Suno generation (V3.6+)
audioIdYesAudio ID from sunoData
vocalEndNoEnd time in seconds (10-30s segment)
vocalStartNoStart time in seconds for vocal analysis
descriptionYesDetailed Persona description (musical style, personality)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description must disclose behavioral traits. It mentions 'reusable music character' and the prerequisite, but does not state side effects, auth needs, or what happens to the existing track. Minimal insight beyond basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise – two sentences. Front-loaded with 'NEW' to indicate freshness. No fluff; every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Description is functional but omits broader context: what a Suno Persona is, how to use it post-creation, or what the API returns. Given 7 parameters and no output schema, more context would aid completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (all parameters described). Description adds no extra meaning beyond the schema, e.g., the prerequisite is already in taskId description. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Explicitly states it creates a Suno Persona from an existing Suno track, with specific verb and resource. Clearly distinguishes from sibling generation tools like generate_music or cover_audio by focusing on persona creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a clear prerequisite (taskId from V3.6+ generation) but lacks guidance on when to use persona creation versus alternatives like cover_audio or generate_music. No explicit when-not or comparison to siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_sfxA

Generate a sound effect from text via Suno V5 (kie.ai removed the ElevenLabs sound-effect model). Great for game sounds: UI clicks, magic spells, item pickups, explosions. For loop/BPM/key control use generate_sounds instead. Downloads to kie/assets/raw/.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesSound description (e.g. "magical sparkle chime, fairy-like, short 0.5s")
waitNoSet false to submit and return immediately with the task_id (async mode) — then poll with check_task and fetch with download_result. Recommended for long generations to avoid client-side watchdog timeouts.
filenameNoOutput filename. Auto-generated if omitted.
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
duration_secondsNoTarget duration hint, folded into the prompt (Suno has no hard duration control).
max_wait_secondsNoOverride the blocking-mode polling budget in seconds (defaults: image 600, video 900, audio 300, speech 300). Ignored when wait=false.
prompt_influenceNoDeprecated — ignored (no Suno equivalent). Kept for backward compatibility.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full burden; it discloses the provider/model, that the previous ElevenLabs model was removed, and the default download destination (kie/assets/raw/). It does not mention cost/credit expenditure in the description itself, though the max_credits and estimate_only params cover that ground 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the verb+resource, then differentiation, then the output location. The game-sound examples earn their space by anchoring the intended prompt style; nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter generation tool with no annotations and no output schema, the description covers purpose, the sibling alternative, and where files land, while the schema handles the async/cost mechanics. The main gap is that the description never states the tool spends credits or what a returned task looks like, leaving that entirely to the parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents every parameter including async behavior and the deprecated prompt_influence flag. The description adds no syntactic or format detail beyond what the schema provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Generate a sound effect from text') plus the engine ('via Suno V5'), and explicitly separates itself from generate_sounds for loop/BPM/key control. An agent can pick between the two sibling generators without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternative (generate_sounds) with the condition that selects it, gives concrete use-case examples (UI clicks, magic spells, pickups, explosions), and flags the async path ('wait=false... poll with check_task') for long generations. When-to-use, when-not-to-use, and alternatives are all present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_soundsC

Generate loopable sound effects with BPM, key, and loop control via Suno. Downloads to kie/assets/raw/.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNoSet false to submit and return immediately with the task_id (async mode) — then poll with check_task and fetch with download_result. Recommended for long generations to avoid client-side watchdog timeouts.
modelNoV5
promptYesSound description (e.g. "ambient rain on a tin roof, soft thunder")
filenameNo
soundKeyNoMusical key (e.g. "C", "Am")
soundLoopNoWhether the sound should loop seamlessly
grabLyricsNo
soundTempoNoBPM for the sound
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
max_wait_secondsNoOverride the blocking-mode polling budget in seconds (defaults: image 600, video 900, audio 300, speech 300). Ignored when wait=false.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It does reveal one genuine side effect — files are downloaded to kie/assets/raw/ — but says nothing about credit consumption, async/polling behavior, permissions, or what the caller receives, all of which matter for a 12-parameter generation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with the core capability front-loaded and the output destination trailing. No filler, though the second sentence is a fragment that could be folded into the first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The rich schema descriptions (wait/async mode, download_dir, estimate_only, max_credits) compensate for much of the terse description, and no output schema exists to explain. Still missing sibling disambiguation and any cost/return expectations, which leaves gaps for a 12-parameter tool with no annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, so the schema already documents most parameters well. The description echoes the key ones ('BPM, key, and loop control' mapping to soundTempo, soundKey, soundLoop) but adds no syntax, ranges, or format guidance beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Generate loopable sound effects') plus the differentiating attributes (BPM, key, loop control) and the provider (Suno). However, it never distinguishes itself from the close sibling generate_sfx or from generate_music, so an agent cannot tell from the description alone which sound-generation tool to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no mention of alternatives. The sibling list contains generate_sfx and generate_music, whose overlap with this tool is exactly the ambiguity the description should resolve, and it does not.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_ttsB

Generate speech from text using ElevenLabs via kie.ai. Supports Turbo 2.5 (fast) and Multilingual V2 (high quality). Downloads to kie/assets/raw/.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to synthesize into speech
waitNoSet false to submit and return immediately with the task_id (async mode) — then poll with check_task and fetch with download_result. Recommended for long generations to avoid client-side watchdog timeouts.
modelNoturbo-2-5=fast, multilingual-v2=high quality with language supportturbo-2-5
speedNoSpeech speed (0.7–1.2). Only for multilingual-v2.
filenameNoOutput filename. Auto-generated if omitted.
voice_idNoVoice name (e.g. "Bella", "Viking Bjorn", "Aria") or kie voice ID. kie.ai only accepts its curated ~67-voice set — arbitrary ElevenLabs voice IDs are rejected. An unknown value returns the full catalog. Optional — defaults to James.
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
language_codeNoLanguage code for multilingual-v2 (e.g. "en", "es", "fr", "ja")
max_wait_secondsNoOverride the blocking-mode polling budget in seconds (defaults: image 600, video 900, audio 300, speech 300). Ignored when wait=false.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden. It does add real behavioral context — the file is written to kie/assets/raw/ (a local side effect) and calls are routed through kie.ai — but it omits cost/credit implications, blocking-vs-async behavior, and failure modes that an agent needs before invoking an 11-parameter generation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the purpose, no filler. The trailing download-path sentence partly duplicates the download_dir schema default, which is the only minor redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter generation tool with no output schema, the description leaves out cost expectations, output/variant behavior, and routing against the gemini TTS sibling. The rich schema compensates for parameter-level gaps, but the description is only minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already self-documented; the baseline is 3. The description only restates the two model names (already the enum) and the download location, adding essentially nothing semantic beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb+resource ("Generate speech from text") and pins the provider stack (ElevenLabs via kie.ai), which implicitly separates it from the sibling generate_gemini_tts. However, it never names that sibling or any other alternative, so the differentiation must be inferred rather than read.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance: nothing explains when an agent should pick this over generate_gemini_tts, generate_dialogue, or generate_music. Model selection (turbo vs multilingual) is present but that is configuration, not usage routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_videoA

Generate a video using kie.ai (85+ models). Downloads to kie/assets/raw/. MODEL GUIDE: Best cinematic→veo-3/text-to-video (50cr/s, audio). Fast+cheap→grok-imagine-video-1-5-preview (1.6-3cr/s, audio, NEW), wan/flash-image-to-video (6-8cr/s measured; alias of wan/2-6-flash). Budget cinematic→hailuo-standard (4cr/s). First→last-frame or anything-from-anything refs→gemini-omni/flash-1-1 (NEW, est. ~63cr per 4s clip). Budget multimodal refs→bytedance/seedance-2-mini (9.5cr/s @480p). 30s single takes→bytedance/seedance-2-5 (now up to 1080p; set model_options.draft=true for a 28cr/s 480p preview, then upgrade the approved take with bytedance/seedance-2-5-draft). Cheap or 4K image-to-video with audio→vidu-q4/image-to-video (7.2cr/s @540p … 62.4 @4K, NEW); 15-image refs→vidu-q4/reference-to-video. Budget all-rounder w/ audio+templates+extend→pixverse-v6 family (4-9.6cr/s, NEW; I2V is its strength; transition=first/last-frame morph). Multilingual lip-synced dialogue→happyhorse-1-1 T2V/I2V/R2V (NEW). 2K + stereo audio→minimax-h3 (8cr/s @768P, price halved Sept 2026). Per-shot scripted multi-shot→kling-3-omni (14cr/s @720p, NEW; transformation=restyle existing video). Next-gen Wan draft→wan/3-0-video (8cr/s @480P, NEW). Fast Kling→kling/v3-turbo (18cr/s, audio, NEW). Image-to-video→veo-3/image-to-video (include a sound cue like "SFX: room tone" — Veo I2V intermittently fails its audio pass without one; images must be served with their real Content-Type, upload via upload_file), kling/image-to-video. Avatar/talking head→omnihuman-1-5 (premium, NEW), kling/ai-avatar-pro, infinitalk/from-audio. Re-dub existing footage→volcengine/video-to-video-lip-sync (8cr/s, NEW). Motion control→kling/motion-control, wan/animate-move. Extend video→use veo_extend or runway_extend tools. NOTE: Sora 2 family removed (OpenAI API sunset Sept 2026). Use list_models filter="use-case" to explore.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNoSet false to submit and return immediately with the task_id (async mode) — then poll with check_task and fetch with download_result. Recommended for long generations to avoid client-side watchdog timeouts.
modelNoModel ID (e.g. "veo-3/text-to-video", "kling/image-to-video", "wan/3-0-video")veo-3/text-to-video
promptYesVideo description prompt
filenameNoOutput filename (saved to kie/assets/raw/). Auto-generated if omitted.
image_urlsNoInput image URLs for image-to-video models
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
aspect_ratioNoAspect ratio: 16:9, 9:16, or 1:116:9
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
model_optionsNoModel-specific options (duration, resolution, mode, etc.)
max_wait_secondsNoOverride the blocking-mode polling budget in seconds (defaults: image 600, video 900, audio 300, speech 300). Ignored when wait=false.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does substantial work: it discloses download location, per-model credit rates, failure modes (Veo I2V intermittently failing its audio pass without a sound cue), and the Content-Type requirement for input images. It omits auth/permission requirements, rate limits, and what a successful submission returns in blocking mode, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and destination are front-loaded, and nearly every clause routes a real decision. However, it is a single dense paragraph of model catalog data with heavy abbreviations ("50cr/s", "I2V"), which is unwieldy for a description field and would be better served as a browsable resource or via list_models.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 11-parameter tool with no annotations and no output schema, the description covers the decision space an agent needs: model choice, cost, download path, async workflow via check_task/download_result, and cross-tool routing. Return-value details are unnecessary since generation output is a downloaded file.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning on top of it: valid model ID examples, the model_options.draft=true pattern, when to use estimate_only before expensive runs, and the requirement that image_urls be served with their real Content-Type via upload_file.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ("Generate a video using kie.ai") and names the destination path. It clearly distinguishes itself from siblings like generate_image and generate_music, and explicitly delegates adjacent jobs (extend video → veo_extend/runway_extend, model discovery → list_models).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

A detailed model-selection guide maps use cases to concrete model IDs (cinematic, budget, image-to-video, lip-sync, motion control, avatar, first/last-frame), including per-use-case caveats and prices. It also states when to reach for other tools (veo_extend, runway_extend, upload_file, check_task, download_result).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_timestamped_lyricsB

NEW — Get word-level timestamped lyrics from a Suno track. Useful for karaoke, captioning, or sync.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesSuno task ID
audioIdYesAudio ID from sunoData
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).

TDQS

B3.2/5.0
Behavior2/5

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 omits whether the call is a paid submission, whether it is synchronous or returns a task to poll, and what the timestamp format is. The credits/estimate caveat lives only in the schema, not here.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with the core action front-loaded. The 'NEW —' prefix is marketing noise that earns no space but does little harm.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description should cover more: whether results are returned inline or via check_task/download_result, and what the timestamped payload looks like. It establishes the purpose but not the operational picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema itself documents taskId, audioId, max_credits and estimate_only in detail. The description adds no parameter meaning beyond 'from a Suno track', so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Get word-level timestamped lyrics from a Suno track') and even names the output granularity (word-level timestamps), which cleanly separates it from generate_lyrics and speech_to_text. It does not explicitly name a sibling to contrast against, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Useful for karaoke, captioning, or sync' implies the intended scenarios but gives no when-to-use vs when-not-to-use guidance and no prerequisites. Nothing tells the agent it needs an existing Suno task/audio before calling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

grok_image_editA

Edit an image with Grok Imagine Image 2.0 (4 credits). TWO MODES: (1) Region mode — pass task_id (a prior Grok 2.0 generation) + mask_indexs from grok_segment_map (run it first, free, pick regions by NAME): only those regions change. (2) Whole-image mode (NEW Aug 2026) — pass image_urls (ANY uploaded/external image, e.g. from upload_file) + aspect_ratio + prompt: instruction-based edit of the full image, no segmentation. Returns a new full image; result task_ids chain back into segment/edit for iterative refinement. Downloads to kie/assets/raw/.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesRegion mode: what the masked region(s) should become plus what to preserve. Whole-image mode: the edit instruction for the full image.
task_idNoRegion mode: source task ID — a Grok Image 2.0 generation (or a previous grok_image_edit result). Mutually exclusive with image_urls.
filenameNoOutput filename. Auto-generated if omitted.
image_urlsNoWhole-image mode: 1-5 public URL(s) of the image(s) to edit — any image, not just Grok generations (upload local files with upload_file first). Mutually exclusive with task_id.
mask_indexsNoRegion mode only: region indices from grok_segment_map (e.g. [1] or [0, 2]). Field name matches kie's API spelling.
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
aspect_ratioNoWhole-image mode: required output aspect ratio (auto keeps the input's shape).
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and does so well: it discloses the 4-credit cost, that segmentation is free, that the result is a NEW full image (implying the source is not destroyed), that result task_ids can be chained for iterative refinement, and that output downloads to kie/assets/raw/. It does not cover auth requirements or failure modes, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but well front-loaded: the core action and cost come first, then the two modes in parallel structure, then the return/chaining note. The parentheticals ("run it first, free", "NEW Aug 2026") are informative rather than filler, though the sentence is long enough that some readers may skim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by explaining what comes back (a new full image, reusable task_ids for chaining) and where files land. Combined with mode routing and the cost/estimate hint, an agent has everything needed to invoke this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description adds real signal by grouping the 9 parameters into two mutually exclusive modes and explaining cross-parameter interaction (task_id vs image_urls, when aspect_ratio applies). This helps an agent pick a valid parameter combination rather than just read individual field docs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Edit) and resource (image) with the exact model (Grok Imagine Image 2.0), and separates the tool into two named modes with distinct inputs. An agent can distinguish this from siblings like generate_image or grok_segment_map without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing: region mode requires task_id + mask_indexs obtained from grok_segment_map (which it says to run first, free), whole-image mode accepts any image_urls plus aspect_ratio. It names related tools (grok_segment_map, upload_file) and their role. It stops short of stating when NOT to use this tool versus e.g. generate_image, so not a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

grok_segment_mapA

FREE (0 credits). Segment a Grok Imagine Image 2.0 generation into NAMED regions for targeted editing. Returns each region's index, semantic name (e.g. "red apple", "wooden table"), and mask PNG URL. Workflow: generate_image model="grok-imagine-image-2-0/text-to-image" → grok_segment_map (this, free) → grok_image_edit with the mask_indexs you want changed. Only works on task_ids from a Grok Image 2.0 generation.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask ID from a completed generate_image call with model grok-imagine-image-2-0/text-to-image

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, but the description discloses key behaviors: it returns region index, semantic name, and mask PNG URL, and notes it is free. This adds useful context beyond the bare schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is slightly verbose but well-structured, covering purpose, usage, output, and cost in a logical flow. It is not excessively redundant and remains readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given only one parameter and a clear schema, the description sufficiently explains the tool's role in the workflow, its input constraints, and its output format, making it complete for an agent to decide when and how to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the task_id parameter in full (Task ID from a completed generate_image call with model grok-imagine-image-2-0/text-to-image). The description mainly repeats this requirement without adding new parameter-specific semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Explicitly states the tool segments a Grok Imagine Image 2.0 generation into named regions for targeted editing, with a clear verb and resource. It is distinct from sibling tools like generate_image and grok_image_edit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear usage conditions: only works on task_ids from a Grok Image 2.0 generation, and outlines a recommended workflow (generate_image -> grok_segment_map -> grok_image_edit).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_modelsA

List all available kie.ai models with their aspect ratios and model-specific options

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoFilter models by name (e.g. "flux", "gpt", "seedream")
verboseNoShow full option details for each model

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It clearly states the action (list) and output content (models with options). No mention of pagination or rate limits, but for a read-only list tool, this is sufficient and not misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that conveys purpose. It is concise but could be slightly more structured (e.g., mentioning that it returns a list). No wasted words, but could include more detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so description should clarify return structure. It mentions 'aspect ratios and model-specific options', which gives a hint but not full details. For a simple list tool, it is adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (both parameters are described). The description does not add new meaning beyond the schema; it echoes 'aspect ratios and options' which aligns with parameter 'verbose'. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all available kie.ai models and includes aspect ratios and options. It distinguishes from sibling tools like list_tasks and check_credits by focusing on models.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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. Usage is implied (e.g., before generation), but no conditions or exclusions are provided. Sibling tools are diverse, so guidance would be helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_raw_assetsA

List all files in kie/assets/raw/ waiting to be processed

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It implies a read-only, non-destructive operation. However, it does not disclose details like permissions required, behavior when the directory is empty, or if any filtering is applied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no redundancy, front-loads key information. Every word serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description should explain return format. It mentions 'list all files' but not the output structure (e.g., strings, objects). For a simple tool with no params, it is adequate but incomplete for a full understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the description's job is minimal. Baseline is 4. The description adds no extra meaning beyond the schema, but no value is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List all files'), the target resource ('in kie/assets/raw/'), and the context ('waiting to be processed'). It distinguishes from sibling 'list_tasks' by specifying a directory and state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lacks explicit guidance on when to use this tool versus alternatives. No mention of prerequisites, exclusion criteria, or comparison with sibling tools like 'list_tasks'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tasksB

List recent image generation tasks from this session

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It mentions listing recent tasks from the session, but does not clarify what 'recent' means, the nature of the session, or whether the operation has any side effects (though likely read-only). Minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no extraneous information. It is front-loaded with the verb and resource, making it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one parameter and no output schema, the description is minimally adequate but missing parameter explanation and clarification of 'recent' and 'session'. It does not reference return format or pagination. Given the simplicity, a score of 3 is appropriate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not mention the 'limit' parameter at all. With 0% schema description coverage, the agent has no additional context about what the limit does or how it affects results beyond the schema default of 10.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'recent image generation tasks from this session'. It distinguishes from siblings like 'check_task' (which likely checks a single task) and various generation tools by specifying the scope of recent session tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like 'check_task'. The description implies it is for listing, but does not state when not to use it or what to do if you need a different perspective.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prepare_voice_cloneA

EXPERIMENTAL (#20) — STEP 1 of Suno custom-voice cloning (FREE). Submit a clean vocal sample; polls to wait_validating, after which kie sends a verification phrase to your KIE_CALLBACK_URL for the voice owner to read aloud (then use create_voice_clone). ⚠️ Only clone a voice you OWN or have explicit permission to use. The completion step is not verified end-to-end and needs a real callback URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNoSet false to submit and return the task_id immediately.
languageNoLanguage of the vocal (e.g. "en")en
voice_urlYesPublic URL of a clean vocal sample (the voice to clone). Must be reachable by kie servers.
vocal_end_sNoEnd of the vocal segment, seconds
vocal_start_sNoStart of the vocal segment, seconds
max_wait_secondsNo

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully carries behavioral disclosure: it notes the tool is experimental (#20), the two-phase process (submit + callback), and caveats about the completion step not being verified end-to-end and requiring a real callback URL. This is thorough for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no wasted words. It front-loads the tool's identity (experimental, step 1, free) and efficiently covers the process, warnings, and limitations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 parameters, no output schema), the description explains the workflow and key risks adequately. It could detail error scenarios or return values, but for a step-1 tool, the provided information is sufficient for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 83%, so baseline is 3. The description adds context beyond schema by explaining the polling behavior for 'wait' and 'max_wait_seconds', and the callback server expectation. It does not detail each parameter but provides workflow context that aids usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is 'STEP 1 of Suno custom-voice cloning' and describes the action: submit a clean vocal sample, poll to wait_validating, and trigger a callback. It distinguishes from its sibling 'create_voice_clone' which is the next step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly marks the tool as step 1 and directs to use 'create_voice_clone' afterward. It includes a warning about only cloning owned voices. However, it lacks explicit 'when not to use' or alternative tools for other cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

profile_briefA

Get a vertical playbook before generating: the intake questions a professional in that domain would ask, model routing per deliverable with live costs, per-model prompt formulas, and multi-tool workflows. Call with no args to list available profiles. Covers image, video, and audio verticals (architecture, game assets, advertising, product photography, film, brand, web product, editorial, short-form social video, audio branding). Call this FIRST when the user's request belongs to a known vertical — then ask the user only the unanswered intake questions, conversationally.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoProfile id (omit to list profiles, or pass only `request` to auto-infer)
requestNoThe user's request verbatim — used to auto-infer the profile and echoed into the brief so intake can be filtered

TDQS

A4.5/5.0
Behavior4/5

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 what is returned, that costs are live, that the profile auto-infers from `request`, and that zero-arg calls enumerate profiles — enough to imply a read-only, advisory tool. It stops short of explicitly stating there are no side effects or that the brief is a snapshot versus a live fetch, so a small gap remains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and the when-to-call rule in the first two sentences; every sentence earns its place. The long parenthetical enumeration of verticals is the bulkiest part — useful scope information, but it bloats the text and could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only advisory tool with two fully documented optional params and no output schema, the description covers purpose, trigger condition, degenerate call, and return contents. Nothing critical is missing, though the absence of any note on whether the brief is cached or live keeps it short of complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it confirms that omitting everything lists profiles and that `request` drives auto-inference and is echoed back so intake can be filtered. That interaction semantics goes beyond the schema's field text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get') and a specific resource (a vertical playbook) and then enumerates exactly what that playbook contains: intake questions, model routing with live costs, per-model prompt formulas, multi-tool workflows. The vertical coverage list nails the scope, and it is clearly distinguishable from every sibling, which are all generation/listing tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit ordering guidance ('Call this FIRST when the user's request belongs to a known vertical'), an explicit degenerate call ('Call with no args to list available profiles'), and a follow-up workflow ('ask the user only the unanswered intake questions, conversationally'). An agent knows precisely when to reach for this instead of going straight to generate_image/generate_video.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

regenerate_voice_cloneB

EXPERIMENTAL (#20) — retry a failed/incomplete custom-voice task by its task_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesVoice task_id to retry
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).

TDQS

B3.2/5.0
Behavior2/5

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 flags the tool as EXPERIMENTAL, which is useful, but does not disclose credit consumption, idempotency, what happens to the original failed task's assets, or the meaning of max_credits/estimate_only behavior at the task level.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single efficient sentence with the experimental warning front-loaded before the actionable purpose. No wasted words, though brevity borders on under-specification rather than deliberate tightness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a retry/mutation tool with no annotations and no output schema, the description is thin: it never addresses cost, side effects, or the relationship to the sibling voice-clone tools. The EXPERIMENTAL marker and the schema coverage of parameters cover the basics, but richer guidance is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents task_id, max_credits, and estimate_only in detail. The description only reinforces task_id ('by its task_id') and adds nothing beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: retry a failed/incomplete custom-voice task, keyed by task_id. This clearly separates it from create_voice_clone and prepare_voice_clone, though it does not explicitly name those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage via 'retry a failed/incomplete' task, which hints at the recovery scenario. However, it never names the alternative tools or states the precondition (e.g., that a prior create_voice_clone must have failed), leaving the agent to infer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replace_sectionC

Replace a time range in a Suno track with new AI-generated content.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
waitNoSet false to submit and return immediately with the task_id (async mode) — then poll with check_task and fetch with download_result. Recommended for long generations to avoid client-side watchdog timeouts.
titleNo
promptYesPrompt for the replacement section
taskIdYesTask ID of the original Suno generation
audioIdYesAudio ID from sunoData
filenameNo
fullLyricsNoFull lyrics for context
infillEndSYesEnd time in seconds
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
infillStartSYesStart time in seconds
negativeTagsNo
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
max_wait_secondsNoOverride the blocking-mode polling budget in seconds (default: audio 300). Ignored when wait=false.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, yet it says nothing about whether the original track is overwritten or preserved, whether the edit is reversible, credit cost, or async behavior. Some of this (async mode, max_credits, estimate_only) is covered in the schema descriptions, but the free-text description itself contributes no behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler. It is efficient, though arguably too sparse for a 15-parameter mutation tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 15-parameter, 5-required mutation tool with no annotations and no output schema, the description is far too thin. It omits destructive/overwrite semantics, usage context, and how it relates to the numerous sibling audio tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 73%, moderately high, so the schema does most of the work. The description's mention of a 'time range' and 'new AI-generated content' loosely maps to infillStartS/infillEndS and prompt but adds no new semantics for the remaining parameters (tags, negativeTags, title, fullLyrics).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (replace) applied to a specific resource (a time range in a Suno track) with a clear outcome (new AI-generated content). This distinguishes it conceptually from siblings like extend_music or add_instrumental, though it never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 the many other audio-editing siblings (extend_music, cover_audio, add_instrumental, add_vocals). No prerequisites or context conditions are given, so the agent must infer usage entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

runway_extendC

Extend an existing Runway Aleph video with continuation content.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesDescription of what happens in the extension
qualityNo720p
task_idYesTask ID from original Runway generation
filenameNo
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).

TDQS

C2.9/5.0
Behavior2/5

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 says nothing about the fact that this is a paid, credit-consuming video operation (implied by max_credits/estimate_only params), whether it is asynchronous, or what happens to the original video — all critical for an expensive generation call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler. It is efficient, though its brevity leaves behavioral gaps that are captured elsewhere rather than here.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter, no-annotation, cost-bearing video generation tool with no output schema, one sentence is inadequate. It omits cost/credit behavior, prerequisites, and how it relates to the veo_extend sibling, leaving the agent under-informed before an expensive call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 71%, so most parameters are documented in the schema itself; the description adds no additional parameter meaning. The estimate_only, max_credits, and download_dir descriptions live entirely in the schema, which is adequate for this coverage level.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Extend'), the exact resource ('an existing Runway Aleph video'), and the output nature ('continuation content'). It clearly describes what the tool does, but does not differentiate itself from the sibling 'veo_extend', which presumably performs an analogous extension for a different model family.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, despite 'veo_extend' being a close sibling for the same extension use case. It also omits the prerequisite that the task_id must come from an original Runway generation, forcing the agent to infer this from the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

seedream_layer_decomposeA

Split ANY image into independent layers with Seedream 5.0 (billed per OUTPUT layer incl. base). tier="pro" (default): 7 cr @1K, 14 @2K, so a 3-layer split ≈ 21 cr. tier="flash" (NEW): 3.24 cr/layer at any size, so ≈ 10 cr. Works on any public image URL (upload local files with upload_file first). Describe which elements become layers in the prompt, optionally bounding them with x1 y1 x2 y2 tags. Downloads every layer image to kie/assets/raw/.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoauto, 1K, 1.5K or 2K. Pro: 7 cr/layer at 1K/1.5K, 14 at 2K. Flash: 3.24 at any size.auto
tierNopro = Seedream 5.0 Pro (7 cr/layer @1K, 14 @2K; prompt required). flash = Seedream 5.0 Flash (NEW: 3.24 cr/layer at any size; prompt optional — but WITHOUT a prompt it splits out every element: a poster gave 12 layers = 38.9 cr. Name the elements you want to cap the layer count).pro
promptNoWhich elements to separate into layers, e.g. "Separate the title text <bbox>179 58 809 197</bbox> and the parrot <bbox>330 274 641 991</bbox> into independent layers"
filenameNoBase output filename; layers get -2, -3... suffixes
image_urlYesPublic URL of the source image (singular — one image per call)
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
download_dirNoAbsolute directory to save into (created if missing). Defaults to the server's kie/assets/raw/.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
output_formatNopng recommended for transparencypng

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the per-layer billing model (including the base layer), the exact credit rates per tier/size, the side effect of downloading every layer to kie/assets/raw/, the public-URL-only constraint with upload_file as the workaround, and the max_credits submission guard. It omits failure/overwrite behavior and whether the call is blocking or async.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action, then cost, then workflow in a compact block with no filler sentences. There is mild redundancy, since the tier/size credit rates appear in both the description and the schema descriptions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nine-parameter, no-output-schema tool, the description covers the essentials: what it produces (per-layer downloads), where output lands, prerequisites, cost controls, and how to shape the split via prompt. Only error handling and output naming/ordering detail are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all nine parameters, including tier and size pricing. The description largely restates the tier/cost tradeoff rather than adding new meaning, though it does supply a concrete prompt example with <bbox> syntax that illustrates how the prompt parameter is used.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb+resource+engine: 'Split ANY image into independent layers with Seedream 5.0'. It is immediately distinguishable from siblings like generate_image, grok_image_edit, or audio tools, and it even names the upload_file prerequisite for local files.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives real selection guidance — tier='pro' vs tier='flash' with cost tradeoffs, the warning that flash without a prompt explodes layer count (12 layers = 38.9 cr), and 'use estimate_only before expensive runs'. It never names an alternative tool to use instead, so it falls short of the 5-bar.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

separate_vocalsC

Separate vocals from instrumentals, or split into individual stems. Downloads to kie/assets/raw/.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNosplit_stem_advanced = NEW finer multi-stem split (market API). separate_vocal=vocals+instrumental, split_stem=individual instrumentsseparate_vocal
waitNoSet false to submit and return immediately with the task_id (async mode) — then poll with check_task and fetch with download_result.
taskIdYesTask ID of the Suno generation
audioIdYesAudio ID from sunoData
filenameNo
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
max_wait_secondsNoOverride the blocking-mode polling budget in seconds (default: audio 300). Ignored when wait=false.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full behavioral burden. It does disclose the default download destination (kie/assets/raw/), which is useful, but it omits that this submits a credit-consuming paid job, that it blocks by default, and that async submission/polling is possible — all behaviors an agent needs to avoid surprises.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core action and ending with the download side effect. Nothing is padded, though the extreme brevity leaves gaps it could have filled cheaply.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter paid generation tool with no annotations and no output schema, the description is thin: it does not mention the required taskId/audioId inputs, credit consumption, or the async submit-then-poll workflow. The rich inline schema descriptions compensate substantially, but the top-level description is only minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 89%, so the schema already documents nearly every parameter, including the type enum's three modes, wait/async behavior, and credit guardrails. The description adds no syntax or format detail beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb (separate/split) and resource (vocals, instrumentals, individual stems), so the agent immediately knows the operation. However it never distinguishes itself from the close sibling audio_isolation, which plausibly overlaps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says what it does but gives no when-to-use guidance, no prerequisites (it needs an existing Suno taskId/audioId), and no routing versus siblings such as audio_isolation or add_vocals/add_instrumental. The 'or split into individual stems' phrasing hints at the type enum but does not explain when each mode is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

speech_to_textB

Transcribe audio to text using ElevenLabs Scribe v1. Supports diarization and audio event tagging. Returns transcription text.

ParametersJSON Schema
NameRequiredDescriptionDefault
diarizeNoIdentify different speakers
audio_urlYesAudio URL to transcribe
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
language_codeNoLanguage code (e.g. "en", "es"). Auto-detected if omitted.
tag_audio_eventsNoTag non-speech audio events (laughter, music, etc.)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses the model and that diarization/event tagging are supported, but says nothing about whether the call is synchronous or returns a task id for check_task, credit cost, audio length/format limits, or failure modes — all material for a 6-parameter media tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core action and engine, then capabilities, then return type. With no output schema present, the 'Returns transcription text' line earns its place rather than repeating structured data.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description covers purpose, engine, optional features, and return type adequately. It omits the async/task lifecycle (check_task exists as a sibling), cost behavior, and input constraints, leaving real gaps for an agent invoking it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each of the 6 parameters is already documented, giving a baseline of 3. The description restates two of them (diarization, audio event tagging) without adding syntax, defaults, or interaction rules, so it does not rise above the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Transcribe audio to text') and names the underlying engine (ElevenLabs Scribe v1), which unambiguously separates it from the text-to-speech siblings like generate_tts. It stops short of explicitly contrasting with any named sibling or stating scope limits (duration, size), so it lands just under a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use or when-not-to-use guidance and names no alternatives. Useful routing hints such as 'use estimate_only before expensive runs' exist only in the schema property text, not in the description the agent sees first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spend_reportA

Where did the credits go? Totals kie.ai spend from this server's task history (kie/assets/task-history.jsonl under the project root) over the last N days, grouped by model or day. Uses the ACTUAL credits kie charged when known, looks up missing ones from kie (refresh), and falls back to published prices (marked "est."). Failed tasks are listed separately (kie normally refunds them).

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLook-back window in days
refreshNoLook up actual charges from kie for tasks that lack them (up to 40 per call)
group_byNomodel

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the data-resolution order (actual charged credits → live kie lookup via refresh → published prices marked 'est.') and that failed/refunded tasks are reported separately. It omits any note on permissions, network cost of refresh, or degraded behavior when refresh is false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense paragraph, front-loaded with the question the tool answers, then the mechanics. All sentences carry information, though the rhetorical opener costs a few tokens for little semantic gain.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description does the necessary work: it explains the grouping dimension, the 'est.' marker, and separate listing of failed tasks, so an agent can anticipate the shape of results. It stops short of describing the return structure precisely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% and the description adds real meaning for refresh ('looks up missing ones from kie'), explaining the fallback chain the flag controls. It adds context beyond the schema's flat parameter descriptions, though 'days' and 'group_by' add nothing new.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Totals kie.ai spend from this server's task history') and names the exact data source (kie/assets/task-history.jsonl). It is clearly distinguishable from generation siblings and even from balance-oriented tools like check_credits.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'last N days' framing and grouping options imply when to reach for it, but no explicit when-to-use or alternative is given (e.g. check_credits for remaining balance vs this for historical spend). Usage is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upload_extend_audioA

NEW — Extend uploaded audio (NOT a Suno track) with new AI-generated content. For Suno tracks, use extend_music instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNoSet false to submit and return immediately with the task_id (async mode) — then poll with check_task and fetch with download_result. Recommended for long generations to avoid client-side watchdog timeouts.
modelNoV5
styleNoStyle tags for the extension
titleNo
promptNoLYRICS for the extended section (sung as written); omit and set instrumental=true for an instrumental extension.
filenameNo
uploadUrlYesURL of the audio file to extend
continueAtYesREQUIRED in practice: second where the extension starts (> 0 and < the upload's length). kie fails every request without it.
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
instrumentalNo
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).
max_wait_secondsNoOverride the blocking-mode polling budget in seconds (default: audio 300). Ignored when wait=false.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it does disclose that this is a generative extension of an uploaded asset. However it omits behavioral traits an agent would want — that it submits a credit-billing generation, the async/polling option, and long-run timeouts — though much of that is covered in the schema. Given zero annotation coverage and a two-sentence description, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste, and the routing distinction is front-loaded in the first clause. The 'NEW —' marker is a minor framing tag rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter generation tool with no annotations and no output schema, the description is very thin — it covers only the routing distinction and says nothing about async behavior, credit accounting, or return handling. The rich per-parameter schema descriptions do much of the heavy lifting, which keeps this at minimum-viable rather than inadequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 69%, and the description adds no parameter-level meaning whatsoever. With majority-but-not-full schema coverage, the baseline of 3 applies; the description does nothing to compensate for the remaining undocumented parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Extend uploaded audio with new AI-generated content') and, critically, states the scope boundary ('NOT a Suno track'). It distinguishes itself from sibling extend_music without the reader needing to open either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit routing rule: use this tool for uploaded audio, use extend_music for Suno tracks. The alternative sibling is named and the condition that selects it is stated, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upload_fileA

Upload a file to kie.ai and get a public URL back. Image files are named by their REAL format (magic bytes), so a JPEG saved as .png is uploaded as .jpg — kie serves files with a Content-Type taken from the name, and Veo I2V rejects a mismatch. Use this to upload local images/audio/video before passing them to generation tools (image-to-image, image-to-video, reference/ingredient inputs). PREFER file_path for local files. Files expire after 3 days (kie temp storage).

ParametersJSON Schema
NameRequiredDescriptionDefault
file_urlNoURL of file to upload — must be PUBLICLY reachable by kie.ai servers (no localhost/private IPs, no auth-gated or expired links). For local files use file_path
file_nameNoCustom filename (optional)
file_pathNoAbsolute path to a local file on the machine running this MCP server (the normal case for stdio setups). The server reads and streams the bytes itself — reliable at any size, unlike base64_data. PREFERRED for local files.
base64_dataNoBase64-encoded file data — raw base64 or a full data: URI. Whitespace and base64url are normalized and the data:<mime>;base64, prefix is stripped automatically (its MIME infers the extension if file_name is omitted). WARNING: payloads above ~10-12K chars (observed ceiling ~11.7K, #68) are silently truncated in transit as a tool argument — use file_path for local files; base64_data is a fallback for remote/HTTP-mode callers with small payloads.
upload_pathNoStorage directory (e.g. "images", "audio", "video")uploads

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and discloses important behavior: files expire after 3 days, image files are named by real magic-byte format rather than extension, Content-Type follows the name, and Veo I2V rejects mismatches. This is rich operational context beyond 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and stays dense without obvious filler. It is slightly run-on and could be structured more clearly, but every sentence contributes relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description covers what matters for correct invocation: return value, expiry behavior, naming/Content-Type caveats, intended usage, and parameter preference. The fully documented schema covers the remaining parameter details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter in detail. The description only restates the preference for file_path over other input methods, adding little meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: upload a file to kie.ai and get a public URL back. It distinguishes itself from generation siblings by framing itself as a preparatory upload utility used before passing files to generation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly says to use this before passing local images/audio/video to generation tools and explicitly prefers file_path for local files, which routes the agent among input parameters. It does not mention when not to use it or name a sibling upload alternative such as upload_extend_audio.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

veo_extendB

Extend an existing Veo 3.1 video with additional content. Requires taskId from a previous Veo generation.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNofast
seedsNoRandom seed (10000-99999) for variation control
promptYesDescription of what happens in the extension
task_idYesTask ID from original Veo generation
filenameNo
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does not disclose that this is a paid, likely async generation that may need polling via check_task, or any permission/credit implications. The schema's estimate_only hint alludes to expensive runs, but the description itself adds essentially nothing beyond the operation name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences with the operation and its prerequisite front-loaded, no filler. It is concise and readable, though arguably too terse for an 8-parameter generation tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter, no-output-schema, no-annotation generation tool, the description is thin: it omits cost behavior, async task lifecycle, and return expectations. The rich schema fields partly compensate, but the description leaves the agent under-informed on how the call actually behaves.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, and the schema already documents the key parameters including the cost controls (max_credits, estimate_only). The description only echoes task_id's origin, which the schema also states, so it adds little beyond structured data. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (extend) and resource (an existing Veo 3.1 video), which distinguishes it from generic generation siblings like generate_video. The 'Veo 3.1' qualifier helps separate it from runway_extend, though that differentiation is left implicit rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The prerequisite 'Requires taskId from a previous Veo generation' is stated, which implies when the tool applies. However there is no explicit comparison to alternatives such as runway_extend or veo_upscale_1080p/4k, so the agent must infer when to pick this over those siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

veo_upscale_1080pB

Upscale a Veo 3.1 video to 1080p resolution. Requires taskId from a completed Veo generation.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNoVideo index if multiple outputs
task_idYesTask ID from completed Veo generation
filenameNo
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full behavioral burden, and it does very little: it never says whether upscaling creates a new asset or replaces the source, how long it takes, that it costs credits, or how the result is surfaced. The only behavioral fact conveyed is the source-task dependency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, and the capability is front-loaded before the precondition. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter mutation-style tool with no annotations and no output schema, the description covers purpose and the required source ID but omits cost/credit implications, output handling (filename/download_dir relationship), and the estimate-only workflow. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 83%, so the schema already documents index, max_credits, download_dir and estimate_only well; baseline is 3. The description's phrase "completed Veo generation" adds a small amount of meaning to task_id (the task must be finished, not merely submitted), but nothing beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (upscale), resource (Veo 3.1 video) and target outcome (1080p), which implicitly separates it from the sibling veo_upscale_4k. It stops short of naming or contrasting the sibling explicitly, so differentiation is inferable rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Requires taskId from a completed Veo generation" gives one real precondition, which is useful routing information. It never says when to pick this over veo_upscale_4k, or references the estimate_only pre-flight path that the schema recommends for 1080p upgrades.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

veo_upscale_4kA

Upscale a Veo 3.1 video to 4K resolution. Takes 5-10 minutes. Requires taskId from completed Veo generation.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNoVideo index if multiple outputs
task_idYesTask ID from completed Veo generation
filenameNo
max_creditsNoRefuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.
download_dirNoAbsolute directory to save the file(s) into (created if missing). Defaults to the server's kie/assets/raw/. Must be absolute — the MCP server's working directory is not the caller's.
estimate_onlyNoReturn the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).

TDQS

A4/5.0
Behavior3/5

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 does disclose a genuine behavioral trait beyond the schema — the 5-10 minute runtime — but says nothing about cost implications, whether the source video is preserved or replaced, or output delivery.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action, then runtime, then the prerequisite. Every sentence earns its place with zero filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description covers the essential call preconditions and latency, while schema fields handle cost guards and output directory. Remaining gaps — whether the original asset persists and what the returned reference looks like — are modest for a 4K upscale call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 83%, above the 80% threshold, so the schema already documents nearly all six parameters (including failure/refund behavior for max_credits). The description only restates the task_id prerequisite and adds no syntax or format detail beyond it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Upscale a Veo 3.1 video to 4K resolution") and its resolution scope separates it cleanly from the sibling veo_upscale_1080p without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Specifies the precondition "Requires taskId from completed Veo generation," giving clear context for when this tool is callable. It does not explicitly contrast with veo_upscale_1080p or state when 4K is inappropriate (e.g., model/source limits), so no exclusions are offered.

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.

  1. 34 tool updatesv5.8.0
    • Changedadd_instrumental2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedadd_vocals2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedaudio_isolation2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedboost_style2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedconvert_to_wav2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedcover_audio2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedcreate_music_video2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedcreate_omni_character2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedcreate_omni_voice2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedextend_music2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedgenerate_dialogue2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedgenerate_gemini_tts2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedgenerate_image2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedgenerate_lyrics2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedgenerate_mashup2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedgenerate_midi2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedgenerate_music2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedgenerate_sfx2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedgenerate_sounds2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedgenerate_tts2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedgenerate_video2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedget_timestamped_lyrics2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedgrok_image_edit2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedregenerate_voice_clone2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedreplace_section2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedrunway_extend2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedseedream_layer_decompose2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedseparate_vocals2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedspeech_to_text2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Addedspend_report
    • Changedupload_extend_audio2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedveo_extend2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedveo_upscale_1080p2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
    • Changedveo_upscale_4k2 fields changed
      • addedInput schema / properties / estimate_only
        Added value: +{
        +  "description": "Return the estimated credit cost WITHOUT submitting anything. Use before expensive runs (video, 4K, 1080p upgrades, layer splits).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Refuse to submit if the estimated cost exceeds this many credits (overrides KIE_MAX_CREDITS_PER_CALL). Estimates come from published rates; kie bills the actual amount.",
        +  "type": "number"
        +}
  2. 10 tool updatesv5.5.0
    • Changedadd_instrumental1 field changed
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "V3_5",
        -  "V4",
        -  "V4_5",
        -  "V4_5PLUS",
        -  "V4_5ALL",
        -  "V5",
        -  "V5_5"
        -]New value: +[
        +  "V4",
        +  "V4_5",
        +  "V4_5PLUS",
        +  "V4_5ALL",
        +  "V5",
        +  "V5_5",
        +  "V6",
        +  "V6_MINI",
        +  "V6_WILD"
        +]
    • Changedadd_vocals1 field changed
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "V3_5",
        -  "V4",
        -  "V4_5",
        -  "V4_5PLUS",
        -  "V4_5ALL",
        -  "V5",
        -  "V5_5"
        -]New value: +[
        +  "V4",
        +  "V4_5",
        +  "V4_5PLUS",
        +  "V4_5ALL",
        +  "V5",
        +  "V5_5",
        +  "V6",
        +  "V6_MINI",
        +  "V6_WILD"
        +]
    • Changedcover_audio1 field changed
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "V3_5",
        -  "V4",
        -  "V4_5",
        -  "V4_5PLUS",
        -  "V4_5ALL",
        -  "V5",
        -  "V5_5"
        -]New value: +[
        +  "V4",
        +  "V4_5",
        +  "V4_5PLUS",
        +  "V4_5ALL",
        +  "V5",
        +  "V5_5",
        +  "V6",
        +  "V6_MINI",
        +  "V6_WILD"
        +]
    • Changedextend_music2 fields changed
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "V3_5",
        -  "V4",
        -  "V4_5",
        -  "V4_5PLUS",
        -  "V4_5ALL",
        -  "V5",
        -  "V5_5"
        -]New value: +[
        +  "V4",
        +  "V4_5",
        +  "V4_5PLUS",
        +  "V4_5ALL",
        +  "V5",
        +  "V5_5",
        +  "V6",
        +  "V6_MINI",
        +  "V6_WILD"
        +]
      • changedInput schema / properties / prompt / description
        Previous value: -"Prompt for the extension"New value: +"LYRICS for the extended section (Suno sings this text). Give real lyric lines; a short instruction like \"add an outro\" is rejected as malformed lyrics (error 531, refunded)."
    • Changedgenerate_mashup1 field changed
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "V3_5",
        -  "V4",
        -  "V4_5",
        -  "V4_5PLUS",
        -  "V4_5ALL",
        -  "V5",
        -  "V5_5"
        -]New value: +[
        +  "V4",
        +  "V4_5",
        +  "V4_5PLUS",
        +  "V4_5ALL",
        +  "V5",
        +  "V5_5",
        +  "V6",
        +  "V6_MINI",
        +  "V6_WILD"
        +]
    • Changedgenerate_music1 field changed
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "V3_5",
        -  "V4",
        -  "V4_5",
        -  "V4_5PLUS",
        -  "V4_5ALL",
        -  "V5",
        -  "V5_5"
        -]New value: +[
        +  "V4",
        +  "V4_5",
        +  "V4_5PLUS",
        +  "V4_5ALL",
        +  "V5",
        +  "V5_5",
        +  "V6",
        +  "V6_MINI",
        +  "V6_WILD"
        +]
    • Changedgenerate_sounds1 field changed
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "V3_5",
        -  "V4",
        -  "V4_5",
        -  "V4_5PLUS",
        -  "V4_5ALL",
        -  "V5",
        -  "V5_5"
        -]New value: +[
        +  "V4",
        +  "V4_5",
        +  "V4_5PLUS",
        +  "V4_5ALL",
        +  "V5",
        +  "V5_5",
        +  "V6",
        +  "V6_MINI",
        +  "V6_WILD"
        +]
    • Changedseedream_layer_decompose3 fields changed
      • changedInput schema / properties / size / description
        Previous value: -"1K/1.5K = 7 cr per layer, 2K = 14"New value: +"auto, 1K, 1.5K or 2K. Pro: 7 cr/layer at 1K/1.5K, 14 at 2K. Flash: 3.24 at any size."
      • addedInput schema / properties / tier
        Added value: +{
        +  "default": "pro",
        +  "description": "pro = Seedream 5.0 Pro (7 cr/layer @1K, 14 @2K; prompt required). flash = Seedream 5.0 Flash (NEW: 3.24 cr/layer at any size; prompt optional — but WITHOUT a prompt it splits out every element: a poster gave 12 layers = 38.9 cr. Name the elements you want to cap the layer count).",
        +  "enum": [
        +    "pro",
        +    "flash"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "image_url",
        -  "prompt"
        -]New value: +[
        +  "image_url"
        +]
    • Changedseparate_vocals2 fields changed
      • changedInput schema / properties / type / description
        Previous value: -"separate_vocal=vocals+instrumental, split_stem=individual instruments"New value: +"split_stem_advanced = NEW finer multi-stem split (market API). separate_vocal=vocals+instrumental, split_stem=individual instruments"
      • changedInput schema / properties / type / enum
        Previous value: -[
        -  "separate_vocal",
        -  "split_stem"
        -]New value: +[
        +  "separate_vocal",
        +  "split_stem",
        +  "split_stem_advanced"
        +]
    • Changedupload_extend_audio4 fields changed
      • changedInput schema / properties / continueAt / description
        Previous value: -"Timestamp in seconds where to start the extension"New value: +"REQUIRED in practice: second where the extension starts (> 0 and < the upload's length). kie fails every request without it."
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "V3_5",
        -  "V4",
        -  "V4_5",
        -  "V4_5PLUS",
        -  "V4_5ALL",
        -  "V5",
        -  "V5_5"
        -]New value: +[
        +  "V4",
        +  "V4_5",
        +  "V4_5PLUS",
        +  "V4_5ALL",
        +  "V5",
        +  "V5_5",
        +  "V6",
        +  "V6_MINI",
        +  "V6_WILD"
        +]
      • changedInput schema / properties / prompt / description
        Previous value: -"Description of the extension content"New value: +"LYRICS for the extended section (sung as written); omit and set instrumental=true for an instrumental extension."
      • changedInput schema / required
        Previous value: -[
        -  "uploadUrl"
        -]New value: +[
        +  "uploadUrl",
        +  "continueAt"
        +]
  3. 5 tool updatesv5.3.0
    • Changedgenerate_gemini_tts2 fields changed
      • changedInput schema / properties / model / description
        Previous value: -"flash = Gemini 3.1 Flash TTS (most expressive, 200+ inline tags, best <60s); pro = Gemini 2.5 Pro TTS (more stable long-form). Same price."New value: +"flash = Gemini 3.1 Flash TTS (most expressive, 200+ inline tags, best <60s; ~4.2 cr/min). flash-3.8 = Gemini 3.8 Flash TTS (NEW Sept 2026, same inputs, ~1.9 cr/min, ~40% cheaper per clip in live tests). flash-lite = Gemini 3.8 Flash Lite TTS (NEW, cheapest at ~1.3 cr/min; draft/bulk narration). pro = Gemini 2.5 Pro TTS (more stable long-form, ~4.2 cr/min). 3.8 prices are kie limited-time pricing until 2026-12-31."
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "flash",
        -  "pro"
        -]New value: +[
        +  "flash",
        +  "flash-3.8",
        +  "flash-lite",
        +  "pro"
        +]
    • Changedgenerate_video1 field changed
      • changedInput schema / properties / model / description
        Previous value: -"Model ID (e.g. \"veo-3/text-to-video\", \"sora/text-to-video\", \"kling/image-to-video\")"New value: +"Model ID (e.g. \"veo-3/text-to-video\", \"kling/image-to-video\", \"wan/3-0-video\")"
    • Changedgrok_image_edit6 fields changed
      • addedInput schema / properties / aspect_ratio
        Added value: +{
        +  "description": "Whole-image mode: required output aspect ratio (auto keeps the input's shape).",
        +  "enum": [
        +    "auto",
        +    "1:1",
        +    "2:3",
        +    "3:2",
        +    "16:9",
        +    "9:16"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / image_urls
        Added value: +{
        +  "description": "Whole-image mode: 1-5 public URL(s) of the image(s) to edit — any image, not just Grok generations (upload local files with upload_file first). Mutually exclusive with task_id.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "maxItems": 5,
        +  "type": "array"
        +}
      • changedInput schema / properties / mask_indexs / description
        Previous value: -"Region indices to edit, from grok_segment_map (e.g. [1] or [0, 2]). Field name matches kie's API spelling."New value: +"Region mode only: region indices from grok_segment_map (e.g. [1] or [0, 2]). Field name matches kie's API spelling."
      • changedInput schema / properties / prompt / description
        Previous value: -"What the masked region(s) should become, plus what to preserve (e.g. \"change the background to a sunset beach, keep the apple unchanged\")"New value: +"Region mode: what the masked region(s) should become plus what to preserve. Whole-image mode: the edit instruction for the full image."
      • changedInput schema / properties / task_id / description
        Previous value: -"Source task ID — a Grok Image 2.0 generation (or a previous grok_image_edit result)"New value: +"Region mode: source task ID — a Grok Image 2.0 generation (or a previous grok_image_edit result). Mutually exclusive with image_urls."
      • changedInput schema / required
        Previous value: -[
        -  "task_id",
        -  "prompt",
        -  "mask_indexs"
        -]New value: +[
        +  "prompt"
        +]
    • Addedprofile_brief
    • Addedseedream_layer_decompose
  4. 3 tool updatesv4.8.0
    • Addedgrok_image_edit
    • Addedgrok_segment_map
    • Changedupload_file3 fields changed
      • changedInput schema / properties / base64_data / description
        Previous value: -"Base64-encoded file data — raw base64 or a full data: URI. Whitespace and base64url are normalized and the data:<mime>;base64, prefix is stripped automatically (its MIME infers the extension if file_name is omitted). NOTE: very large images can be truncated when passed as a tool argument — if you get a length/invalid error, prefer file_url with a public URL."New value: +"Base64-encoded file data — raw base64 or a full data: URI. Whitespace and base64url are normalized and the data:<mime>;base64, prefix is stripped automatically (its MIME infers the extension if file_name is omitted). WARNING: payloads above ~10-12K chars (observed ceiling ~11.7K, #68) are silently truncated in transit as a tool argument — use file_path for local files; base64_data is a fallback for remote/HTTP-mode callers with small payloads."
      • addedInput schema / properties / file_path
        Added value: +{
        +  "description": "Absolute path to a local file on the machine running this MCP server (the normal case for stdio setups). The server reads and streams the bytes itself — reliable at any size, unlike base64_data. PREFERRED for local files.",
        +  "type": "string"
        +}
      • changedInput schema / properties / file_url / description
        Previous value: -"URL of file to upload — must be PUBLICLY reachable by kie.ai servers (no localhost/private IPs, no auth-gated or expired links). For local files use base64_data"New value: +"URL of file to upload — must be PUBLICLY reachable by kie.ai servers (no localhost/private IPs, no auth-gated or expired links). For local files use file_path"
  5. 42 tool updatesv4.7.0
    • First observedadd_instrumental
    • First observedadd_vocals
    • First observedaudio_isolation
    • First observedboost_style
    • First observedcheck_credits
    • First observedcheck_task
    • First observedconvert_to_wav
    • First observedcover_audio
    • First observedcreate_music_video
    • First observedcreate_omni_character
    • First observedcreate_omni_voice
    • First observedcreate_voice_clone
    • First observeddownload_result
    • First observedextend_music
    • First observedgenerate_cover_art
    • First observedgenerate_dialogue
    • First observedgenerate_gemini_tts
    • First observedgenerate_image
    • First observedgenerate_lyrics
    • First observedgenerate_mashup
    • First observedgenerate_midi
    • First observedgenerate_music
    • First observedgenerate_persona
    • First observedgenerate_sfx
    • First observedgenerate_sounds
    • First observedgenerate_tts
    • First observedgenerate_video
    • First observedget_timestamped_lyrics
    • First observedlist_models
    • First observedlist_raw_assets
    • First observedlist_tasks
    • First observedprepare_voice_clone
    • First observedregenerate_voice_clone
    • First observedreplace_section
    • First observedrunway_extend
    • First observedseparate_vocals
    • First observedspeech_to_text
    • First observedupload_extend_audio
    • First observedupload_file
    • First observedveo_extend
    • First observedveo_upscale_1080p
    • First observedveo_upscale_4k

TDQS

B3.2/5.0

Scored across 47 tools

Disambiguation3/5

Most tools have distinct purposes, but there is notable overlap in the audio/music generation cluster (generate_sfx vs generate_sounds, generate_tts vs generate_gemini_tts, generate_music vs generate_mashup/cover_audio) and multiple extend/upscale tools (veo_extend vs runway_extend, veo_upscale_1080p vs veo_upscale_4k) that could confuse an agent without careful reading.

Naming Consistency4/5

Predominantly consistent verb_noun snake_case (generate_image, generate_video, extend_music), but several tools use bare nouns or noun_verb ordering (spend_report, audio_isolation, cover_audio, add_vocals, convert_to_wav), which slightly breaks the pattern.

Tool Count2/5

47 tools is heavy for a single MCP server and far exceeds the typical 3-15 range. Many are niche Suno/kie.ai variants that could be consolidated or moved into sub-tools, making discovery and selection arduous for an agent.

Completeness4/5

Coverage is broad and deep: generation, editing, upscaling, extension, voice cloning, transcription, credits, and asset management are all present. Some operations (e.g., delete/cleanup of raw assets, batch operations, account/API key management) are missing, but the core lifecycle is well covered.

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers