Skip to main content
Glama

analyze_song

Extract beat, structure, frequency, and energy data—plus optional source separation—from a music file to support light show sequencing.

Instructions

Analyze a music file for light show sequencing.

Performs full audio analysis: beat detection, song structure, frequency spectrum, energy profile, and optionally source separation.

Args: mp3_path: Path to the .mp3 file to analyze

Input Schema

NameRequiredDescriptionDefault
mp3_pathYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.3/5.0
Behavior3/5

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

No annotations exist, so the description carries the full load. It does disclose the analysis dimensions, which is real behavioral content, but omits whether results are persisted and reusable, how long a full song analysis takes, and what happens on unsupported/corrupt files. It also mentions 'optionally source separation' with no parameter to enable it, leaving a dangling ambiguity.

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 purpose, then the analysis list, then the arg. The Args block mostly restates the schema but is short enough to be harmless. Slightly clipped line breaks aside, every sentence contributes.

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?

With no output schema and no annotations, the description must cover both safety profile and return shape. It names the analysis categories but not the structure of what comes back (maps, timings, keyed by second?), and never says whether the result is cached for the sibling getters. Adequate to invoke, insufficient to use the result confidently.

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 0%, so the description must compensate — and for a single parameter it largely does, clarifying that mp3_path is a filesystem path and that the format must be .mp3. It does not say whether relative or absolute paths are accepted or whether the file must be pre-uploaded.

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+resource (analyze a music file) and enumerates the concrete artifacts produced: beat detection, structure, spectrum, energy profile, optional source separation. This distinguishes it from the narrower sibling getters (get_beat_map, get_song_structure, get_energy_profile), though it never explicitly says it is the upstream step that feeds them.

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

Usage Guidelines2/5

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

No when-to-use guidance at all. With siblings like get_beat_map and get_energy_profile present, an agent needs to know whether analyze_song must run first or whether those tools read an existing analysis — nothing here says. No preconditions, no cost/latency warning for what is clearly an expensive operation.

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