Skip to main content
Glama

sing

Start with a song idea and the bands you like. Three text calls write lyrics, arrange them, and identify what would clash with that arrangement. The arrangement and avoid-list become one musical di… text:Song idea -> text:Preferred bands -> join:Idea + musical references -> llm:Write lyrics -> join:Brief + finished lyrics -> llm:Arrange the song -> llm:What would clash? -> join:Arrangement + avoid-list -> music:Sing; returns audio (music-3) saved to disk (file path in result). Runs on NanoGPT — $0.37 deposit per call, paid in Nano (XNO) — settles at actual model cost + 20%, change returned; no account needed; last run $0.1502, ~2m 35s. Example: Audio sample (https://nanoodle.com/examples/gallery/#sing). A 170-second generated closing-credits song. Gemini 3.8 Flash reported clear gentle acoustic vocals and a chorus matching the supplied lyrics. This is model-assisted audio review, not human listening sign-off.

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": "sing"
  }
}

Input Schema

NameRequiredDescriptionDefault
Song_ideaNoText; default: "Write a wistful 90s trip-hop track about the singularity."; optional
_payment_idNoPayment id from this tool's previous payment-required response. Phase 3 only: after /x402/watch closes with status paid, call again with the same arguments plus this id to open the RESULTS stream. Do not pass it while payment is still pending — monitor the watch SSE first.
Write_lyricsNoSystem prompt; default: "Write original, singable lyrics from the song idea and musical references. Maximum 200 words. Use concrete images, an..."; optional
Preferred_bandsNoText; default: "Portishead, Massive Attack, Tricky"; optional
Arrange_the_songNoSystem prompt; default: "Write one compact music-generator prompt: a single paragraph, at most 60 words and 450 characters. Use the supplied i..."; optional
What_would_clashNoSystem prompt; default: "Read the actual arrangement. Name exactly three specific musical choices that would undermine its groove, instruments..."; optional

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • addedInput schema / properties / Arrange_the_song
      Added value: +{
      +  "description": "System prompt; default: \"Write one compact music-generator prompt: a single paragraph, at most 60 words and 450 characters. Use the supplied i...\"; optional",
      +  "type": "string"
      +}
    • removedInput schema / properties / Lyrics
      Removed value: -{
      -  "description": "System prompt; default: \"Write original singable lyrics from the brief, maximum 160 words. Plain language, concrete details, natural stresses ...\"; optional",
      -  "type": "string"
      -}
    • removedInput schema / properties / Musical_style
      Removed value: -{
      -  "description": "Text; default: \"Gentle acoustic folk, relaxed mid-tempo, warm solo vocal, fingerpicked guitar, soft brushed percussion. Clear words a...\"; optional",
      -  "type": "string"
      -}
    • addedInput schema / properties / Preferred_bands
      Added value: +{
      +  "description": "Text; default: \"Portishead, Massive Attack, Tricky\"; optional",
      +  "type": "string"
      +}
    • removedInput schema / properties / Song_Instructions
      Removed value: -{
      -  "description": "Text; default: \"Write a short original song for the closing credits of a cozy repair-shop game. Theme: fixing a small thing makes a h...\"; optional",
      -  "type": "string"
      -}
    • addedInput schema / properties / Song_idea
      Added value: +{
      +  "description": "Text; default: \"Write a wistful 90s trip-hop track about the singularity.\"; optional",
      +  "type": "string"
      +}
    • addedInput schema / properties / What_would_clash
      Added value: +{
      +  "description": "System prompt; default: \"Read the actual arrangement. Name exactly three specific musical choices that would undermine its groove, instruments...\"; optional",
      +  "type": "string"
      +}
    • addedInput schema / properties / Write_lyrics
      Added value: +{
      +  "description": "System prompt; default: \"Write original, singable lyrics from the song idea and musical references. Maximum 200 words. Use concrete images, an...\"; optional",
      +  "type": "string"
      +}
  2. Changed7 schema fields changed
    • removedInput schema / properties / Bands
      Removed value: -{
      -  "description": "Text; default: \"Bands liked:\\nPortishead, Massive Attack, Tricky\"; optional",
      -  "type": "string"
      -}
    • addedInput schema / properties / Lyrics
      Added value: +{
      +  "description": "System prompt; default: \"Write original singable lyrics from the brief, maximum 160 words. Plain language, concrete details, natural stresses ...\"; optional",
      +  "type": "string"
      +}
    • addedInput schema / properties / Musical_style
      Added value: +{
      +  "description": "Text; default: \"Gentle acoustic folk, relaxed mid-tempo, warm solo vocal, fingerpicked guitar, soft brushed percussion. Clear words a...\"; optional",
      +  "type": "string"
      +}
    • changedInput schema / properties / Song_Instructions / description
      Previous value: -"Text; default: \"Write a late-night 90s trip-hop torch song set under the last lit vermillion torii at Fushimi Inari, 3:17am. A rusted...\"; optional"New value: +"Text; default: \"Write a short original song for the closing credits of a cozy repair-shop game. Theme: fixing a small thing makes a h...\"; optional"
    • removedInput schema / properties / Style_System_Prompt
      Removed value: -{
      -  "description": "Text; default: \"You invent a musical style that fits the given lyrics. Reply with only the style, richly descriptive — no commentary....\"; optional",
      -  "type": "string"
      -}
    • removedInput schema / properties / System_prompt
      Removed value: -{
      -  "description": "System prompt; default: \"You are an award-winning songwriter. Write only the lyrics — no title, no commentary, no explanations.\\nPrinciples:\\n- ...\"; optional",
      -  "type": "string"
      -}
    • removedInput schema / properties / System_prompt_2
      Removed value: -{
      -  "description": "System prompt; default: \"Negate the style — what would go poorly, the worst you can imagine. No preamble or postamble.\"; optional",
      -  "type": "string"
      -}
  3. Changed3 schema fields changed
    • changedInput schema / properties / Bands / description
      Previous value: -"Text; default: \"Bands liked:\\nSoundgarden, XX\"; optional"New value: +"Text; default: \"Bands liked:\\nPortishead, Massive Attack, Tricky\"; optional"
    • changedInput schema / properties / Song_Instructions / description
      Previous value: -"Text; default: \"Write a wistful 90s trip-hop track about the singularity.\"; optional"New value: +"Text; default: \"Write a late-night 90s trip-hop torch song set under the last lit vermillion torii at Fushimi Inari, 3:17am. A rusted...\"; optional"
    • changedInput schema / properties / System_prompt_2 / description
      Previous value: -"System prompt; default: \"Negate the style - what would go poorly,  the worst you can imagine. No preamble or postamble.\"; optional"New value: +"System prompt; default: \"Negate the style — what would go poorly, the worst you can imagine. No preamble or postamble.\"; optional"
  4. First observed

