Skip to main content
Glama

Generate Song

generate_song
Destructive

Render the prepared song in the user's Abracadabrax account. Call this only after the user explicitly asked to generate, never on your own initiative: it spends the user's credits and sends the generation inputs to the configured model provider. Optional settings overwrite the saved project. Repeating with unchanged settings reuses a running or completed job, but a failed job can start a new paid attempt. Returns the job id and status; poll get_song_job for the audio. It needs the user's Abracadabrax account: the client asks the user to sign in when it is missing. Use this only to create a new song from a style description and (optional) lyrics. Do not use it for uploaded or existing audio: covers, remixes, extending or editing a track, stem separation, voice cloning or transcription.

Input Schema

NameRequiredDescriptionDefault
styleNoGenre, mood, tempo, instruments and vocal style, e.g. 'upbeat indie pop, female vocals, 120 bpm, bright guitars'.
titleNoSong title.
lyricsNoFull lyrics with section tags such as [Verse], [Chorus], [Bridge]. Write them with the user first; omit for an instrumental.
model_idNoAbracadabrax song model id: minimax-music (default, vocals + lyrics), acestep-create (fast, lyrics, chosen length), elevenlabs-music (studio, no lyrics), stable-audio (instrumental).
model_nameNo
project_idYes
duration_secNoSong length in seconds for models that support it (30, 60, 120, 180, 300).
instrumentalNoTrue for a track without vocals.

Output Schema

NameRequiredDescriptionDefault
jobNo
stateYes
balanceNo
messageYes
projectYes
dashboard_urlYes
credits_requiredYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare destructive/non-readonly/non-idempotent, but the description supplies the substance behind them: it spends the user's credits, transmits generation inputs to a third-party model provider, optional settings overwrite the saved project, a repeated call with unchanged settings reuses a job while a failed job can trigger a new paid attempt, and sign-in is required. That is far more than the annotations convey.

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 action and the credit-spend warning, and nearly every sentence carries routing or side-effect information. It runs long and the final 'Use this only to create a new song from a style description' sentence partially restates the opening, which is the only real redundancy.

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?

An output schema exists so return values needn't be detailed, yet the description still notes the job id/status return and the get_song_job polling path. Auth, cost, provider exposure, overwrite behavior, idempotency nuance, and scope exclusions are all covered for an 8-parameter mutating tool.

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 75% and the schema already documents style, lyrics, model_id, duration_sec and instrumental well. The description still adds non-obvious semantics for the optional parameters ('Optional settings overwrite the saved project') and frames style/lyrics as the creation inputs, though it says nothing about the undocumented model_name parameter.

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 ('Render the prepared song') and then narrows it precisely: 'Use this only to create a new song from a style description and (optional) lyrics.' It is clearly distinguishable from get_song_job (polling), prepare_song_project, and update_song_project without opening any 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?

Explicit when-to-use ('only after the user explicitly asked to generate, never on your own initiative'), explicit alternatives ('poll get_song_job for the audio'), and a long explicit exclusion list (covers, remixes, extending, editing, stem separation, voice cloning, transcription). Nothing about routing is left to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources