Skip to main content
Glama

Analyse a song from a URL

analyze_song

Start the analysis of a song at a public audio URL (MP3, WAV, FLAC, M4A, AAC, OGG or AIFF; 30 s to 10 min). Needs an API key on the MCP connection. Returns a song_id; poll get_song until status is 'done' (typically 60–90 seconds, up to ~2 minutes when busy). Uses one free song, or 25 credits (mode 'full') / 10 credits (mode 'dna').

Input Schema

NameRequiredDescriptionDefault
modeNofull = Song DNA + video direction (story, shot plan with prompts), 25 credits. dna = Song DNA only (no story, no shot plan), 10 credits. A free song covers either.full
titleNo
artistNo
lyricsNoOptional: the song's lyrics as plain text. Used for the exact words (timings still come from the audio).
audio_urlYesPublic http(s) URL of the audio file

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / mode
      Added value: +{
      +  "default": "full",
      +  "description": "full = Song DNA + video direction (story, shot plan with prompts), 25 credits. dna = Song DNA only (no story, no shot plan), 10 credits. A free song covers either.",
      +  "enum": [
      +    "full",
      +    "dna"
      +  ],
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / lyrics
      Added value: +{
      +  "description": "Optional: the song's lyrics as plain text. Used for the exact words (timings still come from the audio).",
      +  "type": "string"
      +}
  3. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false/openWorldHint=true/destructiveHint=false; the description goes well beyond, disclosing the API-key requirement on the connection, credit billing impact (1 free song, or 25/10 credits), asynchronous job semantics, and expected completion time. That is exactly the operational context an agent needs before committing spend.

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 dense sentences, front-loaded with the action and input, then workflow, then cost. The credit figures partly restate the mode enum description in the schema, which is mild redundancy, but nothing is filler.

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?

With no output schema, the description carries the return contract by naming song_id and the polling loop, plus auth, cost, format constraints, and timing. For a 5-parameter job-starter tool with only 60% schema coverage, this is complete enough to invoke correctly.

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 60% and the description adds real value for audio_url (accepted formats, 30 s–10 min bound) and reinforces the mode cost split. It says nothing about title, artist, or how lyrics interacts beyond what the schema already notes, so a small gap remains for the undocumented title/artist fields.

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 action ('Start the analysis of a song') and the exact input resource ('at a public audio URL'), including accepted formats and duration bounds. It implicitly but effectively separates itself from get_song, which the description casts as the polling reader rather than the starter.

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?

Gives an explicit workflow: call this, get a song_id, then poll get_song until status is 'done'. It even sets latency expectations (60–90 s typical, up to ~2 min busy) and distinguishes the two modes by what they produce and cost, so the agent knows when to pick each.

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.