Skip to main content
Glama

theory_analyze

Read-onlyIdempotent

Analyzes the chords a MIDI clip's notes spell, with symbols and numerals per resolution; estimates the key unless supplied so you can understand a part before writing around it.

Instructions

The chords a MIDI clip's notes spell, with symbols and numerals, one per resolution_beats (default a bar); the key is estimated from the notes unless given. Use it to understand a user's part before writing around it.

Input Schema

NameRequiredDescriptionDefault
keyNo
slotYes0-based clip slot (scene row) on the track.
trackYesTrack id (UUID string from tracks.list, stable) or 0-based index (shifts when tracks are added or moved).
resolution_beatsNoShortest chord in beats.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior, so the description's job is to add context — and it does: it discloses that the key is auto-estimated unless supplied, that output is chord symbols plus Roman numerals, and that segmentation is driven by resolution_beats defaulting to one bar. It does not cover degenerate cases such as a clip with no notes, but the added behavioral detail is substantive.

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?

Two sentences, zero filler, and the output shape is packed into the first clause. The only weakness is front-loading: it leads with the output noun phrase rather than the action, so the agent must read to the second sentence to get the usage cue.

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?

With no output schema, the description takes on the burden of describing the return value, and it does so adequately (symbols and numerals, one per resolution_beats). The nested key object and the track/slot addressing are fully documented in the schema, so the remaining gap is only edge-case behavior on empty or non-MIDI clips.

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 75%, so the schema carries most weight, yet the description still adds meaning: it explains that key is optional because the key is inferred from the notes, and that resolution_beats defaults to a bar (the schema only says 'shortest chord in beats' with a 0.25–64 range). Track and slot semantics come entirely from the schema, which documents them well.

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 names the resource and output precisely: the chords a MIDI clip's notes spell, rendered as symbols and numerals at a given resolution. It implicitly distinguishes itself from generation siblings (theory_chord, theory_progression, clips_write_progression) by being an analysis of an existing clip, though the sentence opens with a bare noun phrase rather than a verb, slightly delaying the 'this analyzes' framing.

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?

'Use it to understand a user's part before writing around it' gives one concrete workflow, which is real guidance rather than none. But it never excludes alternatives — an agent can't tell from this whether to reach for clips_get_notes for raw note data or theory_harmonize when it wants derived parts instead of an analysis.

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

Deploy Server

Other Tools