Skip to main content
Glama

plan_mix

Checks a FUSER mix before playback, returning its length and timeline segments and listing every vocal, beat, bass, key, tempo, stretch, or phrase issue that would make the plan unplayable.

Instructions

Check a mix without playing it. Returns its length and the timeline in segments, each with the bars it covers, the time it starts, the key, tempo and energy, what each deck plays with the pitch shift and stretch FUSER gives it, and checks: two vocals, no beat, no bass, two basses, one song on every deck, pitched far, no version in the session's mode, stretched too far. Checks over the whole mix follow: steps off the phrase, stretches where nothing changes, discs dropped twice, key clashes, tempo and energy jumps. A plan that cannot play is refused with every problem listed.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "plan_mix"
  }
}

Input Schema

NameRequiredDescriptionDefault
bpmNoThe opening tempo
keyNoThe opening key, Ab for A flat major, Abm for minor
mixNoA saved mix to check, in place of a plan
stepsNoWhat happens on which bar. Steps on one bar happen together
to_barNoList segments up to this bar only
end_barNoThe bar the mix ends on. Defaults to 16 after the last step
from_barNoList segments from this bar only

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description does a lot of the burden-carrying: it explains the returned segment contents, enumerates the per-segment and whole-mix checks, and states refusal behavior ('A plan that cannot play is refused with every problem listed'). It never explicitly says the session is left untouched, but 'without playing it' strongly implies a read-only check.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, which is good, but the middle is a long run-on enumeration of checks ('two vocals, no beat, no bass, two basses...') that reads like a spec dump. The same meaning could be conveyed as 'per-segment and whole-mix validation rules' in a fraction of the space, though each clause is at least substantive.

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 tool with 7 parameters, no annotations, and no output schema, the description is appropriately complete: it covers the return shape, the validation surface, and the failure mode. Only the relationship between bpm/key/steps (plan) and mix (saved) is left largely to the schema.

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?

Schema description coverage is 100%, so the schema already documents every parameter, including the plan-vs-saved-mix distinction and the from_bar/to_bar windowing. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.

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 verb and resource — 'Check a mix without playing it' — and immediately clarifies the contrast with actual playback, which implicitly separates it from play_mix/load_mix. It also describes what it returns (length, timeline segments), so an agent can tell exactly what it is for.

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?

'Check a mix without playing it' signals a dry-run/validation use case, and 'A saved mix to check, in place of a plan' clarifies the alternative input mode. It does not explicitly say 'call this before play_mix' or name sibling tools as alternatives, so it stops short of full when/when-not guidance.

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