Skip to main content
Glama

suno_upload_audio

Uploads external audio to Suno for later Cover, Samples, or Mashup operations; use standard mode for normal uploads and enhanced mode for authorized files standard mode cannot process.

Instructions

Upload external audio for use in subsequent operations.

Use standard mode for normal uploads. Use enhanced mode only when standard
upload cannot process authorized audio; it returns a task_id for suno_get_task.
Enhanced audio IDs support Cover, Samples, and Mashup.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "audio_url": "<audio_url>"
    },
    "name": "suno_upload_audio"
  }
}

Input Schema

NameRequiredDescriptionDefault
modeNoUpload mode. standard preserves normal upload behavior; enhanced handles some authorized audio that standard mode cannot process, costs 1.87 Credits on success, and runs asynchronously.standard
nameNoAudio name, required for enhanced mode and limited to 100 characters.
audio_urlYesPublic URL of the audio file. Enhanced mode requires HTTPS and audio you own or are authorized to use.
persona_idNoOptional voice Persona ID, standard mode only. Associates the source audio with this voice for suno_upload_cover. Create the voice, upload and cover on the same service channel.
callback_urlNoOptional HTTPS webhook URL for the enhanced upload result.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.1.24
    • addedInput schema / properties / persona_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional voice Persona ID, standard mode only. Associates the source audio with this voice for suno_upload_cover. Create the voice, upload and cover on the same service channel.",
      +  "title": "Persona Id"
      +}
  2. Changed4 schema fields changedv0.1.15
    • changedInput schema / properties / audio_url / description
      Previous value: -"Public URL of the audio file to upload. The URL must be directly accessible (CDN link, cloud storage URL, etc.)."New value: +"Public URL of the audio file. Enhanced mode requires HTTPS and audio you own or are authorized to use."
    • addedInput schema / properties / callback_url
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional HTTPS webhook URL for the enhanced upload result.",
      +  "title": "Callback Url"
      +}
    • addedInput schema / properties / mode
      Added value: +{
      +  "default": "standard",
      +  "description": "Upload mode. standard preserves normal upload behavior; enhanced handles some authorized audio that standard mode cannot process, costs 1.87 Credits on success, and runs asynchronously.",
      +  "enum": [
      +    "standard",
      +    "enhanced"
      +  ],
      +  "title": "Mode",
      +  "type": "string"
      +}
    • addedInput schema / properties / name
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Audio name, required for enhanced mode and limited to 100 characters.",
      +  "title": "Name"
      +}
  3. Addedv0.1.5
  4. Removedv0.1.3
  5. First observedv0.1.0

TDQS

A3.6/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, and it does cover the async task_id handoff to suno_get_task and the post-upload capabilities of enhanced IDs (Cover, Samples, Mashup). However, credit cost and HTTPS/ownership requirements live only in the schema, not the description, and nothing is said about failure behavior or whether an upload can be undone.

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 sentences, front-loaded with the action, then mode guidance, then the enhanced-mode consequence. No filler; the only blemish is the stray line breaks that split a single sentence across lines.

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?

An output schema exists, so return-shape explanation is unnecessary, and the description adequately covers the async flow and what enhanced IDs unlock. The one meaningful omission is the absence of any comparison to sibling upload tools, which matters given five-plus similarly named tools in the set.

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 including mode, persona_id and callback_url is already documented in structured data; baseline is 3. The description reinforces the standard-vs-enhanced split but adds no syntax, size or format 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?

The description names a specific verb and resource ('Upload external audio') and adds the purpose ('for use in subsequent operations'), so an agent knows this is an ingest step feeding later tools. It stops short of differentiating from the similarly named siblings suno_upload_cover and suno_upload_extend, which is exactly where an agent is most likely to pick the wrong tool.

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?

Mode selection is handled explicitly: 'Use standard mode for normal uploads. Use enhanced mode only when standard upload cannot process authorized audio.' That is a real when/when-not rule plus a downstream pointer to suno_get_task. What is missing is tool-level routing — nothing says whether to use this versus suno_upload_cover or suno_upload_extend for source audio.

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