Skip to main content
Glama

Analyze music

analyze_music
Read-only

PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. READ: the structure of the user's track — tempo, beats, bars, sections, drops, gaps, kicks/snares/hats, 808s, filter openings — with program positions. Refuses when the user supplied no track (never choose music; the speech prosody grid is the clock then).

Input Schema

NameRequiredDescriptionDefault
music_idNo
project_idYesRequired immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, destructiveHint=false, openWorldHint=false), so the bar is lower. The description nonetheless adds real behavior: the project scoping constraint, that the result carries the project identity, and an explicit refusal path when no track was supplied — none of which the annotations convey. It does not explain pagination or result granularity, keeping it out of 5 territory.

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-loads the two operative labels (PROJECT-SCOPED, READ) so the agent can triage scope and operation type immediately. Dense but each clause carries information; the em-dash enumeration is long yet specific. No filler sentences.

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?

For a read-only analysis tool with no output schema, the description takes on the return-value burden and does so by enumerating the structural elements returned with program positions. Safety is covered by annotations and the refusal rule is stated. The remaining hole is music_id semantics, which is left entirely unexplained.

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?

With 50% schema coverage, the description needs to compensate. It reinforces the project_id scope ('acts only on the explicit project_id'), which the schema already documents, but the second parameter music_id is undocumented in both the schema and the description — an agent gets no guidance on when or how to supply it. Partial compensation only.

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 — 'READ: the structure of the user's track' — and enumerates the returned elements (tempo, beats, bars, sections, drops, gaps, drum hits, 808s, filter openings). This is far more than a tautology. It does not, however, explicitly differentiate itself from sibling get_audio_analysis, which an agent would plausibly confuse it with.

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?

'Refuses when the user supplied no track (never choose music; the speech prosody grid is the clock then)' gives a concrete when-not condition and names the fallback clock instead of leaving the agent to guess. It stops short of pointing at the actual sibling tool (e.g. get_audio_analysis) to call when a track does exist, so it is clear context with an exclusion rather than full alternative routing.

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.