TDQS

A3.8/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses the return artifact (audio, music-3, file path in the result), the payment mechanics ($0.37 deposit per call in Nano/XNO, settles at actual cost + 20%, change returned, no account needed), realistic latency (~2m 35s), last-run cost, and a candid caveat that output is model-assisted review rather than human listening sign-off.

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 purpose is front-loaded, but the body then mixes pipeline notation, truncated text ('one musical di…'), payment terms, a gallery link, and a review disclaimer in one dense block. Much of the payment/example detail could be split out, and the truncated fragment is wasted space.

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?

There is no output schema, so the description correctly explains the return (audio file saved to disk, path in result), and it covers cost, latency and the no-account payment model. The multi-phase payment/watch mechanics are only partially explained here, though the _payment_id schema description compensates, keeping this just short of complete.

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% and every parameter is optional with a documented default, so the schema already does the heavy lifting and baseline 3 applies. The description does add a little meaning by mapping the three system-prompt parameters onto ordered pipeline stages (write lyrics, arrange, identify clashes), but it adds no formats or constraints beyond what the schema states.

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 concrete outcome: it writes lyrics, arranges a song, builds an avoid-list, then runs a music model to produce audio (music-3) saved to disk. This clearly distinguishes it from siblings like character-sprites, photo-to-video and talking-avatar. It loses a point because the purpose is buried in pipeline arrows and payment logistics rather than stated upfront in a single crisp sentence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It tells the agent what inputs to start from (a song idea plus preferred bands) and implies this is the audio-generation path, but it never says when to choose this over alternatives or when not to use it. There are no prerequisites stated beyond the payment note, so usage is only implied.

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.