Skip to main content
Glama

extend_music

Extend an existing Suno music track by creating a task via RunAPI. Specify source audio and continue point; returns task ID, status, and output URLs.

Instructions

Create a Suno task on RunAPI (extend music). Returns a task id, status, and output URLs.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
waitNoPoll until the task reaches a terminal status.
modelNoRunAPI model slug for this model line.
styleNoStyle preset. Required in custom parameter mode. Declared type: string.
titleNoSong title. Required in custom parameter mode. Declared type: string.
lyricsNoExact lyrics. Only allowed when extending uploaded audio in custom parameter mode. Declared type: string.
promptNoExtension brief. Cannot be combined with lyrics. Declared type: string.
task_idNoSource task ID to extend. Provide one of task_id, audio_id, audio_url, or upload_url. Declared type: string.
audio_idNoSource audio ID to extend. Provide one of task_id, audio_id, audio_url, or upload_url. Declared type: string.
audio_urlNoSource audio URL to extend. Provide one of task_id, audio_id, audio_url, or upload_url. Declared type: string.
persona_idNoPersona ID. Declared type: string.
timeout_msNo
upload_urlNoUploaded source audio URL to extend. Provide one of task_id, audio_id, audio_url, or upload_url. Declared type: string.
continue_atNoSeconds into the source to continue from. Required in custom parameter mode. Declared type: number.
audio_weightNoAudio weight (0-1). Declared type: number.
callback_urlNoWebhook URL for async notifications. Declared type: string.
instrumentalNoWhen true, generate without vocals. Declared type: boolean.
persona_typeNoPersona type. Declared type: string. Known values: "style", "voice".
style_weightNoStyle adherence weight (0-1). Declared type: number.
vocal_genderNoVocal gender. Declared type: string. Known values: "male", "female".
negative_tagsNoStyles to avoid. Declared type: string.
parameter_modeYesInherit the source track's parameters (source) or supply custom ones (custom). Declared type: string. Known values: "source", "custom".
poll_interval_msNo
weirdness_constraintNoWeirdness constraint (0-1). Declared type: number.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed37 schema fields changedv0.4.0
    • addedInput schema / additionalProperties
      Added value: +{}
    • changedInput schema / properties / audio_id / description
      Previous value: -"Source audio ID to extend. Provide one of task_id, audio_id, audio_url, or upload_url."New value: +"Source audio ID to extend. Provide one of task_id, audio_id, audio_url, or upload_url. Declared type: string."
    • changedInput schema / properties / audio_url / description
      Previous value: -"Source audio URL to extend. Provide one of task_id, audio_id, audio_url, or upload_url."New value: +"Source audio URL to extend. Provide one of task_id, audio_id, audio_url, or upload_url. Declared type: string."
    • changedInput schema / properties / audio_weight / description
      Previous value: -"Audio weight (0-1)."New value: +"Audio weight (0-1). Declared type: number."
    • removedInput schema / properties / audio_weight / maximum
      Removed value: -1
    • removedInput schema / properties / audio_weight / minimum
      Removed value: -0
    • changedInput schema / properties / callback_url / description
      Previous value: -"Webhook URL for async notifications."New value: +"Webhook URL for async notifications. Declared type: string."
    • changedInput schema / properties / continue_at / description
      Previous value: -"Seconds into the source to continue from. Required in custom parameter mode."New value: +"Seconds into the source to continue from. Required in custom parameter mode. Declared type: number."
    • changedInput schema / properties / instrumental / description
      Previous value: -"When true, generate without vocals."New value: +"When true, generate without vocals. Declared type: boolean."
    • changedInput schema / properties / lyrics / description
      Previous value: -"Exact lyrics. Only allowed when extending uploaded audio in custom parameter mode."New value: +"Exact lyrics. Only allowed when extending uploaded audio in custom parameter mode. Declared type: string."
    • removedInput schema / properties / lyrics / maxLength
      Removed value: -5000
    • removedInput schema / properties / model / enum
      Removed value: -[
      -  "suno-v4",
      -  "suno-v4.5",
      -  "suno-v4.5-all",
      -  "suno-v4.5-plus",
      -  "suno-v5",
      -  "suno-v5.5",
      -  "suno-v6",
      -  "suno-v6-mini",
      -  "suno-v6-wild"
      -]
    • changedInput schema / properties / negative_tags / description
      Previous value: -"Styles to avoid."New value: +"Styles to avoid. Declared type: string."
    • removedInput schema / properties / parameter_mode / anyOf
      Removed value: -[
      -  {
      -    "const": "source",
      -    "type": "string"
      -  },
      -  {
      -    "const": "custom",
      -    "type": "string"
      -  }
      -]
    • changedInput schema / properties / parameter_mode / description
      Previous value: -"Inherit the source track's parameters (source) or supply custom ones (custom)."New value: +"Inherit the source track's parameters (source) or supply custom ones (custom). Declared type: string. Known values: \"source\", \"custom\"."
    • addedInput schema / properties / parameter_mode / type
      Added value: +"string"
    • changedInput schema / properties / persona_id / description
      Previous value: -"Persona ID."New value: +"Persona ID. Declared type: string."
    • removedInput schema / properties / persona_type / anyOf
      Removed value: -[
      -  {
      -    "const": "style",
      -    "type": "string"
      -  },
      -  {
      -    "const": "voice",
      -    "type": "string"
      -  }
      -]
    • changedInput schema / properties / persona_type / description
      Previous value: -"Persona type."New value: +"Persona type. Declared type: string. Known values: \"style\", \"voice\"."
    • addedInput schema / properties / persona_type / type
      Added value: +"string"
    • changedInput schema / properties / prompt / description
      Previous value: -"Extension brief. Cannot be combined with lyrics."New value: +"Extension brief. Cannot be combined with lyrics. Declared type: string."
    • removedInput schema / properties / prompt / maxLength
      Removed value: -5000
    • changedInput schema / properties / style / description
      Previous value: -"Style preset. Required in custom parameter mode."New value: +"Style preset. Required in custom parameter mode. Declared type: string."
    • removedInput schema / properties / style / maxLength
      Removed value: -1000
    • changedInput schema / properties / style_weight / description
      Previous value: -"Style adherence weight (0-1)."New value: +"Style adherence weight (0-1). Declared type: number."
    • removedInput schema / properties / style_weight / maximum
      Removed value: -1
    • removedInput schema / properties / style_weight / minimum
      Removed value: -0
    • changedInput schema / properties / task_id / description
      Previous value: -"Source task ID to extend. Provide one of task_id, audio_id, audio_url, or upload_url."New value: +"Source task ID to extend. Provide one of task_id, audio_id, audio_url, or upload_url. Declared type: string."
    • changedInput schema / properties / title / description
      Previous value: -"Song title. Required in custom parameter mode."New value: +"Song title. Required in custom parameter mode. Declared type: string."
    • removedInput schema / properties / title / maxLength
      Removed value: -80
    • changedInput schema / properties / upload_url / description
      Previous value: -"Uploaded source audio URL to extend. Provide one of task_id, audio_id, audio_url, or upload_url."New value: +"Uploaded source audio URL to extend. Provide one of task_id, audio_id, audio_url, or upload_url. Declared type: string."
    • removedInput schema / properties / vocal_gender / anyOf
      Removed value: -[
      -  {
      -    "const": "male",
      -    "type": "string"
      -  },
      -  {
      -    "const": "female",
      -    "type": "string"
      -  }
      -]
    • changedInput schema / properties / vocal_gender / description
      Previous value: -"Vocal gender."New value: +"Vocal gender. Declared type: string. Known values: \"male\", \"female\"."
    • addedInput schema / properties / vocal_gender / type
      Added value: +"string"
    • changedInput schema / properties / weirdness_constraint / description
      Previous value: -"Weirdness constraint (0-1)."New value: +"Weirdness constraint (0-1). Declared type: number."
    • removedInput schema / properties / weirdness_constraint / maximum
      Removed value: -1
    • removedInput schema / properties / weirdness_constraint / minimum
      Removed value: -0
  2. Changed1 schema field changedv0.3.6
    • changedInput schema / properties / model / enum
      Previous value: -[
      -  "suno-v4",
      -  "suno-v4.5",
      -  "suno-v4.5-all",
      -  "suno-v4.5-plus",
      -  "suno-v5",
      -  "suno-v5.5"
      -]New value: +[
      +  "suno-v4",
      +  "suno-v4.5",
      +  "suno-v4.5-all",
      +  "suno-v4.5-plus",
      +  "suno-v5",
      +  "suno-v5.5",
      +  "suno-v6",
      +  "suno-v6-mini",
      +  "suno-v6-wild"
      +]
  3. Changed10 schema fields changedv0.3.5
    • addedInput schema / properties / audio_weight / maximum
      Added value: +1
    • addedInput schema / properties / audio_weight / minimum
      Added value: +0
    • addedInput schema / properties / lyrics / maxLength
      Added value: +5000
    • addedInput schema / properties / prompt / maxLength
      Added value: +5000
    • addedInput schema / properties / style / maxLength
      Added value: +1000
    • addedInput schema / properties / style_weight / maximum
      Added value: +1
    • addedInput schema / properties / style_weight / minimum
      Added value: +0
    • addedInput schema / properties / title / maxLength
      Added value: +80
    • addedInput schema / properties / weirdness_constraint / maximum
      Added value: +1
    • addedInput schema / properties / weirdness_constraint / minimum
      Added value: +0
  4. Changed12 schema fields changedv0.3.2
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / parameter_mode / anyOf
      Added value: +[
      +  {
      +    "const": "source",
      +    "type": "string"
      +  },
      +  {
      +    "const": "custom",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / parameter_mode / enum
      Removed value: -[
      -  "source",
      -  "custom"
      -]
    • removedInput schema / properties / parameter_mode / type
      Removed value: -"string"
    • addedInput schema / properties / persona_type / anyOf
      Added value: +[
      +  {
      +    "const": "style",
      +    "type": "string"
      +  },
      +  {
      +    "const": "voice",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / persona_type / enum
      Removed value: -[
      -  "style",
      -  "voice"
      -]
    • removedInput schema / properties / persona_type / type
      Removed value: -"string"
    • addedInput schema / properties / poll_interval_ms / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / timeout_ms / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / vocal_gender / anyOf
      Added value: +[
      +  {
      +    "const": "male",
      +    "type": "string"
      +  },
      +  {
      +    "const": "female",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / vocal_gender / enum
      Removed value: -[
      -  "male",
      -  "female"
      -]
    • removedInput schema / properties / vocal_gender / type
      Removed value: -"string"
  5. Changed20 schema fields changedv0.2.4
    • addedInput schema / properties / audio_id / description
      Added value: +"Source audio ID to extend. Provide one of task_id, audio_id, audio_url, or upload_url."
    • addedInput schema / properties / audio_url / description
      Added value: +"Source audio URL to extend. Provide one of task_id, audio_id, audio_url, or upload_url."
    • addedInput schema / properties / audio_weight / description
      Added value: +"Audio weight (0-1)."
    • addedInput schema / properties / callback_url / description
      Added value: +"Webhook URL for async notifications."
    • addedInput schema / properties / continue_at / description
      Added value: +"Seconds into the source to continue from. Required in custom parameter mode."
    • addedInput schema / properties / instrumental / description
      Added value: +"When true, generate without vocals."
    • addedInput schema / properties / lyrics / description
      Added value: +"Exact lyrics. Only allowed when extending uploaded audio in custom parameter mode."
    • addedInput schema / properties / negative_tags / description
      Added value: +"Styles to avoid."
    • addedInput schema / properties / parameter_mode / description
      Added value: +"Inherit the source track's parameters (source) or supply custom ones (custom)."
    • addedInput schema / properties / persona_id / description
      Added value: +"Persona ID."
    • addedInput schema / properties / persona_type / description
      Added value: +"Persona type."
    • addedInput schema / properties / prompt / description
      Added value: +"Extension brief. Cannot be combined with lyrics."
    • addedInput schema / properties / style / description
      Added value: +"Style preset. Required in custom parameter mode."
    • addedInput schema / properties / style_weight / description
      Added value: +"Style adherence weight (0-1)."
    • addedInput schema / properties / task_id / description
      Added value: +"Source task ID to extend. Provide one of task_id, audio_id, audio_url, or upload_url."
    • addedInput schema / properties / title / description
      Added value: +"Song title. Required in custom parameter mode."
    • addedInput schema / properties / upload_url / description
      Added value: +"Uploaded source audio URL to extend. Provide one of task_id, audio_id, audio_url, or upload_url."
    • addedInput schema / properties / vocal_gender / description
      Added value: +"Vocal gender."
    • addedInput schema / properties / weirdness_constraint / description
      Added value: +"Weirdness constraint (0-1)."
    • addedInput schema / required
      Added value: +[
      +  "parameter_mode"
      +]
  6. Changed11 schema fields changedv0.1.2
    • addedInput schema / properties / audio_id / type
      Added value: +"string"
    • addedInput schema / properties / audio_url / type
      Added value: +"string"
    • addedInput schema / properties / callback_url / type
      Added value: +"string"
    • addedInput schema / properties / lyrics / type
      Added value: +"string"
    • addedInput schema / properties / negative_tags / type
      Added value: +"string"
    • addedInput schema / properties / persona_id / type
      Added value: +"string"
    • addedInput schema / properties / prompt / type
      Added value: +"string"
    • addedInput schema / properties / style / type
      Added value: +"string"
    • addedInput schema / properties / task_id / type
      Added value: +"string"
    • addedInput schema / properties / title / type
      Added value: +"string"
    • addedInput schema / properties / upload_url / type
      Added value: +"string"
  7. First observedv0.1.0

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 disclosure burden. It notes the return shape (task id, status, output URLs), which is useful since there is no output schema, but says nothing about asynchronous generation, the wait/polling behavior, cost, or auth, which matter for a 23-param generation task.

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 filler; the only weakness is that the parenthetical restates the tool name rather than adding 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 a 23-parameter music-generation tool with no annotations and no output schema, the description is thin: it covers the return payload but omits async/polling semantics and any usage framing. The rich schema compensates for most parameter gaps, keeping this at a minimum-viable 3.

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 91%, so the schema already documents nearly every parameter, including mutual exclusivity of prompt/lyrics and the source-vs-custom mode. The description adds no parameter meaning beyond that, so the baseline 3 applies.

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

Purpose3/5

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

The description states a verb and a loose resource ("Create a Suno task ... (extend music)"), but "extend music" largely restates the tool name and never explains what extending means (continuing a source track from a point) or how it differs from siblings like text_to_music or cover_audio.

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 mention of choosing between source/custom parameter_mode as a decision, and no alternatives named among the many sibling generation tools. An agent must infer the entire usage context from the name and schema.

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