Skip to main content
Glama

Cmp Run

cmp_run

Build and store a full comparison of a music render against a reference across stems, bars, and 16th-note steps, then return baseline summary metrics for drill-down analysis.

Instructions

Build and store a full comparison of your latest render (A) vs the reference (B): every stem (mix, drums, bass, other, vocals), every bar, every 16th step. stems: 'tracks' (your stems from stem_map; needs a full render(stems=True)), 'demucs' (separate your render with the reference's model: apples to apples, slower), 'none' (mix only). Returns the summary vs ceiling/floor baselines. Drill in with cmp_sections, cmp_bars, cmp_worst, cmp_zoom, cmp_arrangement; cmp_list shows progress across runs.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bNoref
labelNo
stemsNotracks
projectYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden. It discloses key behavioral traits: the tool stores the comparison ('store a full comparison'), requires a full render with stems for the 'tracks' option, notes that 'demucs' is slower, and returns summary vs ceiling/floor baselines. It does not mention authentication, rate limits, or whether the stored comparison persists across sessions, but the core operation and its requirements are well described.

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?

The description is front-loaded with the core action and scope, then efficiently lists enum options and routing to related tools. It packs a lot of information into a few sentences without repetition. The only minor inefficiency is the implicit assumption that the agent understands 'stem_map' and 'render(stems=True)' from context, which requires prior knowledge but is not wasted verbiage.

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?

Given the tool's complexity (4 parameters, no schema descriptions, no annotations, but an output schema exists), the description is quite complete. It explains the comparison scope, the stems behavior, the return summary, and how to drill down. It does not explain the 'label' or 'b' parameters in detail, but the presence of an output schema reduces the need to describe return values. It covers what an agent needs to invoke the tool correctly in most scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does so by explaining the semantics of the 'stems' parameter with all three enum values and their requirements ('tracks' needs a full render, 'demucs' uses the reference's model and is slower, 'none' is mix only). It also implies the 'b' parameter is the reference and 'project' is the target. The 'label' parameter is not explained, but the critical parameter receives detailed treatment, substantially adding value beyond the bare schema.

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 uses a specific verb+resource: 'Build and store a full comparison of your latest render (A) vs the reference (B)'. It clearly distinguishes the tool from the many siblings by naming the exact scope (every stem, bar, 16th step) and positioning it as the top-level comparison entry point. It does not explicitly name the sibling it is not, but the level of detail is sufficient for an agent to identify its role.

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?

The description explicitly states when to use this tool versus alternatives. It lists the valid enum values for the 'stems' parameter and explains the condition that selects each: 'tracks' needs a full render(stems=True), 'demucs' is apples to apples but slower, 'none' is mix only. It also routes the agent to drill-down tools (cmp_sections, cmp_bars, cmp_worst, cmp_zoom, cmp_arrangement) and to cmp_list for progress. This is comprehensive guidance for invocation and follow-up.

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