Skip to main content
Glama

Render a song to audio

render
Idempotent

Use this when the user wants music, a song or jingle as audio (WAV, Ogg or Opus; ≤180 s, loops, stems). Send mtl or compose; it checks the song itself. Synth/samples/blend per part: topic=samples. Links last 2 h; https://moosetracker.app/acceptable-use.html Schema 3b8fe45c.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "render"
  }
}

Input Schema

NameRequiredDescriptionDefault
cueNo
lenNoExact seconds: a short song repeats its order (said in the result), a long one fades out; never silence
mtlNoSong in MTL text (describe topic=mtl). Send it whole each time; we keep none.
zipNo
bitsNoWAV bits
cuesNoOne file per cue
loopNoSeamless loop plus loop points
peakNoPeak dBFS
rateNoHz
tailNoRing-out seconds
genreNoFor the score check
rangeNoOrder positions only, e.g. "2-4"
stemsNoOne file per role
styleNoVoice palette; default chip
detailNoAdds score, per-section loudness and MIX flags with fixes
formatNoDefault wav; ogg = Vorbis 44.1 kHz; opus = Ogg Opus 48 kHz
composeNoInstead of mtl: {bpm, form, chords, parts:[{id,gen}]}. describe(topic="generators")
previewNoOne section (range, default 1), ≤20 s Opus, light quota, MIX flags
loudnessNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / description
      Previous value: -"Schema 9b20e675"New value: +"Schema 3b8fe45c"
  2. Changed5 schema fields changed
    • changedInput schema / description
      Previous value: -"Schema 415a8741"New value: +"Schema 9b20e675"
    • addedInput schema / properties / bits
      Added value: +{
      +  "default": 16,
      +  "description": "WAV bits",
      +  "enum": [
      +    16,
      +    24
      +  ],
      +  "type": "integer"
      +}
    • changedInput schema / properties / detail / description
      Previous value: -"Add length guide and score check"New value: +"Adds score, per-section loudness and MIX flags with fixes"
    • addedInput schema / properties / preview
      Added value: +{
      +  "description": "One section (range, default 1), ≤20 s Opus, light quota, MIX flags",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / rate
      Added value: +{
      +  "default": 44100,
      +  "description": "Hz",
      +  "enum": [
      +    44100,
      +    48000
      +  ],
      +  "type": "integer"
      +}
  3. Changed5 schema fields changed
    • changedInput schema / description
      Previous value: -"Schema d568427c"New value: +"Schema 415a8741"
    • changedInput schema / properties / len / description
      Previous value: -"Exact length in seconds: a short song is extended by repeating its order, a long one fades out at len. Never padded with silence."New value: +"Exact seconds: a short song repeats its order (said in the result), a long one fades out; never silence"
    • addedInput schema / properties / peak
      Added value: +{
      +  "description": "Peak dBFS",
      +  "maximum": 0,
      +  "minimum": -30,
      +  "type": "number"
      +}
    • addedInput schema / properties / range
      Added value: +{
      +  "description": "Order positions only, e.g. \"2-4\"",
      +  "type": "string"
      +}
    • addedInput schema / properties / tail
      Added value: +{
      +  "description": "Ring-out seconds",
      +  "maximum": 4,
      +  "minimum": 0,
      +  "type": "number"
      +}
  4. Changed1 schema field changed
    • changedInput schema / description
      Previous value: -"Schema 90ddc268"New value: +"Schema d568427c"
  5. Changed1 schema field changed
    • addedInput schema / description
      Added value: +"Schema 90ddc268"
  6. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=false, so the mutation profile is known. The description adds real behavioral context beyond that: output links expire after 2 hours, an acceptable-use policy applies, and the 180 s ceiling with loop/stem options. It omits cost/quota implications for a full render (only the schema mentions preview's light quota) and says nothing about failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The when-to-use clause is correctly front-loaded and the whole thing is short, but the middle is telegraphic to the point of ambiguity ("Send mtl or compose; it checks the song itself"), and the trailing "Schema 3b8fe45c" is pure noise duplicated in the input schema. Tightening the fragmentary clauses would raise clarity without adding length.

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 19-parameter render tool with a nested compose object and no output schema, the definition covers the input choices but leaves the result shape largely unexplained beyond formats and expiring links. It does not say what a render returns (files, stems, zip, score detail) or how the score check surfaces. Adequate but with clear gaps given the complexity.

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 already 84% across 19 parameters, so the schema does most of the work, including format, length, loop, stems and bits semantics. The description mostly restates those same options (formats, ≤180 s, loops, stems) and only adds a pointer to describe(topic="samples") for per-part generation. Baseline 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?

The description states a specific action and outcome: turning a song into audio in WAV, Ogg or Opus, with loops and stems, capped at 180 s. It also names the two input representations (mtl or compose), which distinguishes it from a composition-authoring sibling. It stops short of explicitly naming which sibling to use for authoring versus rendering.

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?

"Use this when the user wants music, a song or jingle as audio" gives a clear trigger condition, and "Send mtl or compose" tells the agent which inputs are accepted. The note that it "checks the song itself" signals no separate pre-validation step is needed. There is no explicit when-not guidance or routing to siblings such as song or describe beyond the topic pointers.

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