Skip to main content
Glama

prepare_song

Idempotent

Prepare a song without spending a credit. Show the user its language, sound, duration and one-song credit cost before starting. Reuse the same requestId when retrying this exact request. Supported languages: English, Spanish, German, French, Brazilian Portuguese, Italian, Dutch, Polish, Swedish, Japanese, Korean. Does not clone voices or edit existing audio.

Input Schema

NameRequiredDescriptionDefault
inputYes
uiLocaleYesen
requestIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / input / properties / language / enum
      Previous value: -[
      -  "en",
      -  "es",
      -  "de",
      -  "fr",
      -  "pt-BR"
      -]New value: +[
      +  "en",
      +  "es",
      +  "de",
      +  "fr",
      +  "pt-BR",
      +  "it",
      +  "nl",
      +  "pl",
      +  "sv",
      +  "ja",
      +  "ko"
      +]
    • changedInput schema / properties / uiLocale / enum
      Previous value: -[
      -  "en",
      -  "es",
      -  "de",
      -  "fr",
      -  "pt-BR"
      -]New value: +[
      +  "en",
      +  "es",
      +  "de",
      +  "fr",
      +  "pt-BR",
      +  "it",
      +  "nl",
      +  "pl",
      +  "sv",
      +  "ja",
      +  "ko"
      +]
  2. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, but the description adds the crucial cost behavior (no credit charged), the retry contract tying requestId to idempotency, and the fact that it surfaces language, sound, duration and one-song cost before commitment. With no output schema, disclosing what the preview returns is genuinely valuable. It stops short of saying whether any server-side state is created by the preparation step.

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?

Four sentences, front-loaded with the no-cost hook, then the preview contents, then the retry rule, then scope limits. The 11-language enumeration is somewhat redundant with the schema enum but adds human-readable confirmation; otherwise there is little waste.

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 tool with a nested 8-field input, 0% schema coverage and no output schema, the description covers the value proposition, cost model and language support but omits the idea-vs-lyrics mode distinction that determines how the whole request is interpreted. Adequate orientation, but an agent could still mis-shape the input.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the burden, and it only covers requestId (idempotent retry semantics) and partially language/duration. The nested input's core fields — mode ('idea' vs 'lyrics'), idea, lyrics, direction, instrumental, title — plus uiLocale are never explained, leaving the most decision-relevant parameter (mode) undocumented.

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 ('prepare a song') and immediately qualifies it with 'without spending a credit' plus 'before starting', which distinguishes this preflight step from actually launching generation (the job start_song implies). It also rules out two adjacent capabilities (voice cloning, audio editing). It never names start_song as the follow-up, so the sibling routing is implied rather than stated.

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?

Gives concrete operational guidance: call this before starting, and reuse the same requestId when retrying this exact request. Exclusions are stated ('does not clone voices or edit existing audio'). What's missing is an explicit pointer to the tool to call after this preview succeeds.

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