Skip to main content
Glama

extend_music

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

Instructions

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

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

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv5.8.0
    • 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. Changed2 schema fields changedv5.5.0
    • 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)."
  3. First observedv4.7.0

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.