Skip to main content
Glama

create_mashup

Create a Suno mashup task on RunAPI using two uploaded audio URLs, with vocal-mode options, returning a task ID, status, and output URLs.

Instructions

Create a Suno task on RunAPI (create mashup). 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.
styleNoMusic style. Declared type: string.
titleNoMusic title. Declared type: string.
lyricsNoExact mashup lyrics to sing. Declared type: string.
promptNoMashup brief for automatic lyrics. Declared type: string.
persona_idNoPersona ID. Declared type: string.
timeout_msNo
vocal_modeYesVocal generation mode. Declared type: string. Known values: "auto_lyrics", "exact_lyrics", "instrumental".
audio_weightNoAudio weight (0-1). Declared type: number.
callback_urlNoWebhook URL for async notifications. Declared type: string.
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".
upload_url_listYesTwo audio URLs to mashup. Declared type: array.
poll_interval_msNo
weirdness_constraintNoWeirdness constraint (0-1). Declared type: number.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed33 schema fields changedv0.4.0
    • addedInput schema / additionalProperties
      Added value: +{}
    • 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 / lyrics / description
      Previous value: -"Exact mashup lyrics to sing."New value: +"Exact mashup lyrics to sing. 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 / 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: -"Mashup brief for automatic lyrics."New value: +"Mashup brief for automatic lyrics. Declared type: string."
    • removedInput schema / properties / prompt / maxLength
      Removed value: -5000
    • changedInput schema / properties / style / description
      Previous value: -"Music style."New value: +"Music style. 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 / title / description
      Previous value: -"Music title."New value: +"Music title. Declared type: string."
    • removedInput schema / properties / title / maxLength
      Removed value: -80
    • changedInput schema / properties / upload_url_list / description
      Previous value: -"Two audio URLs to mashup."New value: +"Two audio URLs to mashup. Declared type: array."
    • removedInput schema / properties / upload_url_list / maxItems
      Removed value: -2
    • removedInput schema / properties / upload_url_list / minItems
      Removed value: -2
    • 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"
    • removedInput schema / properties / vocal_mode / anyOf
      Removed value: -[
      -  {
      -    "const": "auto_lyrics",
      -    "type": "string"
      -  },
      -  {
      -    "const": "exact_lyrics",
      -    "type": "string"
      -  },
      -  {
      -    "const": "instrumental",
      -    "type": "string"
      -  }
      -]
    • changedInput schema / properties / vocal_mode / description
      Previous value: -"Vocal generation mode."New value: +"Vocal generation mode. Declared type: string. Known values: \"auto_lyrics\", \"exact_lyrics\", \"instrumental\"."
    • addedInput schema / properties / vocal_mode / 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 / 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"
    • addedInput schema / properties / vocal_mode / anyOf
      Added value: +[
      +  {
      +    "const": "auto_lyrics",
      +    "type": "string"
      +  },
      +  {
      +    "const": "exact_lyrics",
      +    "type": "string"
      +  },
      +  {
      +    "const": "instrumental",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / vocal_mode / enum
      Removed value: -[
      -  "auto_lyrics",
      -  "exact_lyrics",
      -  "instrumental"
      -]
    • removedInput schema / properties / vocal_mode / type
      Removed value: -"string"
  5. Changed15 schema fields changedv0.2.4
    • 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 / lyrics / description
      Added value: +"Exact mashup lyrics to sing."
    • 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: +"Mashup brief for automatic lyrics."
    • addedInput schema / properties / style / description
      Added value: +"Music style."
    • addedInput schema / properties / style_weight / description
      Added value: +"Style adherence weight (0-1)."
    • addedInput schema / properties / title / description
      Added value: +"Music title."
    • addedInput schema / properties / upload_url_list / description
      Added value: +"Two audio URLs to mashup."
    • addedInput schema / properties / upload_url_list / maxItems
      Added value: +2
    • addedInput schema / properties / upload_url_list / minItems
      Added value: +2
    • addedInput schema / properties / vocal_gender / description
      Added value: +"Vocal gender."
    • addedInput schema / properties / vocal_mode / description
      Added value: +"Vocal generation mode."
    • addedInput schema / properties / weirdness_constraint / description
      Added value: +"Weirdness constraint (0-1)."
  6. Changed1 schema field changedv0.1.9
    • changedInput schema / required
      Previous value: -[
      -  "vocal_mode",
      -  "upload_url_list"
      -]New value: +[
      +  "upload_url_list",
      +  "vocal_mode"
      +]
  7. Changed6 schema fields changedv0.1.2
    • addedInput schema / properties / callback_url / type
      Added value: +"string"
    • addedInput schema / properties / lyrics / 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 / title / type
      Added value: +"string"
  8. First observedv0.1.0

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 implies a task/async workflow and mentions the return fields, but says nothing about permissions, whether the created task is billed, what happens on failure, or how 'wait'/'timeout_ms'/'poll_interval_ms' change behavior. For a 17-parameter mutation tool this 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.

Conciseness4/5

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

Two short, front-loaded sentences with no filler; the purpose leads and the return shape follows. It is efficiently written, if a bit spare given the tool's complexity.

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?

A 17-parameter creation tool with no annotations and no output schema deserves more than naming three return fields. Nothing explains the required upload_url_list/vocal_mode relationship, polling behavior, or side effects, leaving meaningful 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 88%, so the schema already documents nearly all 17 parameters (including vocal_mode enum values). The description adds no parameter meaning beyond that, so the baseline of 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+resource ('Create a Suno task ... mashup') and identifies the underlying service (RunAPI), which distinguishes it from sibling audio tools like cover_audio or extend_music. It stops short of explicitly contrasting with those siblings, but the purpose 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?

No when-to-use guidance, no prerequisites, no exclusions, and no routing to alternatives among the many audio-mutation siblings (blend_lyrics, add_samples, stitch_audio). 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.