FL Studio 2025 AI Bridge
The FL Studio 2025 AI Bridge is an MCP server that lets an AI assistant (e.g., Claude) read and control FL Studio 2025 despite its restrictive control-script sandbox, covering the full compose → arrange → mix workflow.
Transport / Playback
Play, stop, record, seek, set tempo (with undo), tap tempo, set time signature
Get full transport status (position, loop mode, BPM, time signature)
Set loop mode, playback speed (0.25×–4.0×), toggle metronome/countdown, nudge playhead
Patterns
List, count, select, create, rename, recolor, clone, delete patterns
Set pattern length, find by name, jump to next/previous pattern
Channels (Instruments / Step Sequencer)
List/inspect channels; select, rename, recolor
Set volume, pan, pitch; mute/solo/toggle
Route channel to a mixer insert
Trigger one-shot MIDI notes for live preview
Read, write, overwrite, or clear step-sequencer bits/sequences
Quantize channel notes
Mixer
List mixer tracks; get/set volume, pan, stereo separation
Mute, solo, arm, rename, recolor tracks
Manage send levels and routing between tracks
List FX slot plugin IDs; get/set 3-band EQ per track
Link channels to mixer tracks
Plugins
Check if a plugin is loaded (channel or mixer slot)
Get plugin name, list/get/set/find parameters
Navigate and load presets; show/hide plugin editor windows
List all plugins across a mixer track's FX slots
Playlist & Arrangements
List/inspect playlist tracks; rename, recolor, mute/solo
List, place, and delete pattern clips by track + bar position
Force playlist repaint after bulk edits
Manage timeline markers (list, add, delete, jump)
List all arrangements, get current arrangement, switch arrangements
Bridge Health & Escape Hatch
Ping, check health, reconnect, and get bridge info
Call any raw FL Studio API function via
fl_call_raw
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FL Studio 2025 AI BridgeSet the project tempo to 140 BPM"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FL Studio 2025 AI Bridge (fLMCP-2025)
A Model Context Protocol (MCP) bridge that lets an AI assistant (Claude, or any MCP client) read and control FL Studio — extended to actually work on FL Studio 2025 (build 25.2.5), whose locked-down control-script sandbox breaks every socket-based FL bridge.
Attribution
This project is a derivative of geezoria/FLStudioMCP (MIT), which provides the 159-tool MCP server and the FL-side device script. All original credit goes to that project — see
LICENSE. This repo adds the FL Studio 2025 compatibility layer and a few new capabilities (below).
Why this fork exists
On FL Studio 2025 build 25.2.5, control-surface scripts run in a CPython
sub-interpreter that blocks threads, sockets, and most os filesystem calls,
and never calls OnIdle — so the upstream TCP bridge cannot even open its
port. Full diagnosis (with every error, reproduced): docs/FL2025_SANDBOX.md.
This fork makes the bridge work anyway, using only the primitives FL 2025 does allow:
Addition | What it does |
file-RPC transport | Request/response over two fixed JSON files (read/write only — no sockets, threads, |
MIDI-wake |
|
| Runs arbitrary Python in the live controller interpreter, exposing all ~250 FL API functions (not just the ~159 wrapped handlers). Powers the helpers below and the API mapping in the docs. |
| FL sandboxes pyscript file I/O, so the notes are baked into the piano-roll script's source, deployed, and run via the "run last script" hotkey. Sample-accurate composition — no recording jitter. |
| FL exposes no |
Note recording |
|
"Ears" (example) | Play a pattern → capture FL's live output via WASAPI loopback → analyse tempo/key/loudness/brightness with |
The high-level helpers live in src/fl_studio_mcp/producer.py:
fl_exec, pianoroll_apply, record_performance, arrange_via_recording,
copy_clip_range / paste_clips_at / duplicate_clip_range.
Verified end-to-end on FL Studio 2025 build 25.2.5: reads, transport/mixer control, step-sequencer beats, tempo, exact piano-roll note editing, note recording, playlist clip placement, and audio analysis — i.e. the full compose → arrange → listen loop, plus a complete phonk beat built and arranged purely through the bridge.
Related MCP server: flai-mcp
Quick start (Windows, FL Studio 2025)
git clone https://github.com/Boyan253/fl-studio-2025-ai-bridge.git
cd fl-studio-2025-ai-bridge
./scripts/install_windows.ps1Then in FL Studio:
Install loopMIDI and create a port (e.g.
loopMIDI Port).Options > MIDI settings > Input: select the loopMIDI port and set Controller type =fLMCP Bridge(it appears in the "Scripts" section near the top — not alphabetically).Set
FLMCP_TRANSPORT=filein your MCP client's env for this server (andFLMCP_MIDI_PORTif your port name differs fromloopMIDI).
Smoke test:
$env:FLMCP_TRANSPORT="file"
.\.venv\Scripts\python.exe scripts\smoke_test.pyWhat works vs. doesn't on FL 2025 25.2.5
✅ Reads, transport/mixer control, step-sequencer beats, tempo, note recording, audio analysis
✅ Exact piano-roll note editing — via the baked-pyscript route (
pianoroll_apply)✅ Playlist clip placement — via
transport.globalTransport(FPT_Copy/FPT_Paste)(playhead-accurate; track follows FL's paste anchor)✅
meta.exec— call any of FL's ~250 scripting functions remotely⚠️ Pyscript file I/O stays sealed by FL (worked around by baking notes into the script source)
See docs/FL2025_SANDBOX.md for the complete story, the
full enumerated API (proof), and the exact recipes.
License
MIT — see LICENSE. Original work © the FLStudioMCP authors
(geezoria/FLStudioMCP); FL-2025
additions contributed on top.
Available Tools
157 toolsarrangement_currentA
Return current arrangement index + name.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the behavioral burden. It clearly says 'Return', which implies a read-only operation, and it specifies the returned data. However, it does not explicitly state that the call has no side effects, how indices are numbered, or what happens when no arrangement is loaded.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence conveys verb, resource, and output with no filler or redundancy. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter getter with no output schema, stating the exact return content ('index + name') is nearly sufficient for an agent to invoke and interpret the call. A concrete example return shape would improve completeness, but nothing essential is missing for a tool this simple.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the input schema is empty, so there are no undocumented or ambiguous parameters. The high baseline for a zero-parameter tool applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Return'), a specific resource ('current arrangement'), and the exact payload ('index + name'). The 'current' qualifier distinguishes this from sibling tools like arrangement_list and arrangement_select even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or alternative guidance is provided. There is no statement telling an agent to use arrangement_list for enumerating arrangements or arrangement_select for changing the active one, so the routing decision is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arrangement_jump_markerA
Jump playhead to next (+1) or previous (-1) marker within current arrangement.
| Name | Required | Description | Default |
|---|---|---|---|
| direction | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It clearly states the action and direction semantics, but it does not mention edge cases such as what happens when no next/previous marker exists, whether invalid direction values are allowed, or whether playback state changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that front-loads the action, states the resource, and defines the only parameter's semantics. Every word earns its place with no repetition of the tool name or schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter navigation tool with no output schema, the description provides enough information to invoke it correctly. Minor gaps remain around edge-case behavior and invalid direction values, but they do not prevent effective use in normal marker-jumping scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only defines an integer 'direction' with a default of 1 and 0% schema description coverage. The description compensates well by explicitly mapping +1 to next marker and -1 to previous marker, giving the parameter actionable meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Jump playhead'), the target resource ('marker'), and the scope ('within current arrangement'). It also explains the direction parameter meaning (+1/-1), making the tool easy to tell apart from transport_jog, transport_set_position, or pattern_jump_to_next/previous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: this is for moving the playhead between markers in the current arrangement, not for arbitrary transport movement or pattern navigation. It does not explicitly name alternatives or list when-not-to-use conditions, but the scope is unambiguous enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arrangement_listA
List all arrangements.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. 'List' conveys a read-only enumeration and 'all' clarifies scope, but it does not state return format, ordering, or potential absence of arrangements. This is acceptable for such a simple tool but not richly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundant wording. Every word contributes to understanding the operation, which is ideal for a zero-parameter list tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, no-annotation tool, 'List all arrangements' is enough to invoke the tool. However, with no output schema, the description does not specify what the returned list contains or how it is structured, leaving some ambiguity for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description adds no parameter details because none are needed; the input schema already confirms an empty argument object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List all arrangements'. The word 'all' distinguishes this from sibling tools like arrangement_current and arrangement_select, making its scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as arrangement_current, arrangement_select, or arrangement_selection. The description relies entirely on the tool name to imply use cases, with no explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arrangement_play_timeA
Get current playback time in ticks + bars + seconds.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It clearly identifies this as a read-only 'Get' operation and specifies the output dimensions (ticks, bars, seconds). It does not detail edge cases, but for a simple getter this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every word contributes useful information about what the tool returns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only getter with no output schema, the description completely tells the agent what it will receive: playback time in ticks, bars, and seconds. Nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the input schema carries no documentation burden. The description does not need to explain parameter semantics, and the schema already reflects this fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific operation ('Get'), the resource ('current playback time'), and the exact units ('ticks + bars + seconds'). This makes it clearly distinguishable from sibling tools like transport_status or arrangement_current.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description only states what the tool does and does not mention exclusions or when a transport-related sibling would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arrangement_selectC
Switch to a different arrangement.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It communicates the essential state change ('switch') but reveals nothing about side effects, what happens with an invalid index, whether playback is affected, or whether the action is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no filler, but it is under-specified rather than appropriately concise. It earns its place but omits critical details that an agent would need, so it is not a model of efficient completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter selection tool with no output schema and no annotations, this description is not fully actionable. An agent cannot determine how to source a valid index, what the tool returns, or how to handle errors, leaving too much to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema exposes a single required integer 'index' with 0% description coverage, so the description must compensate. 'Switch to a different arrangement' implies the index selects which arrangement, but it never clarifies the base (0-based or 1-based), valid range, or relationship to arrangement_list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('switch') and a specific resource ('arrangement'), making the core action clear. It is distinguishable from sibling tools like arrangement_current and arrangement_list because it is an action rather than a query, though it doesn't explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus arrangement_list or arrangement_current. It does not mention that a valid index might come from arrangement_list, nor does it state any prerequisites or context for switching arrangements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audio_analyzeA
Analyze an audio file: tempo, key, onsets, loudness, (optional) notes.
Accepts any format libsndfile supports: WAV, FLAC, MP3, OGG, AIFF...
Returns BPM, detected key (root + major/minor), beat + onset timings,
and optionally a transcription. With polyphonic=True the transcription
is polyphonic (Basic Pitch — chords / all notes; needs the polyphonic
extra); otherwise it's a single monophonic line (pyin).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| extract_melody | No | ||
| polyphonic | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It discloses return values (BPM, key, timings, transcription) and explains polyphonic vs monophonic transcription, including the requirement for the 'polyphonic' extra. However, it does not mention whether the tool is read-only or any potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph of 4 sentences, front-loaded with the purpose. Every sentence adds value: supported formats, return values, and transcription options. No wordiness or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main features and supported formats but lacks details on the return format (e.g., JSON, dictionary keys). No output schema exists, so the description should clarify how results are structured. Error conditions or performance costs are not mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explicitly links the 'polyphonic' parameter to its effect and mentions 'optional notes' (likely tied to extract_melody). However, it does not explicitly describe the 'path' parameter or confirm that extract_melody controls transcription. Schema coverage is 0%, so description should compensate more.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Analyze' and specifies the resource as 'audio file', listing concrete analyses: tempo, key, onsets, loudness, optional notes. This distinguishes it from siblings like audio_slice or audio_melody_to_piano_roll.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for extracting musical features from audio files but does not explicitly state when to use this tool versus alternatives (e.g., audio_slice, voice_transcribe_file). No when-not or comparison to siblings is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audio_melody_to_piano_rollA
Extract notes from an audio file and push them into the FL piano roll.
Default extracts the dominant monophonic line (pyin). With
polyphonic=True, Spotify Basic Pitch transcribes chords / all notes
(needs the polyphonic extra).
If bpm is None, the detected BPM is used. If snap_to_detected_key
is True, all notes are snapped to the detected key of the track.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| bpm | No | ||
| snap_to_detected_key | No | ||
| transpose_semitones | No | ||
| min_confidence | No | ||
| polyphonic | No | ||
| clear_first | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses core behaviors (monophonic default, polyphonic option needing extra library, BPM and key snapping). However, it does not mention the clear_first parameter (which defaults to true) or the effect of transpose_semitones and min_confidence. No annotations are present, so the description carries full burden but is incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise at 3 sentences, but it could be better structured by separating behavior from parameter guidance. It front-loads the main action and then lists parameter behaviors, which is reasonable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters, no annotations, and no output schema, the description is insufficiently complete. It covers key behaviors but omits several parameters, does not explain the return value (state of piano roll after execution), and assumes knowledge of internal libraries (pyin, Basic Pitch). A more comprehensive description would describe all parameters and expected outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds meaning for 4 of 7 parameters (path, bpm, snap_to_detected_key, polyphonic). It omits explanations for transpose_semitones, min_confidence, and clear_first, leaving gaps that the agent must infer from parameter names and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool extracts notes from audio and pushes them into the FL piano roll. It distinguishes itself from siblings by specifying the default monophonic extraction (pyin) and optional polyphonic transcription, providing a specific verb and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains default vs. polyphonic modes and the effects of bpm and snap_to_detected_key, but does not explicitly guide when to use this tool versus alternatives like voice_notes_to_piano_roll or piano_roll_add_notes. No when-not-to-use advice is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audio_sliceA
Slice audio at detected onsets; save each slice as WAV on disk.
Great for chopping a drum loop or sampled track into one-shots you can drag into FL's channel rack as sampler voices.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| output_dir | No | ||
| max_slices | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It explains the basic operation (slice at onsets, save as WAV) but lacks details on side effects, file overwriting, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-loaded with the core function, followed by a practical example. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description should provide more context about disk writing behavior, file naming, and edge cases. It leaves many operational details unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, meaning the description does not explain any parameter. The schema has titles and defaults, but the agent gains no additional semantics from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool slices audio at detected onsets and saves as WAV files, with an example use case for drum loops. It distinguishes from sibling tools by specifying the slice-and-save function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a concrete use case (chopping drum loops) but no explicit guidance on when not to use it or alternatives among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automation_record_channel_panC
Record pan automation on a channel.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ||
| points | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. 'Record pan automation' implies a mutating action, but it does not say whether existing automation is overwritten, whether this captures live input or writes supplied points, whether it is undoable, or what side effects occur on the transport or channel.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It is concise and immediately states the operation and target, though it is so minimal that it under-serves semantic richness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given cryptic parameters, no output schema, and zero annotations, this description leaves too much unspecified. An agent cannot confidently construct the 'points' array, determine channel indexing, or predict the result of the call. The sibling list provides some disambiguation, but not operational completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no parameter semantics. The key 'points' parameter is an array of objects with additionalProperties true, yet the description never clarifies the expected point format, required keys, pan range, or time encoding. 'Channel' is also left ambiguous regarding indexing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific action and resource: 'Record pan automation on a channel.' This clearly differentiates the tool from sibling automation tools such as automation_record_channel_volume, automation_record_tempo, and automation_record_mixer_volume, and from non-automation pan tools like channel_set_pan and mixer_set_pan.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool instead of alternatives. The description does not explain when to record channel pan automation versus mixer pan automation, channel_set_pan, or other automation record tools. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automation_record_channel_volumeC
Record volume automation on a channel. points: [{time_bars, value}].
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ||
| points | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Record' implies a mutating operation, but the description does not state whether existing automation is overwritten, whether transport must be running, or what side effects occur. This is a significant gap for a write-oriented tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The core action is front-loaded, and the points format is conveyed efficiently. Every token earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and loosely specified nested objects, the description leaves critical gaps: the meaning of 'record' in this context, whether existing automation is replaced, the expected units of time_bars and value, and any transport or selection requirements. An agent could guess, but the definition is not complete enough for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds meaning for 'points' by specifying the shape '{time_bars, value}', but it does not explain 'channel' beyond its integer type, nor does it clarify units or ranges for time_bars and value. Partial compensation but incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Record volume automation on a channel.' The phrase 'on a channel' and 'volume' distinguishes it from siblings like automation_record_tempo, automation_record_channel_pan, and automation_record_plugin_param. However, it does not explicitly differentiate from automation_record_mixer_volume, though 'channel' vs 'mixer' provides some implicit distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as channel_set_volume or automation_record_mixer_volume. There is no mention of prerequisites (e.g., transport state, selection) or exclusions. The agent must infer usage solely from the name and minimal description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automation_record_mixer_volumeC
Record volume automation on a mixer track.
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes | ||
| points | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It conveys that this is a recording/mutating operation, but does not disclose whether existing automation is overwritten, whether transport must be running, whether it blocks or is asynchronous, or what the success/failure behavior is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler words. Every word contributes to the core meaning, making it highly concise and easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and two required parameters, this description is far from complete. The agent is not told what 'points' should look like, what side effects recording has, or any prerequisites. It only states the high-level action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds minimal meaning. 'track' is loosely inferred as the mixer track from the description, but 'points' remains entirely unexplained—no structure, required fields, or semantics for the array of objects are given, making it hard for an agent to construct a valid argument.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Record' and the resource 'volume automation on a mixer track,' which is specific and separates it from sibling tools like automation_record_channel_volume by the 'mixer track' qualifier. It does not explicitly name alternatives, but the resource is distinct enough to prevent major confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus the many sibling automation tools (e.g., automation_record_tempo, automation_record_channel_pan). Usage is only implied by the noun phrase 'mixer track volume automation,' but no conditions, exclusions, or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automation_record_plugin_paramB
Record automation on a plugin parameter. points: [{time_bars, value}].
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ||
| param | Yes | ||
| points | Yes | ||
| slot | No | ||
| location | No | channel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose side effects and behavior, but it only says 'Record automation.' It does not state whether existing automation is overwritten or appended, whether the plugin must be instantiated, how the recording is anchored, or what happens on failure. For a mutating operation this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise and front-loaded, with the main purpose stated first and the `points` format following immediately. It contains no fluff, though the extreme brevity leaves out critical parameter context that could have been included without much length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given five parameters, zero schema description coverage, no annotations, and no output schema, the description is materially incomplete. It offers only the `points` shape; an agent cannot determine how to specify the plugin channel/parameter/slot/location or what success/failure looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for undocumented parameters. It adds useful meaning only for `points`, showing `[{time_bars, value}]`, but leaves `channel`, `param`, `slot`, and `location` completely unexplained, including which are required and how they identify the target plugin.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Record automation') and a specific resource ('a plugin parameter'), immediately distinguishing it from sibling tools like automation_record_channel_volume and automation_record_tempo. No ambiguity remains about what this tool operates on.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'on a plugin parameter' implies this tool is for plugin-parameter automation rather than channel, mixer, or tempo automation. However, there is no explicit guidance about when to choose this tool over its automation_record_* siblings, nor any mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automation_record_tempoA
Record an automation ramp on the master tempo.
points: list of {time_bars: float, bpm: float}. MCP will sequence them live
with the correct REC flags to create a real automation clip.
| Name | Required | Description | Default |
|---|---|---|---|
| points | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry behavioral disclosure. It does state that the MCP will 'sequence them live' and use 'REC flags to create a real automation clip,' which explains the core side effect. However, it does not disclose whether existing tempo automation is overwritten or appended, whether recording requires a running transport, or whether the operation is destructive or undoable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the core purpose, and uses only three sentences to cover the action, the parameter format, and the expected recording behavior. Every sentence contributes essential information without filler or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter automation tool with no annotations or output schema, the description is largely complete: it defines the input data, describes the recording mechanism, and names the target. It lacks only explicit guidance on preconditions or when the tool should be avoided, which keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only 'points' as an array of untyped objects with additionalProperties true, so the description carries nearly the full burden for parameter meaning. The description compensates well by defining points as a list of {time_bars: float, bpm: float}, giving both key names and types, though it leaves the exact meaning of time_bars implicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Record an automation ramp on the master tempo,' which combines a specific verb, resource, and target. This clearly differentiates it from sibling tools like automation_record_channel_volume and automation_record_mixer_volume by naming the master tempo as the automation target.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case: record tempo automation when you want a ramp on the master tempo. However, it does not explicitly state when to prefer this over alternatives such as transport_set_tempo or the other automation_record_* tools, nor does it mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_allB
List of all channels with basic info.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of explaining behavior, but it only says 'List of all channels with basic info.' It does not clarify side-effect-free behavior, return shape, ordering, or whether the list includes hidden/inactive channels, which are meaningful gaps for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler or repetition. It is front-loaded with the verb and resource, and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-argument tool this is minimally viable, but the absence of an output schema makes 'basic info' ambiguous. An agent may not know what fields to expect, whether the result is sorted, or if there are any exclusions. It is adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is trivially complete, so the description cannot add parameter-level meaning. Per the baseline for 0-param tools, this is adequate; there is no misleading parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('List') and a clear resource ('all channels'), distinguishing it from sibling channel tools like channel_count or channel_info that target a count or a single channel. It stops short of a 5 because 'basic info' is vague and does not say exactly what fields are included.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this over related tools such as channel_count, channel_info, or mixer_all_tracks. The description only states what the tool does, leaving the agent to infer the appropriate use case without any explicit when-to-use or when-not-to-use information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_clear_step_sequenceA
Clear all step-sequencer bits for the channel (in the current or specified pattern).
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| pattern | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the burden of disclosing behavior. It clearly indicates the destructive nature of the operation ('Clear all step-sequencer bits'), which is important context. However, it does not mention irreversibility, return values, or whether it affects only the current pattern when pattern is omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. The core action and scope are front-loaded, and the parenthetical efficiently covers the optional pattern behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter operation with no output schema and no annotations, this description covers the essential behavior and parameter roles adequately. It could be improved by stating that clearing is destructive/permanent, but the core purpose and parameters are sufficiently specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must supply parameter meaning. It clarifies that index refers to the channel and that pattern is optional ('current or specified pattern'), but it does not explain index's required role, how index maps to a channel, or what the pattern parameter's null default means in practical terms.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (clear), the target (step-sequencer bits), and the scope (for the channel, optionally in a specified pattern). It is specific enough to distinguish this tool from sibling tools like channel_get_step_sequence, channel_set_step_sequence, and channel_quick_quantize.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when it should be used (when the user wants to clear step-sequencer bits), but it provides no guidance about when not to use it, prerequisites such as having a channel selected, or differences from related tools like channel_set_step_sequence. Usage context is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_countB
Total channel count (global = across all groups).
| Name | Required | Description | Default |
|---|---|---|---|
| global_count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It states that the count is global across all groups, which is useful, but it does not describe behavior when global_count is false, side effects, or return format. For a simple read-only count, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the core meaning with no filler. It is appropriately short for a one-parameter tool, though it is too sparse to fully compensate for the lack of parameter documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter count tool, the description covers the core return concept and the global scope, but leaves the false branch of global_count undefined and gives no usage context relative to sibling tools. Without annotations or an output schema, this is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 only glosses the global_count parameter via 'global = across all groups' and does not explain what false means or note that the parameter is optional with a default. The parameter name and default are visible in the schema, but the description adds little beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (channel count) and a specific scope (global across all groups), which differentiates it from sibling tools like pattern_count and mixer_count. It lacks an explicit verb such as 'get' or 'return', but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool instead of alternatives like channel_all or pattern_count. The parenthetical scope is the only context and does not help an agent decide among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_get_grid_bitB
Read a single step-sequencer bit (position is 0-based step within the pattern).
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| position | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It clearly states read-only behavior and adds 0-based positioning. However, it omits the return value format and what happens on invalid positions, and it never explains the role of 'index'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence with no filler. The key action is front-loaded, and the scoping detail is compactly placed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should at least indicate what the tool returns, but it does not. It also leaves 'index' unexplained and does not mention whether the bit is a boolean on/off value or how out-of-range positions behave.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 clarifies 'position' as a 0-based step, but 'index' is left entirely undefined. With one of two required parameters unaddressed, parameter semantics are incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Read a single step-sequencer bit.' The parenthetical clarifies the step position, and the read action contrasts with the sibling set_grid_bit. However, it does not fully distinguish from get_step_sequence or clarify what 'index' refers to.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'Read' implies this is for reading rather than writing, and 'single bit' implies it is not for reading sequences. But there is no explicit when-to-use vs alternatives guidance, and no exclusions or conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_get_step_sequenceB
Read the full step sequence for a channel (optionally for a specific pattern).
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| pattern | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The verb 'Read' clearly signals a non-mutating operation, which is important since no annotations are provided. However, the description does not disclose edge-case behaviors such as invalid channel indices, omitted pattern semantics, or whether the returned sequence is for the active pattern or all patterns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that communicates the core action and the one optional modifier. Every word adds value and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 should explain what the returned step sequence looks like and what omitting pattern does. It does neither, leaving the agent to guess at the return format and default behavior, making the definition minimally viable at best.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must supply parameter meaning, and it does map 'index' to a channel and 'pattern' to a specific optional pattern. Still, it does not explain valid values, whether pattern refers to a pattern index/ID, or what the default null pattern means beyond 'optional.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Read the full step sequence for a channel,' with an optional pattern qualifier. It clearly distinguishes itself from sibling setters like channel_set_step_sequence and more granular getters like channel_get_grid_bit or channel_get_step_params.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus channel_get_grid_bit, channel_get_step_params, or channel_set_step_sequence. The description implies a read operation but does not state exclusions, prerequisites, or what happens when the pattern argument is omitted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_infoA
Detailed info on one channel: name/volume/pan/pitch/color/mute/solo/fx_route/type.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It clearly conveys a read-only inspection operation and lists the exact channel attributes returned, which is strong transparency for a simple getter. It does not cover error behavior for invalid indices, but that is minor for an info-style tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence front-loads the scoping phrase 'one channel' and uses a comma-separated enum of return fields. There is no filler or redundant restating of the tool name, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter, the field list provides a useful picture of the return content. However, it is incomplete in a few areas: it never defines the index parameter's base/range, and with no output schema it does not describe the return structure beyond the property names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, and the tool description adds no meaning to the index parameter. It does not explain whether index is zero-based, what its valid range is, or how it relates to channel_count or channel_all, so an agent must infer the parameter semantics from the parameter name alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states the tool provides detailed information about a single channel and enumerates exactly which properties are returned (name/volume/pan/pitch/color/mute/solo/fx_route/type). The phrase 'one channel' also distinguishes it from the sibling channel_all, so an agent can select it confidently.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies targeted inspection of one channel, but it never explicitly states when to use this tool versus channel_all or other channel getters, nor does it mention exclusions or prerequisites. Usage context is only implied through the word 'one channel'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_muteB
Mute / unmute / toggle (None = toggle).
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| muted | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden: it discloses the tri-state behavior that null/omitted toggles and true/false set or unset mute state. However, it does not mention side effects, persistence of mute state, or what happens when the index is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short, front-loaded sentence with no filler. It efficiently communicates the three operations and the toggle convention in eight words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter setter with no output schema or annotations, the description is nearly adequate, but it omits what 'index' refers to and says nothing about return or error behavior. The implicit channel target is a small completeness gap given the many mute-like sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The phrase 'None = toggle' gives the muted parameter a semantic meaning beyond the schema's bare default of null. The index parameter is not described at all, and with 0% schema description coverage the description only partially compensates for the missing parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete operation set—mute, unmute, toggle—and '(None = toggle)' clarifies the third mode. It does not explicitly say the target is a channel, so it relies on the tool name to differentiate it from sibling tools like mixer_mute and playlist_mute_track.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use channel_mute versus mixer_mute or playlist_mute_track, and no prerequisites or exclusions are mentioned. The only usage hint is the None = toggle convention, which is parameter-level guidance rather than tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_quick_quantizeC
Quantize the channel's notes in the current pattern.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the action and scope; it does not disclose whether quantization overwrites the original notes, whether it is undoable, what snapping resolution is applied, or how 'quick' differs from regular quantization.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no redundant filler. It loses one point only because it is terse to the point of omitting actionable parameter and behavioral details, not because the existing text is wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with no annotations and no output schema, this is thin: it leaves the parameter undefined, the quantization behavior unspecified, and the distinction from piano_roll_quantize unstated. An agent would have to guess before invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the required 'index' parameter at all. An agent cannot tell from the description whether index refers to the channel index, pattern index, or note index; the parameter title alone is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete verb ('quantize') and a specific resource ('the channel's notes in the current pattern'), which makes the action identifiable and separates it from other channel operations. It doesn't explicitly name sibling tools like piano_roll_quantize, but the channel/current-pattern scoping gives enough distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this over alternatives such as piano_roll_quantize or humanize, and no mention of limitations such as whether it works on the selected channel or applies a default grid strength. The intended condition of use must be inferred from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_route_to_mixerC
Route a channel to a given mixer insert track.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| mixer_track | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral disclosure burden. It states the core action but does not mention whether this is a mutating operation, whether prior routing is replaced, whether mixer track assignment is destructive, or what response or state changes result. This is a significant gap for a routing mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler or repetition. Every word contributes meaning, and the action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutating routing tool with no annotations, no output schema, and no parameter descriptions, this is incomplete. It does not clarify parameter meaning, numbering conventions, or how this action relates to nearby mixer routing tools, leaving an agent under-equipped to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for the bare integer parameters. It loosely maps 'channel' to the likely index parameter and 'mixer insert track' to mixer_track, but it never explicitly explains what 'index' refers to, whether values are zero-based, or what range mixer_track accepts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Route') with a clear resource and target ('a channel', 'a given mixer insert track'). It is broadly distinguishable from channel volume/pan tools, though it does not explicitly differentiate itself from sibling mixer_route or mixer_link_to_channel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as mixer_route, mixer_link_to_channel, or mixer_set_send_level. It does not mention prerequisites, context, or exclusions, leaving the agent to infer the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_selectB
Select channel (exclusive=True deselects others).
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| exclusive | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden and does add one useful detail: exclusive=True deselects others, implying multi-select when false. However, it doesn't disclose whether the tool returns anything, errors on invalid indices, or whether the selection persists or affects subsequent operations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word earns its place, and the exclusive behavior is integrated cleanly without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with no annotations and no output schema, the definition is minimal but mostly serviceable: an agent can infer the selection action and grasp the exclusive option. It still leaves index semantics and exclusive=False behavior implicit, and doesn't mention whether the selection is additive or has UI-level effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for missing parameter documentation. It explains exclusive's effect, but says nothing about what index refers to, valid ranges, or zero-based numbering, leaving the core parameter underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb+object ('Select channel') and includes the key exclusive behavior. It doesn't explicitly differentiate from siblings like channel_selected or ui_selected_channel, but the action-oriented wording makes the intended operation unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as channel_selected or other channel_* tools. The description doesn't mention prerequisites, exclusions, or context in which channel_select is the appropriate choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_selectedB
Return currently selected channel (or null).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It does disclose the possibility of returning null, which is useful, but it does not clarify whether the operation is read-only, what 'selected' refers to, or what shape the returned channel data takes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that wastes no words. It delivers the core behavior and the null edge case efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter getter, the description is adequate, but it leaves ambiguity about the return format (name, id, index) and does not clarify how it differs from ui_selected_channel. With no output schema, slightly more detail would be needed for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to document. The description is not required to add parameter-level detail, and the baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Return') and resource ('currently selected channel'), and notes the null case. It does not explicitly distinguish itself from the sibling ui_selected_channel, so it misses the top score for sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like channel_all or ui_selected_channel. The description implies a simple getter but does not state exclusions or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_set_colorB
Set channel color. Accepts '#RRGGBB' or 'rgb(r,g,b)'.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| color | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It reveals that this is a mutating operation ('Set') and documents accepted color formats, but it does not mention side effects, return values, reversibility, or any requirements beyond the parameters themselves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no wasted words. The primary purpose is front-loaded, and the only extra detail is directly useful for constructing valid parameter values.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and incomplete parameter documentation, the description is too thin. An agent can guess that 'index' identifies the channel from context, but the description itself does not confirm that or provide enough surrounding behavioral context to make a confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It adds concrete meaning for the 'color' parameter by specifying '#RRGGBB' or 'rgb(r,g,b)' formats. However, the 'index' parameter remains undocumented in both the schema and the description, leaving an important semantic gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear, specific verb and resource: 'Set channel color.' It naturally distinguishes this from sibling tools like pattern_set_color, mixer_set_color, and playlist_set_track_color because it explicitly names the channel as the target.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: whenever a channel color needs to be changed. However, it provides no explicit guidance about when not to use it or how it compares to similarly named color-setting tools for patterns, mixer tracks, or playlists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_set_grid_bitC
Set a single step-sequencer bit.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| position | Yes | ||
| value | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only states the action. It does not disclose side effects, constraints, how true/false maps to setting or clearing a bit, or what happens outside a valid range.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is concise and front-loaded, but it is too sparse to be considered appropriately sized for a three-parameter mutation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is incomplete for a tool with no annotations, no output schema, and zero schema coverage. It lacks parameter semantics, usage context, and behavioral details needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to index, position, or value. An agent cannot know that index identifies a channel, position is a grid step, or value is the bit state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Set') and identifies a precise resource ('a single step-sequencer bit'). The qualifier 'single' helps distinguish it from sibling tools like channel_set_step_sequence, though it never names an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus channel_get_grid_bit, channel_set_step_sequence, or channel_clear_step_sequence. The context is only implied by the word 'single'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_set_nameC
Rename a channel.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It only conveys the basic rename action and omits side effects, validation rules, index base, uniqueness requirements, or what happens if the channel does not exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is maximally concise and front-loaded, but it is under-specified for a mutating API call. It is a single clear sentence, yet it earns its place by sacrificing important context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the tool is simple with only two required scalar parameters and no output schema, the description leaves the key parameter semantics and behavioral expectations undefined. An agent cannot reliably determine how to target the correct channel or what the consequences of the rename are.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain either parameter. While 'name' and 'index' are somewhat self-explanatory, there is no information about what index refers to, whether it is zero-based, or whether name has any constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Rename') and a resource ('a channel'), which distinguishes it from similar tools like mixer_set_name and pattern_rename. However, it does not clarify what a 'channel' refers to in this DAW context or how the target channel is identified, so it stops short of full precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as mixer_set_name or pattern_rename. No conditions, exclusions, prerequisites, or sibling references are provided; usage is only implied by the action verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_set_panC
Set channel pan (-1.0..1.0).
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| pan | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden of behavioral disclosure. It states the mutation ('Set channel pan') but does not mention clamping behavior, persistence, side effects, whether the channel must be selected, or what happens on invalid input. This is a significant gap for a write operation with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single terse sentence that front-loads the verb and resource without any fluff. The range is included efficiently, though the overall terseness contributes to the information gaps penalized in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation tool with no annotations and no output schema, this description is too minimal. It does not define the index parameter semantics or clarify how this interacts with related concepts like mixer panning, leaving an agent to guess critical invocation details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for parameters. It adds meaning to 'pan' by giving the range (-1.0..1.0), but it leaves 'index' completely unexplained, including whether it is zero-based and which channel namespace it refers to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Set channel pan') and even includes the valid range (-1.0..1.0), making the core purpose clear. It does not explicitly distinguish itself from sibling tools like mixer_set_pan or channel_set_volume, but the resource and operation are unambiguous enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as mixer_set_pan or automation_record_channel_pan. The intended use is only implied by the name and description, with no exclusions or conditions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_set_pitchA
Set channel pitch offset in semitones (-120..120).
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| semitones | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It reveals the core mutation and the range constraint, but does not mention side effects, return behavior, validation behavior, or whether the change is persistent. Still, the range provides some behavioral value beyond the raw schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with the essential operation and range in parentheses. There is no filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the missing meaning of the required 'index' parameter is a significant gap. The description is barely adequate for someone to invoke the tool correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 explains that 'semitones' is a value in the range -120..120, but says nothing about what 'index' refers to or how the channel is identified, leaving a required parameter underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Set') and precise resource ('channel pitch offset'), and adds the unit and valid range ('semitones (-120..120)'). This clearly distinguishes it from siblings like channel_set_volume or channel_set_pan.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: call this when the agent needs to adjust a channel's pitch. However, it does not explicitly state when to prefer this over alternatives or any preconditions such as whether the channel index must be valid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_set_step_sequenceB
Overwrite step sequence. steps is a list of 0/1 ints (any length up to pattern length).
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| steps | Yes | ||
| pattern | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of explaining side effects. It does state that the operation overwrites the step sequence and constrains steps to 0/1 integers with length up to the pattern length, which is useful. However, it does not disclose behavior around the optional pattern parameter, validation failures, return values, or which channel scope is affected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core action, and every sentence adds relevant information. The steps format and length constraint are useful and expressed without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with no schema descriptions, no annotations, and no output schema, this description is not complete enough for reliable invocation. An agent still needs to infer what 'index' refers to, how the optional 'pattern' works, and what overwrite means in terms of existing data and return behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, but it only explains 'steps'. The 'index' and 'pattern' parameters are left semantically unexplained; 'pattern' is especially ambiguous given the description mentions 'pattern length' without connecting it to the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Overwrite') and resource ('step sequence'), so an agent can tell this is a write operation on a channel's step sequence. It implicitly contrasts with siblings like channel_get_step_sequence and channel_clear_step_sequence, though it does not name them or explicitly describe the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus related tools such as channel_clear_step_sequence, channel_get_step_sequence, or channel_set_grid_bit. The 'overwrite' wording implies full replacement, but there is no explicit instruction about when this tool is preferred or what alternatives exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_set_volumeB
Set channel volume (0.0..1.0, where 0.78 ≈ 0 dB).
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| volume | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose a meaningful scale detail (0.0..1.0 and 0.78 ≈ 0 dB), which helps the agent reason about volume values. However, it does not mention behavior for out-of-range inputs, clamping, or how channel volume relates to mixer volume.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence front-loads the action and packs the important scale reference into a parenthetical. Every part earns its place and there is no wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter setter, the description covers the core value semantics but lacks index conventions and any guidance separating channel volume from mixer volume. An agent can infer some context from sibling names, but the description alone is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the schema only names the parameters Index and Volume. The description explains the volume scale and dB mapping, which is valuable, but it gives no semantics for the required index parameter. It partially compensates but leaves a key parameter underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (Set) and a specific resource (channel volume), and adds the valid range with a dB reference. It is clear and distinguishable from sibling setters like channel_set_pan and mixer_set_volume by the resource name, though it does not explicitly call out alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus mixer_set_volume, nor any mention of how to choose the channel index. An agent must infer usage from the tool name and sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_soloB
Solo / unsolo / toggle (None = toggle).
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| solo | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does disclose three operation modes: solo, unsolo, and toggle. However, it does not explain side effects, return behavior, or whether soloing one channel affects other channel solo states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with no filler, and places the core behavior first. The slash-compressed notation 'Solo / unsolo / toggle' is efficient but slightly cryptic compared to a full sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool this is nearly sufficient, and the null-to-toggle behavior is the most important detail. Still, the absent output schema and lack of explicit guidance for the `index` parameter and sibling tools leave moderate gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It clarifies the `solo` parameter's meaning via 'None = toggle' and implies true/false map to solo/unsolo, but it does not explain the `index` parameter beyond the schema's bare 'Index' title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action on a channel resource: solo, unsolo, or toggle. The parenthetical 'None = toggle' clarifies the primary state-dependent behavior, and the tool name disambiguates it from mixer_solo and playlist_solo_track.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance about when to use this tool versus channel_mute, mixer_solo, or playlist_solo_track. The description implies a channel-targeted solo operation, but it does not state prerequisites, alternatives, or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_trigger_noteA
Trigger a one-shot MIDI note on the channel (live preview, not recorded).
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| note | Yes | ||
| velocity | No | ||
| duration_ms | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden. It honestly states that the note is one-shot and not recorded, signaling transient, non-destructive behavior. It does not discuss return values or effects on playback state, but the most important safety-relevant trait is covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. The parenthetical adds key behavioral context without bloating the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four parameters, no annotations, and no output schema, this is minimally viable but thin. It makes the purpose and non-recording behavior clear, but leaves channel addressing, velocity/duration semantics, and any side effects to be inferred from the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds almost no parameter-level meaning. 'One-shot MIDI note' and 'the channel' weakly map to note and index, while velocity and duration_ms are completely unaddressed; an agent must rely on parameter names and defaults alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb, 'Trigger', names the exact resource, 'one-shot MIDI note', and scopes it to 'the channel'. The parenthetical 'live preview, not recorded' clearly distinguishes it from recorded note-editing tools like piano_roll_add_notes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly frames when to use this tool: for live preview/auditioning, not for recording or arrangement editing. It explicitly excludes recording, which is a strong usage boundary, though it does not name a specific sibling tool as the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fl_bridge_infoA
Detailed info about the MIDI bridge (fails if it's offline).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It notes failure behavior offline but does not disclose that it is read-only, what 'detailed info' includes, or the nature of failure (error/exception). Significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 10 words, front-loaded with 'Detailed info'. No extraneous content—every phrase adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description minimally covers purpose and a failure condition but omits return structure or format. Adequate for a simple info tool but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has zero parameters and schema coverage is 100%. Baseline is 4; description adds no param details but does not need to. No deduction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Detailed info about the MIDI bridge', specifying the verb (get info) and the resource (MIDI bridge). It also adds a distinguishing condition (fails if offline), making it clear among sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when the bridge is online via 'fails if it's offline', but provides no explicit when-not-to-use or alternative tools. Among siblings, related tools like fl_ping or fl_reconnect are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fl_call_rawB
Escape hatch: invoke any action the MIDI bridge accepts with arbitrary params.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| params | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states the tool can invoke any action with arbitrary params, but fails to disclose potential risks (e.g., destructive operations), error behavior, or the scope of 'MIDI bridge.' Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the key concept ('Escape hatch') and purpose. Every word is justified; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and the generic nature of the tool, the description is too minimal. It omits crucial details like how to format action strings, what the params object expects, error handling, and side effects. An AI agent would likely struggle to use this tool correctly without additional knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds only 'with arbitrary params,' not explaining valid values for 'action' or structure of 'params.' The description does not compensate for the schema's lack of detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it invokes any action the MIDI bridge accepts with arbitrary params, and the name 'Escape hatch' signals its role as a generic fallback, distinguishing it from the many specific sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when no specific tool exists, but does not explicitly state when to use or avoid it, nor provides alternatives. The term 'Escape hatch' hints at exceptional use, but lacks concrete guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fl_pingA
Report health of BOTH bridges.
Returns: { "midi_bridge": {"online": bool, ...}, "piano_roll": {"installed": bool, ...}, "available_capabilities": [...], }
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. The included return schema reveals that the tool reports online/installed status and a capabilities list, but it does not explicitly state whether the call is read-only, can fail, or triggers reconnection. This is partial transparency—adequate for a simple ping but not a full behavioral contract.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact parts: a one-line purpose and a minimal return-shape sketch. Every element earns its place, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-argument health probe, the description covers the essential return fields and their booleans. It omits usage guidance and describes the capabilities array only via an ellipsis, but the low complexity means the agent has enough to call and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is empty, so there is nothing to document. Per the zero-parameter baseline, the description does not need to add parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific imperative—'Report health of BOTH bridges'—and names the two bridge resources (midi_bridge, piano_roll), making the tool's scope clear. It differentiates itself from single-bridge or info-only siblings by emphasizing both bridges and listing the relevant health fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use fl_ping over related siblings such as fl_bridge_info, fl_reconnect, or transport_status. The description only states what it does, not when/why to call it, and offers no exclusion criteria or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fl_reconnectA
Drop and reopen the TCP connection to the MIDI bridge.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden of disclosure. It states 'drop and reopen' which implies interruption, but does not warn about potential side effects like lost data or ongoing session disruption. Adequate but could be more thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff. Front-loaded with verb and resource. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with no params or output schema, but description lacks context about when to use (e.g., reconnection needed) and consequences. Minimal but not fully scaffolded for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so schema coverage is 100%. Baseline of 4 applies as description need not add param info. Nothing to improve here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (drop and reopen) and specific resource (TCP connection to MIDI bridge). Verb is precise and distinguishes from sibling tools like fl_bridge_info or fl_ping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. Does not specify recommended scenarios (e.g., after connection loss), nor when not to use (e.g., during active MIDI operations). Lacks explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gen_chord_notesA
Return MIDI notes for a single chord (no FL write).
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | C4 | |
| quality | No | maj | |
| inversion | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description discloses it does not write, but doesn't specify other behaviors like whether it is read-only or computational.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words, front-loading the key action and constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and three undocumented parameters, the brief description leaves agents guessing about return format and parameter details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and description provides no explanation of root, quality, or inversion parameters, nor any examples or accepted values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it returns MIDI notes for a single chord and explicitly says 'no FL write', distinguishing it from writing tools like gen_emit_chord_progression.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for getting chord notes without writing, but no explicit guidance on when to use versus siblings like gen_scale_notes or gen_emit_arpeggio.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gen_emit_arpeggioC
Emit an arpeggio across N octaves for a given chord.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ||
| root | No | C4 | |
| quality | No | min | |
| direction | No | up | |
| step_bars | No | ||
| length_bars | No | ||
| velocity | No | ||
| octaves | No | ||
| pattern | No | ||
| clear_first | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose side effects (e.g., whether existing notes are cleared, if the action is reversible, or system requirements). The presence of a 'clear_first' parameter hints at destructive behavior, but this is not explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single-sentence description is concise but lacks necessary detail for a tool with 10 parameters. It is front-loaded but insufficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high parameter count and lack of annotations or output schema, the description is severely incomplete. It does not explain the chord format, velocity, duration, or pattern, leaving the agent unprepared to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds no meaning to any of the 10 parameters. It mentions 'N octaves' but does not link to the 'octaves' parameter or explain other key parameters like 'root', 'quality', 'direction', or 'pattern'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool emits an arpeggio across N octaves for a given chord, which distinguishes it from other emit tools like gen_emit_bassline or gen_emit_melody.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like piano_roll_add_arpeggio or other gen_emit tools. The description gives no context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gen_emit_basslineC
Create a bassline that follows a chord progression root (various styles).
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ||
| progression | No | i-VII-VI-V | |
| root | No | C2 | |
| scale | No | minor | |
| bar_length | No | ||
| pattern_style | No | octaves | |
| pattern | No | ||
| clear_first | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only says 'Create a bassline', implying mutation, but gives no details on side effects (e.g., whether it clears existing notes, modifies channel data, or requires specific setup). This is insufficient for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no waste, but it lacks important information. It states the purpose concisely, which earns its place, but the scope is insufficient for a tool with 8 parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, no output schema, and no annotations, the description is far too sparse. An agent cannot determine how to use this tool correctly or what to expect without much inference. The description fails to provide adequate context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not add any meaning to the parameters beyond the schema. Schema description coverage is 0%, and the description only vaguely references 'various styles' and 'chord progression root', which hint at progression and pattern_style but do not clarify usage, defaults, or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('Create a bassline') and the resource ('bassline that follows a chord progression root'), which is clear and specific. It distinguishes from sibling tools like gen_emit_melody or gen_emit_arpeggio by specifying bassline and referencing chord progression root.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like gen_emit_arpeggio or gen_emit_melody. No context about prerequisites or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gen_emit_chord_progressionC
Write a chord progression to a channel's piano roll.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ||
| progression | No | I-V-vi-IV | |
| root | No | C4 | |
| scale | No | major | |
| chord_length_bars | No | ||
| octave_shift | No | ||
| pattern | No | ||
| clear_first | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description should reveal behaviors. It does not mention that clear_first defaults to true, implying destructive writes. It omits details on voicing, chord interpretation, or side effects like channel selection.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but insufficient. It could include a second sentence summarizing key parameters without becoming verbose. The structure is minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters and no output schema, the description is severely incomplete. It does not explain how the progression is built, what musical rules apply, or what the AI can expect in return. The agent has no guidance on parameter effects or usage constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds zero parameter intent. It does not explain what 'progression', 'root', 'scale', 'chord_length_bars', 'octave_shift', 'pattern', or 'clear_first' mean or how they affect output. The description is completely silent on parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (write), the resource (chord progression), and the target (channel's piano roll). It distinguishes well from siblings like gen_emit_arpeggio or piano_roll_add_chord.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as piano_roll_add_chord, gen_chord_notes, or other gen_emit_* tools. The description assumes the agent will infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gen_emit_dnb_grooveB
Emit a Drum & Bass drum groove to the open piano roll as MIDI
note-numbers (36 kick, 38 snare, 42 closed-hat, 46 open-hat, 51 ride).
Each repeat is a 2-bar loop. Default 2 repeats = 4 bars.
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | modern | |
| repeats | No | ||
| clear_first | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It explains the MIDI mapping and loop structure, but omits side effects (e.g., whether it clears existing notes, appends, or overwrites) and does not mention what happens if no piano roll is open.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loading the primary purpose. It is concise with no unnecessary words, though a bit more structure (e.g., listing parameters) would improve clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three parameters, no output schema, and no annotations, the description is incomplete. It fails to explain two of the three parameters and does not clarify the tool's interaction with the open piano roll or potential destructive actions, making it hard to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 only explains the 'repeats' parameter (2-bar loop, default 2). The 'style' enum and 'clear_first' boolean are not described, leaving their meaning ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool emits a Drum & Bass drum groove to the open piano roll using specific MIDI note numbers (36 kick, etc.). It distinguishes from sibling tools like gen_emit_bassline or gen_emit_melody by specifying the genre and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that a 'repeat' is a 2-bar loop and default is 4 bars, but does not specify when to use this tool versus alternatives (e.g., gen_emit_drum_pattern_notes) or any prerequisites like an open piano roll being required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gen_emit_drum_pattern_notesA
Emit a drum groove to the currently-open piano roll as individual notes.
Use this when you don't have a MIDI bridge (no step sequencer access). Open the drum channel's piano roll first.
midi_map: which MIDI note number represents each drum voice.
Default: kick=36, snare=38, clhat=42, ophat=46, clap=39, tom=45, ride=51.
style: one of gen_list_drum_patterns names.
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | boom_bap | |
| midi_map | No | ||
| step_bars | No | ||
| repeats | No | ||
| clear_first | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description mentions it emits notes to piano roll but does not disclose if it clears existing notes (though parameter clear_first exists but is not described). Does not explain side effects or permissions. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: one short paragraph with purpose, usage, and parameter notes. No redundant information. Front-loaded with key action and prerequisite.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing descriptions for step_bars, repeats, and clear_first parameters. No output schema information. Does not compare to sibling tool gen_emit_drum_pattern_step_seq. Incomplete for a tool with 5 parameters and no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%. Description explains only 2 of 5 parameters (midi_map with defaults, style reference). Parameters step_bars, repeats, and clear_first are not described, leaving significant gaps for agent usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States 'emit a drum groove to the currently-open piano roll as individual notes' with clear verb and resource. Distinguishes from sibling gen_emit_drum_pattern_step_seq by specifying 'when you don't have a MIDI bridge (no step sequencer access)'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'Use this when you don't have a MIDI bridge (no step sequencer access).' Provides prerequisite: 'Open the drum channel's piano roll first.' No explicit when-not to use, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gen_emit_drum_pattern_step_seqB
Write a drum groove into the step sequencer (requires MIDI bridge).
Use this when you DO have a MIDI bridge. channel_map: map each of
{"kick","snare","clhat","ophat","clap","tom","ride"} to a channel index.
| Name | Required | Description | Default |
|---|---|---|---|
| channel_map | Yes | ||
| style | No | boom_bap | |
| repeats | No | ||
| pattern | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It mentions the MIDI bridge requirement but fails to disclose important behaviors like whether the tool overwrites existing patterns, potential side effects, or error handling. The mutation action is implied but not elaborated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short (two sentences) and front-loaded with the main action. Every sentence adds value, though the structure could be improved by separating parameter documentation more clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 params, nested object, no output schema, no annotations), the description is incomplete. It lacks behavioral details, parameter semantics for most params, and any return value information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains the 'channel_map' parameter (mapping drum names to channel indices), which adds meaning beyond the schema. However, the other three parameters (style, repeats, pattern) have no description coverage and are not explained, leaving a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Write' and resource 'drum groove into the step sequencer', and distinguishes from sibling tool 'gen_emit_drum_pattern_notes' by specifying the target (step sequencer vs. notes).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a prerequisite ('requires MIDI bridge') and hints at when to use ('when you DO have a MIDI bridge'), but does not explicitly state when not to use or mention alternatives (e.g., using gen_emit_drum_pattern_notes without a bridge).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gen_emit_melodyC
Generate a random melody that stays within the given scale and write it to the piano roll.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ||
| root | No | C4 | |
| scale | No | minor | |
| length_bars | No | ||
| note_duration_bars | No | ||
| octave_range | No | ||
| seed | No | ||
| pattern | No | ||
| clear_first | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description mentions 'random melody' and scale constraint but does not disclose that it overwrites existing notes (clear_first parameter) or any side effects. For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 16 words, concise but missing structure. Does not front-load critical info like 'channel' requirement. Every word is earned but not enough coverage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters, no output schema, and no parameter descriptions, the description is severely incomplete. Does not explain behavior of 'pattern', 'seed', or 'clear_first'. No mention of return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. Description adds no parameter details beyond names and types. Does not explain 'seed', 'pattern', 'clear_first', or how 'root' and 'scale' combine to define the scale.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'generate', resource 'melody', and output 'write it to the piano roll'. It specifies 'stays within the given scale' which differentiates from other gen_emit tools like bassline or arpeggio.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like gen_emit_bassline. No prerequisites mentioned (e.g., channel must exist). No exclusions or when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gen_list_chord_qualitiesA
Return all supported chord quality names.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits beyond the obvious. It simply states what it returns, with no mention of side effects, performance, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence that directly communicates the tool's purpose with no unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the trivial nature (no parameters, no output schema), the description is adequate. It could optionally list example chord qualities, but that is not necessary for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and the input schema is empty with 100% coverage. The description adds no parameter semantics, but none are needed. Baseline for zero parameters is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns all supported chord quality names, with a specific verb and resource. It distinguishes from sibling tools like gen_chord_notes which generate chord patterns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. While context suggests it's for listing available chord qualities before using other generation tools, no explicit instructions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gen_list_dnb_stylesA
Return available Drum & Bass drum pattern styles.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits (e.g., side effects, data source). For a simple read-only tool, minimal transparency is acceptable, but absence of any cues lowers the score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is extremely concise, front-loaded with the action, and contains no superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema), the description is nearly complete. It lacks details on the return format (e.g., list of strings), but the function is straightforward and the context suffices for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema coverage, the description adds value by specifying that the returned styles are for Drum & Bass, which informs the agent of the content type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return' and the resource 'available Drum & Bass drum pattern styles', distinguishing it from sibling tools like gen_list_drum_patterns or gen_list_scales.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives or any exclusions. The description merely states what it does, without context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gen_list_drum_patternsA
Return all built-in drum patterns.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description states it returns built-in drum patterns but lacks details on return format or any side effects, leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words; front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with no parameters and no output schema, the description adequately conveys the core behavior, though return type or format could be specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has zero parameters; description does not need to add parameter info, and baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'return' and resource 'drum patterns', distinguishing it from sibling tools like gen_list_scales or gen_list_chord_qualities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use or alternatives; usage is implied by the tool's name and purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gen_list_progressionsA
Return all built-in Roman-numeral progressions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states it returns progressions but does not disclose read-only nature, output format, or any behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that conveys the essential information with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description does not explain the return format (e.g., list of strings, objects). For a simple list tool, this may be sufficient but could be clearer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is 100%. According to guidelines, baseline is 4. The description adds no parameter info, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Return') and the resource ('all built-in Roman-numeral progressions'), distinguishing it from sibling tools like gen_list_chord_qualities or gen_list_scales.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as gen_list_chord_qualities or gen_list_scales; no context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gen_list_scalesA
Return all supported scale names.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It only states the basic function without any behavioral context (e.g., whether the list is static/dynamic, performance implications, or that it's a read-only operation).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, perfectly concise with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list tool, the description is mostly complete. However, it does not specify the output format (e.g., array of strings), but given the tool's simplicity, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100%. Baseline is 4 per guidelines. The description adds no extra parameter meaning but is not needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Return' and resource 'all supported scale names', clearly distinguishing it from sibling tools like gen_list_chord_qualities or gen_list_drum_patterns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. For example, it could mention that the returned names can be used with gen_scale_notes or other scale-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gen_scale_notesC
Return MIDI notes for a scale run.
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | C4 | |
| scale | No | minor | |
| octaves | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations and description does not disclose any behavioral traits such as side effects, performance, or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Overly terse. While it is concise, it lacks necessary detail and structure, failing to add value beyond the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no parameter documentation. Does not describe return format or what 'MIDI notes' entails (list, range, etc.).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and description does not explain any parameters. Only names are given; no additional meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it returns MIDI notes for a scale run. Distinguishes from sibling gen_chord_notes and gen_list_scales, but 'scale run' could be slightly ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixer_all_tracksC
List of all mixer tracks.
| Name | Required | Description | Default |
|---|---|---|---|
| include_empty | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only says 'List of all mixer tracks.' It does not clarify the contradiction between 'all' and the include_empty parameter defaulting to false, nor does it disclose what the returned list contains (e.g., indices, names, or track data).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is six words, free of filler, and places the scope upfront. It is as concise as a simple one-line tool description should be, despite lacking detail that other dimensions penalize.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and a parameter whose semantics are undocumented, the one-line description is insufficient for correct usage. An agent cannot determine what the returned list represents or how include_empty changes the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds nothing about the include_empty parameter. The parameter name provides a basic hint that empty tracks can be included, but 'empty' is undefined and the effect of the default false is not explained, so the agent must guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource ('mixer tracks') and scope ('all'), which is sufficient to distinguish it from sibling tools like mixer_track_info and mixer_all_peaks. It lacks an explicit verb such as 'Lists' or 'Returns', so it is clear but not maximally explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many sibling mixer/list tools, nor any mention of when include_empty should be true or false. The description provides no context that would help an agent choose between this and mixer_track_info, mixer_all_peaks, or playlist_all_tracks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixer_armC
Arm track for recording.
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes | ||
| armed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It implies a state change but does not explain whether the tool toggles arming, what `armed: null` means, whether repeated calls have side effects, or whether recording must be stopped. This is a significant transparency gap for a state-mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with no wasted words. However, it is under-specification rather than purposeful conciseness, omitting crucial operational details that are necessary for correct invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only two parameters, but the description does not cover their meaning or default behavior, there is no output schema, and there are no annotations. An agent cannot determine how to specify a track index or what the armed parameter does, so the description is incomplete for safe and correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain either parameter. `track` is just an integer with no indexing semantics, and `armed` is a boolean/null with no explanation of how it relates to arming. The description adds no value beyond the bare parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Arm track for recording' clearly states the verb (arm), resource (track), and purpose (recording). This is specific and intelligible, though it does not explicitly distinguish itself from sibling tools like transport_record, so it misses the top score for differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor on how the `armed` parameter should be set (true, false, or null). The description offers no context for selection or invocation, leaving the agent without direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixer_countA
Number of mixer tracks (incl master @ index 0).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. It adds useful semantic detail by specifying that the count includes the master track at index 0, but it does not mention side effects, return format, or the lack of modification behavior. This is acceptable for a simple read-only count but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence communicates the entire purpose and the indexing caveat with no redundancy. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless count with no output schema, the description fully specifies what is counted and how the count is indexed. An agent can invoke it correctly without needing further information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema is trivially complete and the description has no parameter burden. The baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the number of mixer tracks and clarifies an important scope detail ('incl master @ index 0'). It is distinguishable from mixer_track_info and mixer_all_tracks as an aggregate count, though it does not use an explicit verb or name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as mixer_track_info or mixer_all_tracks. The description provides no context for selection, leaving the agent to infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixer_fx_slotsA
List plugin IDs in the 10 FX slots of a mixer track (-1 = empty).
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It clearly signals a read-only listing operation and adds the sentinel convention (-1 for empty slots) and fixed slot count, which are useful beyond the schema. It does not mention invalid-track behavior or side-effect guarantees, but 'List' strongly implies non-mutating behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It conveys the action, target resource, and a key output convention in under fifteen words, which is ideal for agent consumption.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only tool with no output schema, the description is largely complete: it specifies what is returned and how empty slots are represented. It could still include valid track bounds or an example, but given the low complexity, the missing details are relatively minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only a required integer named 'track' with 0% description coverage. The tool description clarifies that the parameter refers to a mixer track, adding domain meaning beyond the schema's generic 'Track' title. However, it does not state the track indexing convention, valid range, or whether the track argument is zero-based or one-based, leaving a notable gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('List'), a precise resource ('plugin IDs in the 10 FX slots of a mixer track'), and an important output detail ('-1 = empty'). This clearly distinguishes it from generic mixer or plugin listing tools and tells an agent exactly what the tool returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to use this tool versus related tools such as plugin_list_mixer_track or mixer_track_info. There are no stated prerequisites, exclusions, or alternative selection conditions, so the agent must infer usage context from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixer_get_eqB
Return 3-band mixer EQ (gains + frequencies).
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It conveys that this is a read-only operation via the verb 'Return,' which is the key behavioral trait. However, it doesn't disclose error behavior for invalid track indices, whether frequencies are in Hz or gains in dB, or any edge-case handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tightly worded sentence with zero filler; the core action ('Return') and the payload ('3-band mixer EQ (gains + frequencies)') are front-loaded. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter with no output schema and no annotations, the description covers the essence of what the tool does and roughly what it returns. But it leaves gaps: no parameter semantics, no return format or unit details, and no failure behavior. Additional detail on units or the return structure would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description makes no mention of the 'track' parameter. The name 'track' and the phrase 'mixer EQ' imply it references a mixer track, but indexing, bounds, and whether it refers to channel or mixer track numbers are left ambiguous. The description fails to compensate for the undocumented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Return 3-band mixer EQ (gains + frequencies).' It clearly identifies what the tool does and what data it produces. It doesn't explicitly distinguish itself from siblings like mixer_set_eq_band or mixer_track_info, but the get/set pairing and the EQ focus make differentiation mostly self-evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It never mentions mixer_set_eq_band as the write counterpart, nor mixer_track_info which may also surface EQ data, and provides no exclusions or context for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixer_link_to_channelC
Link a channel to a mixer track. mode='replace'|'add'.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ||
| track | Yes | ||
| mode | No | replace |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only states the mode values without defining what 'replace' or 'add' actually do to existing routings. It does not mention side effects, whether previous links are removed, or how the operation affects the mixer state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, stating the key action in the first sentence and mode options in the second. It contains no filler, though the terse 'mode=...' notation is slightly cryptic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with three parameters, no annotations, and no output schema, the description provides only the bare minimum. An agent can make a call, but cannot be confident about the exact behavior of the two modes or the implications for existing mixer routing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 partially does by clarifying that 'channel' is the channel being linked and 'track' is the mixer track, and by giving valid mode values. However, it does not explain the meaning of 'replace' versus 'add' in terms of the underlying state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Link a channel to a mixer track') and the resource relationship, so the basic purpose is clear. However, it does not distinguish this from closely related sibling tools such as channel_route_to_mixer or mixer_route, which likely perform similar linking/routing operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternative routing or mixer tools. The mode values 'replace'|'add' are mentioned, but there is no explanation of which mode to choose in a given situation or what happens if channel routing already exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixer_muteB
Mute / unmute / toggle (None = toggle).
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes | ||
| muted | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that passing None for 'muted' toggles the mute state, but it does not mention what happens for invalid tracks, whether the change persists, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short and front-loads the core operation, with the toggle behavior added parenthetically. No filler words, though the repeated 'Mute / unmute / toggle' phrasing is slightly redundant with the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation tool, the description conveys the operation but is missing minimal surrounding context such as how track is identified or what distinguishes this from channel_mute. There is no output schema, so mention of return behavior would also have helped.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 explains the key ambiguity — None toggles, booleans set mute/unmute — but it does not clarify track indexing or any constraints on 'track' beyond the schema's integer type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific operation — mute/unmute/toggle — on a mixer track, made clear by the tool name 'mixer_mute'. It does not explicitly distinguish from the sibling 'channel_mute', so an agent might need to look elsewhere to choose correctly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as channel_mute or mixer_solo. No context, prerequisites, or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixer_routeC
Enable or disable a mixer route (send) between two tracks.
| Name | Required | Description | Default |
|---|---|---|---|
| src_track | Yes | ||
| dst_track | Yes | ||
| enabled | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, but it merely restates the boolean operation ('enable or disable') already visible in the schema. It does not disclose side effects, whether an existing route is required, or how disabling affects the send level.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no wasted words. Every word earns its place, even though more behavioral detail is needed elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter tool with no annotations and no output schema, the description leaves too much unsaid: track numbering, direction, default enabled behavior, and effect on an existing send. An agent would likely need to guess or call another tool to interpret the parameters correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only hints that two tracks are involved without explaining the direction or meaning of src_track vs dst_track. The enabled parameter is also not described beyond the verb, so the description fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Enable or disable') on a specific resource ('mixer route/send between two tracks'), which clearly conveys the core function. It is distinct from sibling send-level tools like mixer_set_send_level, though it never names an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to choose this over mixer_set_send_level or channel_route_to_mixer, or how enabling a route relates to setting levels. The only implied context is the verb itself, which is not enough to route an agent to the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixer_selectC
Focus / select a mixer track.
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Focus / select a mixer track' and does not mention side effects, whether the selection persists, what happens on invalid track values, or whether the operation is read-only versus UI-mutating.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler or redundancy. It gets directly to the point and is fully front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter selection tool, the description is minimally viable: it names the action and the target resource. However, the complete absence of parameter semantics and behavioral detail means an agent may still guess about indexing and side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, and the description adds only minimal context by mentioning 'a mixer track.' It does not clarify whether the integer track parameter is 0-based or 1-based, what valid ranges are, or how it relates to mixer_track_info indexing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Focus / select') and a specific resource ('a mixer track'), which makes the tool's purpose immediately identifiable. It also distinguishes it from related siblings like channel_select because it explicitly targets the mixer track rather than a channel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as mixer_track_info or ui_selected_channel. There are no stated prerequisites, exclusions, or scenarios where a sibling would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixer_set_colorA
Set mixer track color ('#RRGGBB' or 'rgb(r,g,b)').
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes | ||
| color | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the color formats ('#RRGGBB' or 'rgb(r,g,b)'), but does not mention validation behavior, error conditions, whether the track must exist, effects on undo, or what the tool returns after setting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero waste. The verb, resource, and valid color formats are all delivered immediately, and every part of the sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple setter with two required parameters and no annotations or output schema, but the description is not complete enough for reliable invocation. It covers the color format yet omits any guidance on the 'track' parameter, leaving a key input unconstrained and potentially ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for both parameters. It meaningfully documents the 'color' parameter's accepted formats, but says nothing about the 'track' parameter—no indexing convention, bounds, or how to reference a mixer track.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('Set') and a specific resource ('mixer track color'), and reinforces the color value formats accepted. This distinguishes it clearly from sibling color-setters like pattern_set_color, channel_set_color, and playlist_set_track_color.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use it: when changing a mixer track's color, as opposed to other color-related setters. It does not explicitly name alternatives or state exclusions, but the resource scope ('mixer track') provides clear context without leaving the agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixer_set_eq_bandA
Set one band of the mixer EQ. band=0|1|2 (low/mid/high). gain -1..1, freq 0..1 (normalised).
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes | ||
| band | Yes | ||
| gain | No | ||
| frequency | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the behavioral burden. It does disclose allowed ranges and normalization for gain and frequency, which is useful, but it does not explain what null gain/frequency means, whether omitted values leave the band unchanged, or what happens to the existing EQ state after the call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, tightly worded sentence conveys the action and all critical value constraints with no filler. The most important scoping information, 'set one band of the mixer EQ,' is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with no output schema, the description is mostly adequate, but it leaves two operational gaps: the meaning/semantics of null-valued gain and frequency is unstated, and the 'track' parameter is not explained. These gaps matter more because no annotations or schema descriptions exist to fill them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning itself. It does so effectively by mapping band=0|1|2 to low/mid/high and by giving explicit numeric ranges for gain and frequency. However, the required 'track' parameter is left undocumented in both the schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Set one band of the mixer EQ,' a specific verb plus a clearly bounded resource. It also disambiguates from the sibling mixer_get_eq by emphasizing the write operation and from other mixer_set_* tools by targeting a single EQ band.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus related mixer tools, such as mixer_get_eq, mixer_set_volume, or mixer_set_pan. The usage context is only implied by the name and brief description rather than explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixer_set_nameC
Rename a mixer track.
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes | ||
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the full burden of disclosing behavior, but it only restates the basic rename operation. It does not mention side effects, whether the rename affects indexing, authorization needs, or any constraints, leaving significant behavioral ambiguity for a mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundancy. It is appropriately brief for a simple operation, though the brevity contributes to missing parameter and usage detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with no annotations and no output schema, the description is too sparse. It lacks enough context about parameter semantics and side effects to be called confidently by an agent, especially when compared to the richer sibling tools in the same domain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description clarifies that 'name' is the new name and 'track' is the target track, but with 0% schema description coverage it does not explain track addressing (e.g., zero-based vs one-based), name constraints, or other required semantics. The compensation is minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Rename') and resource ('mixer track'), making the operation unambiguous. This also distinguishes it from sibling tools like channel_set_name or playlist_set_track_name, which target different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool instead of related naming tools, and no exclusions or alternative routing are mentioned. The context is left entirely to the agent's inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixer_set_panA
Set mixer track pan (-1.0..1.0).
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes | ||
| pan | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does provide the valid input range (-1.0..1.0), which is useful, but it does not mention whether the pan is absolute or relative, how invalid track indices are handled, or any side effects. This is adequate but minimal for a mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with no filler, and the key information ('Set mixer track pan') is front-loaded before the parameter range. Every word contributes to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter setter with no output schema, the action and allowed value range are described sufficiently for a basic call. But given there are no annotations, the description stops short of covering edge behavior, track validity, or whether the operation can fail, leaving some ambiguity for an agent relying solely on this text.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds meaning to 'pan' by specifying the -1.0..1.0 range, which the schema lacks, and clarifies that 'track' refers to a mixer track. However, it does not specify the indexing convention (0-based vs 1-based) or whether the pan value is linear or logarithmic.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
'Set mixer track pan' clearly identifies the verb, resource, and value being manipulated, and the range (-1.0..1.0) disambiguates the operation from related mixer setters. It does not explicitly contrast with channel_set_pan, but the word 'mixer' makes the resource scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it should be used when adjusting pan on a mixer track rather than on a channel, based on the word 'mixer' and the sibling channel_set_pan tool. However, it provides no explicit when-to-use guidance, exclusions, or mention of when the alternative channel_set_pan would be appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixer_set_send_levelB
Set send level from one mixer track to another (0..1).
| Name | Required | Description | Default |
|---|---|---|---|
| src_track | Yes | ||
| dst_track | Yes | ||
| level | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the full behavioral burden. It discloses the operation and the 0..1 range, but it does not state whether the tool creates the send connection or merely adjusts an existing one, how invalid track indices are handled, or whether out-of-range values are clamped. This ambiguity matters for a mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence contains the action, subject, source, destination, and value range with no redundant or filler words. The most decision-relevant information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with three required parameters and no output schema, the description covers the core call semantics. However, it omits usage prerequisites and the relationship to mixer_route, which an agent likely needs to know to invoke it correctly in a mixing workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description adds critical meaning: 'from one mixer track to another' maps src_track and dst_track, and '(0..1)' defines level's valid range. However, it does not explain track indexing conventions, whether the tracks are zero-based, or how non-numeric or out-of-range level values are treated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific verb and resource: set the send level, and it clarifies the directional relationship ('from one mixer track to another') plus the valid range (0..1). It is distinct from sibling tools like mixer_route or mixer_set_volume because 'send level' is a different parameter, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus mixer_route, mixer_set_volume, or other mixer controls. The description does not mention prerequisites such as an existing send/routing, whether the send must first be created, or what happens when the source and destination tracks are invalid or the same.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixer_set_stereo_separationB
Set mixer track stereo separation (-1.0..1.0).
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes | ||
| separation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the -1.0..1.0 valid range, which is a meaningful behavioral constraint. However, with no annotations, the description carries the full burden of explaining side effects, error behavior for out-of-range values, or interaction with track state; those are not disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence with no filler. The action and target are front-loaded, and the range is attached to the relevant parameter without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is not complete enough for a caller to confidently use the tool: it does not define the track parameter semantics, does not state whether values are clamped or rejected, and gives no indication of return behavior. For a simple setter some of this is inferable, but critical details are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description partially compensates by defining the separation value range. The track parameter is left ambiguous — it could be a 1-based index, 0-based index, or a name — so the agent still lacks full semantic meaning for one of the two required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action (set) on a specific resource (mixer track stereo separation) and includes the valid numeric range. It differentiates from sibling mixer_set_* tools by naming the exact property being modified, though it does not explicitly contrast with alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus other mixer setter tools, no prerequisites, and no mention of which track identifier format is expected. The description simply states what the tool does, leaving usage context entirely to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixer_set_volumeB
Set mixer track volume (0.0..1.0).
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes | ||
| volume | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It only discloses the volume range; it does not explain side effects, whether the volume change persists, how invalid tracks are handled, or whether automation is overridden. This is insufficient for a mutating tool with zero annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes either the operation, the resource, or the valid range, making it appropriately sized for a simple setter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and no parameter descriptions, this is too sparse for an autonomous agent. The only contextual addition is the volume range; track semantics, effect, and failure behavior are all missing. It barely exceeds what the tool name and schema titles already imply.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds the volume range (0.0..1.0) but does not explain the 'track' parameter at all, such as zero-based indexing, valid ranges, or how tracks are identified. The track parameter remains semantically opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Set mixer track volume' with a clear valid range. It clearly identifies the mixer domain, distinguishing it from channel_set_volume and from other mixer track setters like mixer_set_pan or mixer_mute.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives, such as channel_set_volume or mixer_set_pan. There is no mention of prerequisites, valid track indices, or contexts where this tool is the appropriate choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixer_soloC
Solo / unsolo / toggle.
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes | ||
| solo | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and 'Solo / unsolo / toggle' only hints at mode changes. It does not disclose side effects (e.g., clearing other solos), persistence, or return behavior, and gives no context about what toggling depends on.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only three words and front-loads the core behavior without any filler. It is concise almost to a fault, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool, the description plus schema conveys the basic callable surface. However, with no annotations, output schema, or parameter explanations, it leaves the exact solo semantics and track-addressing conventions unstated, making it barely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 loosely maps to the solo parameter by suggesting three modes, but it never explicitly says that `solo=true` solos, `solo=false` unsolos, and `solo=null` toggles, nor does it explain what `track` refers to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Solo / unsolo / toggle' conveys the action modes and distinguishes three behaviors, but it never explicitly names the resource (mixer track) and relies on the tool name and schema to supply context. It is clearer than a tautology but does not differentiate from sibling tools like channel_solo or mixer_mute.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use mixer_solo versus the many related sibling tools (mixer_mute, channel_solo, playlist_solo_track). No context, prerequisites, or exclusions are given, so the agent must infer applicability from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixer_track_infoA
Detailed info on a mixer track (name, vol, pan, mute, solo, arm, color, stereosep, sends, fx slots).
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly frames this as a non-mutating information query and lists the data it reports, which covers the core behavioral expectation. It does not explicitly say that no project state is changed, nor does it mention error behavior or track-indexing edge cases, but 'detailed info' carries most of the read-only burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. The parenthetical list is dense and every element names a concrete attribute an agent would care about, so the length is appropriate for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter info tool with no output schema, this description is largely complete: it identifies the resource and the data categories the caller should expect. The main omissions are a precise statement about the return format and track numbering, but these are minor given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description needed to explain the 'track' parameter but only refers to it obliquely via 'a mixer track'. It does not state whether the index is zero-based or one-based, what range is valid, or how the parameter selects the track, leaving a real gap for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear information-retrieval operation on a single mixer track and enumerates the exact data it exposes (name, vol, pan, mute, solo, arm, color, stereosep, sends, fx slots). The singular 'a mixer track' distinguishes this from sibling tools like mixer_all_tracks, and the 'info' framing separates it from the many mixer_set_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'info' and the field list imply that this tool is for reading a mixer track's current state, so an agent can infer the basic use case. However, the description does not explicitly say when to prefer it over mixer_all_tracks, mixer_get_eq, or related read-only sibling tools, nor does it state any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pattern_cloneC
Clone a pattern (copy all notes & channel grid bits).
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| new_name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It reveals what gets copied, but does not state whether a new pattern is created, where the clone appears, how the optional new_name is used, whether the original is modified, or what the tool returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. The parenthetical adds the most important operational detail about what gets copied. It is appropriately concise for the tool's scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The definition is incomplete for an agent to call it correctly without additional inference. It does not explain the role of the two parameters, the side effects of cloning, or the expected result, and there is no output schema to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the two parameters. It mentions cloning a pattern but never states that index identifies the source pattern or what new_name does when provided versus left as the default empty string.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Clone a pattern') and clarifies what is copied ('all notes & channel grid bits'). This makes the tool's purpose clear and distinguishes it from pattern_create/pattern_rename, though it does not explicitly name any sibling alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus related pattern tools, nor any mention of prerequisites or expected workflow. The verb 'clone' implies a use case, but the description never states conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pattern_countA
Return total pattern count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. 'Return' strongly implies a read-only operation with no side effects, which is good, but the description doesn't explicitly state that it is non-destructive or describe the exact nature of the returned value beyond 'count.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundancy. Every word contributes to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema tool, the description is nearly complete. It could be slightly more explicit about what 'total' counts (e.g., all patterns in the project), but 'total pattern count' is sufficiently clear for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description doesn't need to clarify parameter meanings. The baseline of 4 applies because there is nothing for the description to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return') and a clear resource ('total pattern count'), which immediately distinguishes it from sibling tools like pattern_list or pattern_current. An agent can tell exactly what function this tool performs without inspecting anything else.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: an agent should use this tool when it needs the total number of patterns rather than details or navigation. It does not explicitly name alternatives or exclusions, but the purpose is unambiguous and there are no prerequisites to worry about.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pattern_createA
Create a new empty pattern. Returns {index, name}.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral burden. It clearly states the creation action and the return value, but it does not mention side effects such as whether the new pattern becomes active, whether creation is undoable, or what happens when name is omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short, front-loaded sentence with the return format in a second sentence. Every word earns its place, and there is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter creation tool, the description is mostly complete: it states the operation and the return value. The input schema covers the optional name default. The main gap is the lack of any mention of where the pattern is created or whether it becomes the current pattern.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needs to explain the 'name' parameter. It does not mention name at all beyond the schema's bare property title, leaving the agent to infer that the name argument names the new pattern.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair: 'Create a new empty pattern.' The word 'empty' distinguishes it from pattern_clone, and 'new' distinguishes it from pattern_select or pattern_rename. It is immediately clear what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as pattern_clone. The 'empty' qualifier weakly implies a contrast with cloning, but there is no explicit 'use this when' or 'use X instead' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pattern_currentA
Return index + name of currently selected pattern.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of explaining behavior. It accurately states the return content, but does not disclose edge-case behavior such as what happens when no pattern is selected, nor the exact response format. This is acceptable for a simple getter but leaves some uncertainty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that immediately states what is returned. There is no filler, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter getter, the description is nearly complete: it names the resource and the returned fields. The only gap is the unspecified behavior when no pattern is selected, which would be useful but is not critical for this low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantics to document. The baseline of 4 applies because there is no ambiguity introduced by missing param documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return') and a specific resource ('currently selected pattern'), and names the output ('index + name'). This clearly distinguishes it from sibling tools like pattern_list, pattern_count, and pattern_select.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'currently selected pattern' makes the intended usage clear: use this whenever you need the active pattern's index and name. It does not explicitly discuss alternatives, but the scope is unambiguous enough that an agent is unlikely to confuse it with list/count/select operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pattern_deleteB
Delete a pattern by index.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It conveys that the tool deletes a pattern, but does not state whether deletion is irreversible, how out-of-range indices are handled, whether subsequent patterns shift, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear, front-loaded sentence with no filler or irrelevant detail. It is appropriately concise for a simple parameterized delete operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with no annotations and no output schema, the description is too thin. It lacks crucial context about error behavior, reversibility, index semantics, and what happens after deletion, which an agent needs to invoke it safely and correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only says 'by index,' which merely repeats the parameter name. It does not clarify whether the index is zero-based, what range is valid, or how to obtain a pattern's index.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Delete') and a specific resource ('a pattern by index'). It clearly distinguishes this tool from related siblings like pattern_create, pattern_clone, and pattern_select, leaving no ambiguity about what operation it performs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use it, or how it relates to similar sibling tools such as pattern_delete_clip or pattern_clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pattern_find_by_nameA
Find a pattern by exact name (case-insensitive). Returns {index, name} or null.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently states case-insensitive matching and explicitly covers the null return case, which is important lookup behavior. It does not mention whether the tool has side effects, but the read-only nature of a find-by-name lookup is reasonably implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence with no filler. It front-loads the verb and resource, then adds matching behavior and return format, all in minimal space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, low-complexity lookup with no output schema, the description covers purpose, matching semantics, and return behavior including the not-found case. It does not explain how the returned index relates to other pattern tools, but that is not essential for invoking this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. The single parameter 'name' is defined as an exact pattern name with case-insensitive matching, adding meaning beyond the schema's bare 'Name' title. It could also explain what qualifies as a valid pattern name, but for a simple lookup this is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Find'), a clear resource ('a pattern'), and the exact matching semantics ('exact name, case-insensitive'). It also discloses the return shape ('{index, name} or null'), clearly distinguishing it from sibling tools like pattern_list, pattern_count, or pattern_select.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a clear use case: when you have an exact pattern name and need its index/name. However, it does not explicitly state when to prefer an alternative like pattern_list for enumerating or pattern_select for changing the current pattern, leaving the when-not-to-use guidance implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pattern_jump_to_nextB
Select the next pattern in the list.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the core action but does not mention wrap-around behavior, behavior at the end of the list, side effects on current selection, or whether any result is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler or redundant information. The core action is immediately clear and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-argument action, the description is enough to know what operation is invoked, but it omits edge-case behavior and any indication of what happens after selection. With no annotations or output schema to fill the gap, a little more context would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics for the description to clarify. The baseline of 4 applies since no parameter documentation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('select') and resource ('the next pattern in the list'), which clearly indicates the tool's function. The 'next' direction distinguishes it from pattern_jump_to_previous, though it does not explicitly contrast with pattern_select.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus pattern_select or pattern_jump_to_previous. The description states only what the tool does, with no exclusions, prerequisites, or contextual recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pattern_jump_to_previousA
Select the previous pattern in the list.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the core side effect: changing the selected pattern to the previous one. However, with no annotations and no output schema, it leaves meaningful behavioral traits undisclosed, such as wrap-around behavior, behavior at the first pattern, and whether the call returns any value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler or repetition. The action is front-loaded, and every word contributes to the meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless navigation command with no output schema, the description states the essential behavior well enough for an agent to decide to call it. The main gaps are boundary behavior and return expectations, but the low complexity makes the description largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the empty input schema documents that completely. Since there are no parameters to explain, the description does not need to add parameter-level detail, so the parameterless baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action — 'Select the previous pattern in the list' — with a specific verb and resource. However, it does not explicitly distinguish itself from pattern_jump_to_next or explain what 'the list' refers to, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives like pattern_select, pattern_list, or pattern_jump_to_next. There is also no mention of prerequisites such as having a current pattern selected or what happens at the beginning of the list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pattern_listA
Return list of all patterns: [{index, name, color, length}].
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the return structure directly, which is useful since no annotations are provided. It does not explicitly state that the operation is read-only, nor does it mention ordering, pagination, or empty-list behavior, so transparency is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the action and object, then gives the compact return shape. Every element is useful and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only query, the description is complete: it says what the tool returns and in what structure. No output schema exists, so including the element fields in the description is necessary and sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the input schema imposes no documentation burden. The description adds value by specifying the return fields, which is the only semantic information needed here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Return'), a clear resource ('all patterns'), and the exact shape of the returned items. This distinguishes it from sibling tools like pattern_count or pattern_current by indicating it returns a full list rather than a count or a single current pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the phrase 'all patterns' — the tool should be used when full enumeration is needed. However, there is no explicit guidance about when not to use it or which alternative to choose for more targeted queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pattern_selectA
Jump to pattern by index (1-based in FL).
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral weight; it conveys the core navigation action and correctly flags the 1-based indexing convention. It does not disclose side effects on the current pattern/playback or error behavior for out-of-range indices, which is a clear gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with no filler, front-loading the action and the key indexing detail. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter command with no output schema, the description gives the action, target resource, and indexing base. It omits invalid-index behavior, but that is a secondary detail for a simple navigation command, not a blocker.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only an integer 'index' with no description, so the note about 1-based FL indexing is genuinely additive and prevents the most likely off-by-one mistake. It does not document bounds, but for a single required parameter this is substantial compensation for 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete action ('Jump to pattern') and a specific selection mechanism ('by index'), which separates it from index-less siblings like pattern_find_by_name and pattern_jump_to_next/previous. It is not fully explicit about what 'jump' changes (active pattern vs transport position), so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by index (1-based in FL)' implies the tool is appropriate when the caller already has a numeric pattern index, which is a usable usage condition. However, it neither states when not to use it nor points to alternatives such as pattern_find_by_name or pattern_jump_to_next/previous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pattern_set_lengthC
Set pattern length in bars.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| bars | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states only the basic action and does not disclose whether existing pattern content is preserved, whether the length change is destructive, what constraints apply to bars, or whether the pattern must exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no filler, and the key idea is front-loaded. However, brevity is achieved by omitting context that would be valuable for correct invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With two required parameters, no annotations, and no output schema, this description is too sparse for an agent to confidently construct arguments or anticipate results. It would benefit from at least explaining index and the effect of setting the length.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must clarify both parameters. It clarifies that bars represent a length in bars, but it leaves the index parameter unexplained and does not mention indexing, bounds, or required value types beyond the schema's basic types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('set') and resource ('pattern length') with a unit ('bars'), so the core action is clear and not a tautology. It is not misleading, but it does not differentiate from sibling pattern tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus related pattern tools, and no mention of prerequisites such as selecting a pattern or using an index from another call. The intended usage is only implied by the name and short description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
piano_roll_add_arpeggioC
Arpeggiate a chord into sequential notes.
| Name | Required | Description | Default |
|---|---|---|---|
| midi_notes | Yes | ||
| time_bars | No | ||
| step_bars | No | ||
| note_duration_bars | No | ||
| velocity | No | ||
| direction | No | up | |
| repeats | No | ||
| channel | No | ||
| pattern | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the full burden of behavioral disclosure. The description does not explain side effects (e.g., whether it adds to or replaces existing notes), required permissions, or scope of changes. It only states it arpeggiates a chord, which is too vague for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (one sentence) but lacks structural elements like front-loading key information. While not verbose, it omits essential details that would make it more helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 9 parameters, no output schema, and no annotations, the description is severely incomplete. It fails to mention prerequisites (e.g., active pattern), return behavior, or any operational context, making it inadequate for proper invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no parameter details. With 9 parameters (including enums like direction and defaults), the description fails to explain any parameter's meaning or effect, leaving the agent unable to use parameters correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Arpeggiate a chord into sequential notes' clearly states the verb (arpeggiate) and resource (a chord). It distinguishes from siblings like piano_roll_add_chord (adds chord simultaneously) and piano_roll_add_notes (adds arbitrary notes).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like gen_emit_arpeggio, piano_roll_humanize, or piano_roll_quantize. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
piano_roll_add_chordC
Add a chord at a given bar position.
| Name | Required | Description | Default |
|---|---|---|---|
| midi_notes | Yes | ||
| time_bars | No | ||
| duration_bars | No | ||
| velocity | No | ||
| channel | No | ||
| pattern | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only says 'Add a chord' without specifying effects on existing notes, pattern selection, undo behavior, or whether the chord is placed in the current pattern.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, but it is underspecified and lacks essential detail, sacrificing clarity for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no output schema, and no annotations, the description is severely incomplete. It does not explain prerequisite pattern selection, behavior across multiple parameters, or return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description adds no explanation for any of the 6 parameters (midi_notes, time_bars, duration_bars, velocity, channel, pattern). Agent cannot infer their meaning or usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Add' and the resource 'chord' at a given bar position, but does not differentiate from sibling tools like piano_roll_add_notes or piano_roll_add_arpeggio.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like piano_roll_add_notes; no prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
piano_roll_add_notesA
Add notes to a channel's piano roll (works WITHOUT MIDI).
notes: list of {midi: int, time_bars: float, duration_bars: float,
velocity: 0..1, pan?: -1..1}.
If channel is given and the TCP (MIDI) bridge is online, that channel's
piano roll is opened automatically. Otherwise, before calling, make sure:
In FL Studio, open the target channel's piano roll (double-click the channel in the Channel Rack).
Pick
ComposeWithLLMfrom the piano-roll scripts dropdown.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | Yes | ||
| clear_first | No | ||
| channel | No | ||
| pattern | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses note format and conditional auto-open, but does not mention default behavior for clear_first (appending vs overwriting) or possible error conditions. Lacks some behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Only ~100 words, front-loaded with purpose, followed by note format and usage conditions. No redundancy, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema or annotations. Description explains input format and prerequisites but omits return values, error handling, and overall behavior for all parameters. Adequate but not complete for a tool with 4 parameters and no structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%; description compensates by explaining notes array structure (midi, time_bars, duration_bars, velocity range 0..1, optional pan -1..1) and channel's role. However, parameters clear_first and pattern are not described in text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Add notes to a channel's piano roll' with the key qualifier 'works WITHOUT MIDI'. Differentiates from other piano_roll_* tools by focusing on generic note addition, though could be more explicit about distinction from add_arpeggio and add_chord.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit conditional guidance: if channel given and TCP bridge online, auto-opens; otherwise details manual steps. Missing explicit when-not-to-use vs alternatives, but prerequisites are clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
piano_roll_clearC
Remove every note in the (channel's) piano roll.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | No | ||
| pattern | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavioral traits. It states 'Remove every note' implying destruction, but lacks details on undo behavior, required permissions, or side effects. The minimal information does not fully inform the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—one sentence—but front-loads the action. It is appropriately short, yet could benefit from structure like bullet points or parameter hints. Conciseness is good, but not optimal for usability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two optional parameters and no annotations or output schema, the description is incomplete. It does not specify which piano roll is affected (channel/pattern), default behavior, or return values. An agent lacks sufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only mentions 'channel' implicitly. The 'pattern' parameter is not explained. The description adds little beyond the schema field titles, failing to clarify parameter meaning or usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Remove' and resource 'every note in the (channel's) piano roll.' It effectively conveys the core action of clearing all notes. However, it does not explicitly differentiate from sibling tools like 'piano_roll_delete_notes,' but the function is distinct enough for an agent to infer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, typical use cases, or situations where this tool should be avoided, leaving the agent without direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
piano_roll_delete_notesC
Delete notes by {midi, time_bars} match.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | Yes | ||
| channel | No | ||
| pattern | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It does not state that the operation is destructive, modifies the piano roll, or requires any permissions. The minimal description leaves the agent unaware of potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, but conciseness comes at the cost of clarity. It front-loads the key idea but lacks necessary detail. It could be restructured to include more information without becoming overly long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, and no annotations, the description is incomplete. It does not explain how to use the 'notes' array, what happens after deletion, or how the tool fits with sibling operations. More context is needed for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 mentions 'midi, time_bars' but does not explain the structure of the 'notes' array parameter or the optional 'channel' and 'pattern' parameters. This is insufficient for an agent to construct valid arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'Delete notes by {midi, time_bars} match', indicating the action and matching criteria. However, it is ambiguous about how the match works and does not distinguish from sibling tools like piano_roll_clear or piano_roll_duplicate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as when to delete specific notes versus clearing all notes or duplicating. There is no mention of prerequisites or excluded scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
piano_roll_duplicateC
Copy a time-range of notes to another location.
| Name | Required | Description | Default |
|---|---|---|---|
| source_time_bars | Yes | ||
| length_bars | Yes | ||
| dest_time_bars | Yes | ||
| channel | No | ||
| pattern | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavior. It only says 'copy', leaving unclear whether existing notes at the destination are overwritten or merged. It does not mention undo behavior, permissions, or effects on the current pattern.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence) but lacks necessary detail, making it under-specified. It does not earn its place as it fails to provide sufficient guidance for effective tool use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, no output schema, and no annotations, the description is far from complete. It does not explain expected outcomes, parameter roles, or potential side effects, making it inadequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no parameter information. The five parameters (source_time_bars, length_bars, dest_time_bars, channel, pattern) are not explained, leaving the agent to infer their meaning from names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'Copy' and resource 'time-range of notes to another location', making the basic action clear. However, it does not distinguish this from siblings like piano_roll_add_notes or piano_roll_clear, relying on the name for differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., piano_roll_add_notes, piano_roll_quantize). No prerequisites or context are mentioned, such as the need for an active piano roll or target channel/pattern.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
piano_roll_humanizeC
Add subtle timing+velocity randomisation.
| Name | Required | Description | Default |
|---|---|---|---|
| timing_jitter_bars | No | ||
| velocity_jitter | No | ||
| channel | No | ||
| pattern | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description should disclose behavioral traits. It mentions 'subtle' but does not explain whether it modifies notes destructively, which notes are affected (selected or all), or if results are reversible via undo.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence, but at the expense of essential details. No structure or front-loading of key usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations or output schema, and 4 undocumented parameters, the description provides insufficient context for an agent to decide when and how to use this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description adds no parameter meaning beyond schema titles. Default values are in schema but not explained (e.g., what 0.02 bars means).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it adds randomization to timing and velocity. It distinguishes from quantization (snapping to grid), but could be more specific about scope (e.g., applies to piano roll notes).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use for humanizing quantized sequences, contrasting with 'piano_roll_quantize'. But no explicit when-to-use or when-not-to-use guidance, and no mention of alternatives like manual note editing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
piano_roll_quantizeC
Snap existing notes to a grid.
| Name | Required | Description | Default |
|---|---|---|---|
| grid_bars | No | ||
| strength | No | ||
| channel | No | ||
| pattern | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavioral traits. It states 'snap' implying modification, but doesn't clarify if it's destructive, what happens to original positions, or if it affects all notes or only selected ones.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While short, the description is too terse and fails to earn its place—it omits essential details, forcing agents to guess or rely on external knowledge. Conciseness without completeness is insufficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and 4 undocumented parameters, this single-sentence description is grossly incomplete. Agents cannot safely or effectively use this tool based solely on the definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description explains zero parameters. Agents cannot infer the meaning of grid_bars, strength, channel, or pattern from the description, leaving them blind to crucial configuration.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Snap existing notes to a grid' clearly indicates the tool quantizes notes. However, it could be more specific about the scope (e.g., piano roll notes) and the meaning of 'grid'. It distinguishes from siblings like piano_roll_humanize.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like channel_quick_quantize, nor any prerequisites (e.g., must select notes first). Agents lack context for proper invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
piano_roll_readA
Read back the current piano-roll state (returns all notes).
| Name | Required | Description | Default |
|---|---|---|---|
| channel | No | ||
| pattern | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states 'returns all notes' but does not disclose whether the operation is read-only, safe, or affects state. For a read tool, it is likely non-destructive, but this is not confirmed. The description is minimally adequate but lacks explicit behavioral traits like 'read-only' or 'non-destructive'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 10 words, perfectly concise and front-loaded. Every word is necessary; no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has two optional parameters and no output schema or annotations, the description is too brief. It does not explain what the returned 'notes' look like, how channel/pattern filter the data, or what happens if parameters are omitted. An agent would struggle to invoke this tool correctly without additional knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has two optional parameters (channel, pattern) with no descriptions, and schema coverage is 0%. The description does not explain what these parameters do or how they affect the output. 'Returns all notes' conflicts with the existence of parameters, which likely filter results. The description adds no meaning beyond the schema structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads the current piano-roll state and returns all notes. It uses a specific verb ('Read back') and identifies the resource ('piano-roll state'). Among sibling tools, this is the only read operation for piano roll notes, distinguishing it clearly from modification tools like piano_roll_add_notes or piano_roll_clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for reading piano roll notes but does not explicitly state when to use or avoid this tool versus alternatives. Among many piano_roll_* siblings, no guidance is given on when to prefer this over piano_roll_status (which might return status, not notes) or other note tools. The context is adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
piano_roll_statusA
Report whether the file-based piano-roll bridge is installed/reachable.
Use this to verify the pyscript is in place before issuing edits.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral disclosure. It conveys a read-only status check and the intent to verify installation/reachability, which implies no mutation. It does not state the return format or what happens when the bridge is unreachable, leaving a minor transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the primary behavior is front-loaded, and the second sentence adds actionable context. No wordiness or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter health check, it states what it checks and when to call it. The only missing piece is a precise return-value/status contract, but the usage context and simple scope make the definition sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty schema, so there is no parameter detail for the description to add. This is the appropriate baseline for a no-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('Report') on a specific resource ('file-based piano-roll bridge') with a clear object ('installed/reachable'). It is clearly a status tool rather than one of the piano_roll editing tools, though it does not explicitly name overlapping status siblings like fl_bridge_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit use case: verify the pyscript is in place before issuing edits. It does not mention when not to use it or compare it to alternative health-check tools, so it stops short of full alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
piano_roll_transposeC
Shift every note by N semitones.
| Name | Required | Description | Default |
|---|---|---|---|
| semitones | Yes | ||
| channel | No | ||
| pattern | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not state whether the operation modifies in place, is undoable, has side effects, or what happens with out-of-range semitone values. For a mutation tool, this lack of behavioral context is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence, 6 words) and front-loaded with the essential action. While efficient, it sacrifices necessary detail; however, for a simple operation, this level of conciseness is borderline acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, no output schema, no annotations), the description is incomplete. It lacks information on return values, error conditions, scope (e.g., active pattern or channel), and operational semantics. A more complete description would at minimum list the parameters and their effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description explains the 'semitones' parameter only. The 'channel' and 'pattern' parameters are not mentioned at all, leaving their purpose unclear. The description adds some value for the required parameter but fails to compensate for the undocumented optional parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('shift every note') and the parameter ('N semitones'), distinguishing it from siblings like add, delete, quantize, etc. The verb 'shift' combined with 'piano_roll_transpose' name makes the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like piano_roll_humanize, piano_roll_quantize, or manual note editing. An agent would not know if transpose is preferred for pitch shifts over other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playlist_add_markerC
Add a playlist marker.
| Name | Required | Description | Default |
|---|---|---|---|
| position_bars | Yes | ||
| name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden, but it only states the core action. It does not disclose side effects, prerequisites, duplicate behavior, what happens with an empty name, or any confirmation/return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is extremely terse and front-loaded, but it is under-specification rather than effective conciseness. The single sentence omits important parameter context and does not meaningfully structure the usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, this description is incomplete. It lacks information about playlist marker behavior, position units, naming, and interaction with sibling marker tools, leaving the agent to rely solely on the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description mentions neither the required 'position_bars' nor the optional 'name'. It adds no meaning beyond the schema, so the agent must infer units and semantics from the parameter title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific action and resource: 'Add a playlist marker.' This clearly distinguishes it at a high level from the many playlist_* sibling tools, though it does not explicitly differentiate it from list or delete marker tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool instead of alternatives like playlist_delete_marker, playlist_list_markers, or arrangement_jump_marker. The agent is left to infer usage context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playlist_all_tracksB
List of all playlist tracks.
| Name | Required | Description | Default |
|---|---|---|---|
| include_empty | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. The verb 'List' weakly implies a read-only operation, but the description does not explain what data is returned, whether empty tracks are included, or how the tool behaves relative to sibling list operations. This is minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler or redundant wording. It is appropriately sized for a simple list operation and front-loads the key information immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool's low complexity, the description leaves important gaps: there is no output schema and no explanation of the return shape, and the 'include_empty' parameter is undocumented. An agent may be able to infer a basic call, but completeness is lacking for robust tool selection and correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for explaining parameters. It does not mention 'include_empty' at all, leaving its meaning and effect on the returned track list unclear. The schema only provides a title and default, which is insufficient for an agent to know how the parameter changes behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation ('List') and the resource ('all playlist tracks'), so an agent can understand what the tool does at a glance. It does not explicitly distinguish this from siblings like playlist_track_info or playlist_track_count, but the 'all tracks' framing provides reasonable separation from per-track or count operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'List of all playlist tracks' implies the tool is appropriate when the full set of playlist tracks is needed, but there is no explicit comparison to siblings such as playlist_track_info, playlist_track_count, or playlist_list_clips. No exclusions or alternative routing are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playlist_delete_clipA
Delete the clip on a track starting at the given bar position.
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes | ||
| position_bars | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It discloses the deletion target clearly, but it does not state whether the deletion is undoable, what happens if no clip exists at the position, or how track indices are interpreted. For a destructive tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single action-first sentence with no filler or repetition. Every word adds meaningful information and the sentence is immediately scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter destructive tool with no annotations and no output schema, the description is minimally adequate. It gives the core operation and target, but omits edge-case behavior, indexing conventions, and success/failure semantics, so an agent may still have to infer how to call it reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds some meaning by linking `track` to the track containing the clip and `position_bars` to the bar at which the clip starts. However, it does not clarify indexing conventions, units, or whether fractional bar positions are valid, so compensation is only partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact operation ('Delete'), the object ('clip'), and the location criteria ('on a track starting at the given bar position'). This is specific enough to separate it from playlist_delete_marker and other playlist_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the verb and object: an agent should call this when it needs to delete a clip at a known track and bar position. However, there is no explicit guidance about alternatives, prerequisites, or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playlist_delete_markerB
Remove a playlist marker by index.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only states the bare operation 'Remove'. It does not explain what happens for an invalid index, whether markers are reindexed, whether the operation is undoable, or what the response looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the core operation and the identifying input.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with no annotations and no output schema, the description is under-specified. An agent cannot tell whether the index is zero-based, whether it should list markers first, or what error behavior to expect, making the description incomplete for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and while 'index' is clearly the marker position, the description adds no detail about zero-based vs one-based indexing, valid range, or how to obtain the index. It essentially restates the parameter name without adding meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Remove'), a clear resource ('playlist marker'), and the selection method ('by index'). This distinguishes it from sibling tools like playlist_add_marker and playlist_list_markers without needing to open the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given about when to use this tool versus alternatives, and no prerequisite is mentioned, such as obtaining the index from playlist_list_markers. The usage is only implied by the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playlist_list_clipsA
List all clips in the playlist (optionally filter to one track).
| Name | Required | Description | Default |
|---|---|---|---|
| track | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden. 'List' implies read-only and the track-filtering behavior is stated, but the description does not specify return structure, ordering, or behavior when no clips exist. This is a simple list operation with no destructive side effects, so the omission is moderate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. The core behavior comes first, and the optional filter is parenthesized as a secondary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple—one optional parameter and no output schema—and the description covers its purpose and the parameter's effect. It could be slightly stronger with a hint of what information is returned per clip, but nothing required to invoke it is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain the track parameter. It does so by stating that it optionally filters to one track, adding meaning beyond the bare integer/null schema. It leaves the exact track-identifier convention unstated but usable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the operation ('List'), the resource ('clips in the playlist'), and the optional track filter. It is immediately distinct from sibling tools like playlist_list_markers and playlist_delete_clip.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The main use case—retrieve clips, optionally scoped to a track—is clearly stated. It does not explicitly compare itself to alternatives, but there is no close sibling for listing clips, and the optional-filter phrasing tells when the track parameter should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playlist_list_markersA
Return all timeline markers: [{pos_bars, name, mode}].
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It does indicate a read-only operation and specifies the return format, but it does not disclose ordering, possible values of 'mode', or whether any filtering or side effects apply. Adequate for a simple getter, but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the operation, resource, and return format. Every word earns its place, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description covers the essential context: the action, the resource, and the expected return shape. It could be slightly richer by explaining the 'mode' field, but it is otherwise complete for a zero-argument list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is an empty object, so there is nothing for the description to compensate for. The baseline for 0-parameter tools is 4, and the description adds no unnecessary parameter-related noise.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Return') and resource ('all timeline markers'), and includes the exact return shape. This clearly distinguishes it from sibling tools like playlist_add_marker and playlist_delete_marker, which mutate markers rather than list them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as playlist_add_marker, playlist_delete_marker, or playlist_list_clips. The intended use is only implied by the resource being returned, with no explicit exclusions or routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playlist_mute_trackC
Mute/unmute a playlist track.
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes | ||
| muted | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only restates the core action. It does not explain the effect of the 'muted' parameter's null default, whether this is a toggle, what side effects occur, or what the tool returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler or repetition. Every word contributes to identifying the action and target resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has two parameters, no annotations, and no output schema, so the description must do more heavy lifting than it does. It leaves the muted parameter semantics, track indexing, and return behavior entirely unspecified, making it incomplete for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not compensate. It clarifies that 'track' refers to a playlist track, but it does not explain that the integer is an index, nor does it define the meaning of muted=true/false/null.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb pair ('Mute/unmute') and names the resource ('a playlist track'), which clearly conveys the operation. It distinguishes itself from channel_mute and mixer_mute by the 'playlist' scope, though it does not explicitly contrast with playlist_solo_track.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as playlist_solo_track, channel_mute, or mixer_mute. There are no exclusions, prerequisites, or contextual cues beyond the implied action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playlist_place_patternB
Place a pattern clip on a playlist track at a given bar position.
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes | ||
| pattern | Yes | ||
| position_bars | Yes | ||
| length_bars | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It states the mutation ('Place') but does not disclose side effects such as overwriting existing clips, snapping behavior, track/pattern indexing, or what happens when length_bars is null. This is a meaningful gap for a modifying playlist operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. The action, target, and key positional qualifier are all front-loaded, making it easy to parse at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and 0% schema description coverage, this description is too sparse. It omits behavior around the optional length_bars parameter and any side effects, leaving an agent without enough detail to anticipate the tool's full effect on the playlist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for the schema's bare parameter names. The prose explains track, pattern, and position_bars in plain language, but it does not mention length_bars at all, leaving that optional parameter semantically undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Place'), a specific resource ('pattern clip on a playlist track'), and a positional qualifier ('at a given bar position'). It clearly distinguishes this tool from playlist inspection tools like playlist_list_clips and playlist_delete_clip.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites. There are no sibling tools that perform the same action, so the usage context is only implied by the verb 'Place' rather than explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playlist_refreshA
Force playlist repaint (use after bulk edits).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It clearly states the behavior — forcing a playlist repaint — and frames it as a follow-up to bulk edits. This is adequate for a zero-parameter UI-refresh command, though it does not describe return behavior or error cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short fragments with no wasted words. The core action, 'Force playlist repaint,' is front-loaded, followed by the single most relevant usage note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output refresh command, the description fully covers purpose and timing. Nothing about the tool's invocation is left ambiguous, and no additional return-value or parameter detail is required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema confirms an empty properties object, so the baseline is 4. The description adds the situational context of 'after bulk edits,' which is useful but parameter documentation is not needed here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('repaint') and resource ('playlist'), and immediately states the intended use case. This distinguishes it from the sibling playlist editing tools like playlist_place_pattern and playlist_delete_clip, which perform data-changing operations rather than a UI refresh.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says when to use the tool: after bulk edits. There are no sibling refresh tools, so an alternative or when-not-to-use note is less necessary, but the guidance lacks an explicit exclusion or clarification about when a refresh is unnecessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playlist_set_track_colorB
Set playlist track color ('#RRGGBB').
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes | ||
| color | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description alone must carry behavioral disclosure. It states only that a color is set; it does not mention return values, errors, validation of the color string, or whether existing colors are overwritten.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler; the hex format detail is directly actionable and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple two-argument setter, and the basic action is clear, but the missing track-parameter semantics and absence of annotations or output schema leave small but real gaps in what an agent needs to call it reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needed to explain both parameters. It provides the '#RRGGBB' format for color, but leaves track as an unexplained integer with no indexing, range, or identifier semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Set playlist track color') and specifies the expected color literal format. The 'playlist' qualifier distinguishes it from sibling setters like channel_set_color, pattern_set_color, and mixer_set_color.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when this tool should be used, how to obtain a valid track identifier, or how it differs from playlist_set_track_name and other track-level setters. Usage context is only implied by the sibling tool list and the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playlist_set_track_nameC
Rename a playlist track.
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes | ||
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It indicates a mutation ('Rename') but provides no details about side effects, naming constraints, what 'track' refers to concretely, or failure/error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words and the action is front-loaded. It is appropriately concise for a simple operation, though it sacrifices necessary detail for brevity in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 0% schema description coverage, this description is not complete enough for an agent to confidently call the tool. It lacks parameter semantics, target identification, and behavioral expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for missing parameter guidance. It only implies that 'track' is the target and 'name' is the new name, but it does not explain how to identify a playlist track, whether the index is zero-based, or any naming rules. This is minimally useful but insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Rename') and a specific resource ('a playlist track'), so an agent understands the core action. It is implicitly distinguished from sibling operations like playlist_set_track_color, playlist_mute_track, and channel_set_name because of the 'playlist track' phrasing, though it does not explicitly differentiate itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as channel_set_name or mixer_set_name, nor any preconditions or constraints. The description only states what the tool does, not when it should be selected over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playlist_solo_trackC
Solo a playlist track.
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes | ||
| solo | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not explain what happens when 'solo' is true, false, or null, whether soloing a track unsolos others, or whether the operation is a toggle. This leaves the agent guessing about side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise but under-specified. A single sentence that essentially restates the tool name provides no additional useful structure or detail, so it fails the requirement that every sentence earn its place with substantive information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a mutating tool with no annotations, no output schema, and completely undocumented parameters. The description omits the core semantics required to invoke it safely and correctly, such as how the solo parameter behaves and what 'track' refers to.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for undocumented parameters. It does not explain that 'track' is likely an index, what the 'solo' boolean/null value does, or what the default null behavior is. The agent cannot correctly populate the parameters from this definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Solo a playlist track' states a clear verb and resource, and the 'playlist' qualifier differentiates it from sibling tools like channel_solo and mixer_solo. However, it is very close to a restatement of the tool name and does not clarify whether the tool sets, toggles, or clears the solo state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when this tool should be used over alternatives such as channel_solo, mixer_solo, or playlist_mute_track. The description provides no context, prerequisites, or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playlist_track_countC
Playlist track count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no additional description, the tool's behavior is entirely undisclosed. It does not state the return format, scoping (e.g., current playlist or all playlists), or edge cases such as empty playlists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three words is under-specification rather than useful conciseness. While a trivial getter can be short, this phrase lacks any structuring, such as a sentence clarifying what is counted or returned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the description should at least explain the return value and scope. "Playlist track count" skips over whether this applies to the active playlist, whether it counts tracks or clips, and how results are represented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so per the rubric the baseline is 4. There is no parameter documentation burden, and the description adds no parameter meaning because none exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description "Playlist track count" is a near-verbatim restatement of the tool name, with no verb or agent-oriented framing. It does not clarify whether this returns the number of tracks in the playlist, the total number of clips, or something else.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus related siblings like playlist_track_info, playlist_all_tracks, or playlist_list_clips. The absence of any comparative or contextual direction leaves selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playlist_track_infoB
Info on a playlist track: name, color, mute, solo, height, group.
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. 'Info on' implies a non-mutating read operation and the field list tells the agent what data to expect. However, it does not explicitly confirm the absence of side effects, error behavior, or what happens for an invalid track index.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with a clear front-loaded subject and a compact, useful field list. Every word contributes, with no redundant or vague filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter, the description is mostly adequate and even lists the returned fields despite having no output schema. It still leaves gaps around the precise meaning of the 'track' parameter, the return value structure, and error handling, so it is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only an integer property named 'track' with 0% description coverage. The description adds the context that this refers to a playlist track, which is meaningful, but it does not clarify whether the value is an index, an ID, zero- or one-based, or what range is valid.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource ('a playlist track') and the specific fields returned ('name, color, mute, solo, height, group'), which makes the tool's purpose understandable. It is clearly distinguished from the many sibling setters like playlist_set_track_name and playlist_mute_track, though it uses the noun phrase 'Info on' rather than an explicit verb like 'Gets'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as playlist_all_tracks or playlist_list_clips. It does not state exclusions, prerequisites, or a preferred scenario, so the agent must infer usage from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plugin_find_paramC
Find a parameter by substring (case-insensitive).
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| name_contains | Yes | ||
| slot | No | ||
| location | No | channel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It reveals only case-insensitive substring matching. It does not disclose whether matches are returned as a list or a single item, what happens if no match is found, whether the operation is read-only, or any error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is efficient, though it sacrifices potentially important detail that could have been added without much bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and zero parameter documentation, the description is not complete enough for reliable invocation. The agent cannot determine what 'index' refers to, how slot/location affect the search, or what a successful (or failed) result looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for the four undocumented parameters. The word 'substring' maps weakly to name_contains, but the required index parameter and the slot/location context are not explained at all, leaving the agent without enough semantic grounding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('find'), a clear resource ('parameter'), and the matching method ('by substring, case-insensitive'). This clearly differentiates it from sibling tools like plugin_params and plugin_get_param, which list or directly access parameters rather than searching by substring.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as plugin_params or plugin_get_param. The description implies a use case but provides no explicit context, exclusions, or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plugin_get_paramC
Get value of a single parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| param | Yes | ||
| slot | No | ||
| location | No | channel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'get' and does not state whether the operation is strictly read-only, what value representation is returned, or how invalid plugin/parameter indices behave. It is not misleading, but it leaves the actual behavior under-specified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler: 'Get value of a single parameter.' It is appropriately concise for a simple getter, though the brevity comes at the cost of substantive detail that is penalized in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four parameters, no output schema, and no annotations, this description is far too thin. An agent would need to guess the meaning of slot, index, and location, as well as the return type and error behavior, to call it reliably. This is inadequate for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 4 parameters with 0% description coverage, and the description adds little semantic meaning. 'Single parameter' loosely maps to the param argument, but index, slot, location, and the default slot=-1 are not explained. The description does not compensate for the schema's lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and resource ('value of a single parameter'), and the word 'single' hints at a contrast with the sibling plugin_params (plural/list). However, it never explicitly names the plugin context or differentiates from plugin_set_param, so differentiation is mostly implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool instead of plugin_params, plugin_set_param, or plugin_find_param. An agent gets no hints about prerequisites, validation via plugin_is_valid, or which location/slot combination is appropriate. This is effectively no usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plugin_is_validB
Check if a plugin slot has a valid plugin loaded.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| slot | No | ||
| location | No | channel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It implies a read-only check, but does not disclose return type, how invalid slot indices are handled, or what 'valid' means across channel vs mixer locations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. However, it is too terse to compensate for the missing parameter details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With three parameters, an enum, and no output schema or annotations, a one-sentence description is insufficient. The agent lacks guidance on the distinction between slot and index, defaults, or expected return behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needed to explain the semantics of index, slot, and location; it does not. The description says 'plugin slot' while the required parameter is 'index', which may confuse an agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Check'), a resource ('plugin slot'), and the success criterion ('has a valid plugin loaded'). It is clearly distinguishable from sibling plugin tools like plugin_name or plugin_get_param, as it is a validity predicate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as plugin_name or plugin_params, nor when a slot would be considered invalid. The agent must infer that this is a guard before plugin operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plugin_list_mixer_trackA
List all loaded plugins in every FX slot of a mixer track.
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. 'List' implies a read-only operation and 'loaded plugins' clarifies that empty or unloaded slots are not included, but the description does not disclose output format, ordering, or behavior for invalid track numbers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, compact sentence with no filler. The action is front-loaded and every word contributes to the meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-argument listing tool, the description captures the core action and target. However, without annotations or an output schema, it leaves important details unspecified, such as whether returns include slot numbers or plugin names, and how the track index is zero- or one-based.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one required integer 'track' with no field description, and the description only says 'a mixer track' without explaining indexing, bounds, or the meaning of the value. With 0% schema description coverage, the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and a precise resource ('all loaded plugins in every FX slot of a mixer track'), clearly distinguishing it from related siblings like mixer_fx_slots or plugin_name. The scope is explicit and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: call this when you need to see what plugins are loaded across a mixer track's FX slots. However, there is no explicit guidance about when to prefer this over related tools such as mixer_fx_slots or plugin_is_valid, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plugin_nameD
Plugin display name.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| slot | No | ||
| location | No | channel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only weakly implies a read operation by mentioning 'display name,' but it does not state side effects, return behavior, error conditions, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, but this is under-specification rather than conciseness. A single fragment with no verb does not earn the space it occupies.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A 3-parameter tool with no output schema, no annotations, and no parameter documentation is completely underspecified by a description that only says 'Plugin display name.' An agent has no way to know how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation of slot, index, or location. The description does not compensate at all for the undocumented parameters, leaving their meaning and interplay entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description, 'Plugin display name,' is essentially a noun phrase that restates the tool name (plugin_name) without a verb or any explicit action like 'get' or 'return.' It provides minimal resource indication but does not distinguish among the numerous plugin_* sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as plugin_is_valid, plugin_params, or plugin_list_mixer_track. There is no mention of prerequisites, common use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plugin_next_presetC
Advance to the next preset.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| slot | No | ||
| location | No | channel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only says 'advance', implying a state change but not disclosing effects, edge cases such as wrapping at the last preset, or failure behavior. The description carries the full burden here and does not satisfy it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler, and the verb is front-loaded. It is appropriately brief, though the brevity contributes to the lack of context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three parameters, no annotations, and no output schema, this description is far from complete. It does not explain target selection, parameter usage, or relationship to sibling preset tools, so an agent cannot reliably construct a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to the parameters slot, index, or location. An agent cannot tell why index is required, what slot=-1 means, or how location changes the behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
'Advance to the next preset' clearly states the action and resource, and the direction distinguishes it from sibling plugin_prev_preset. However, it does not specify which plugin or preset context is being advanced (channel vs mixer, slot vs index), leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool instead of plugin_prev_preset, plugin_set_preset, or plugin_find_param. There is no context for typical workflows or prerequisites, so an agent must infer usage purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plugin_param_countC
Return number of automatable parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| slot | No | ||
| location | No | channel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the behavioral burden. It does disclose the essential read-only nature ('Return number') and the output category (a count), but it doesn't explain edge cases like invalid plugin indices, whether the count includes hidden parameters, or what happens when no plugin is found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or repetition. It is concise and easy to parse, though very sparse; the brevity is acceptable for the core purpose but leaves out useful context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With three parameters, no output schema, and no annotations, the description is far from complete for an agent to call the tool correctly. It does not explain what 'index' refers to, what 'slot' means, what 'location' channel/mixer selects, or what the numeric return value represents in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no information about the three parameters: index, slot, and location. Since the schema properties have only titles and types, and the description doesn't compensate, an agent has no semantic guidance for supplying valid inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Return') and resource ('number of automatable parameters'), so an agent knows the tool produces a count. It doesn't explicitly distinguish itself from siblings like plugin_params or plugin_find_param, but the phrase 'automatable parameters' narrows the purpose sufficiently.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as plugin_params, plugin_get_param, or plugin_find_param. No prerequisites, exclusions, or selection criteria are mentioned, leaving the agent to infer the only relevant use case from the one-line description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plugin_paramsC
List parameters (paginated): [{idx, name, value, value_string}].
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| slot | No | ||
| location | No | channel | |
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description carries the full burden. It discloses that results are paginated and shows the item format, but it does not explain behavior for invalid plugin indices, empty result sets, or how slot/location affect the listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that front-loads the operation and return shape. It is not verbose, though the brevity comes at the cost of necessary semantic detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given five parameters, including a required index and a location enum, the description is too sparse. It does not explain how to target a particular plugin or how pagination parameters interact, and there is no output schema to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description adds no parameter meaning. It never explains index, slot, location, limit, or offset, leaving the agent to guess the role of each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation ('List parameters') and the output item shape. However, it does not explicitly say that the parameters belong to the plugin selected via index/slot/location; that has to be inferred from the tool name and sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives like plugin_get_param or plugin_find_param. The description only states what it does, not when it should be preferred or avoided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plugin_preset_countC
Number of built-in presets for plugin.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| slot | No | ||
| location | No | channel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It adds a useful 'built-in' scoping detail, but it does not state what happens for an invalid plugin index, how slot/location select the plugin, or the exact return type.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short with no filler and front-loads the core result. It could add more parameter and usage context in the same space, but there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and three undocumented parameters, the description is not complete enough for an agent to call it confidently. Missing context includes parameter semantics, return format, and behavior on invalid input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain any of the three parameters. It never clarifies that index identifies the plugin, what slot and location mean, or why slot defaults to -1, leaving the required parameters effectively undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource ('plugin') and the returned quantity ('number of built-in presets'), which is distinct from sibling operations like plugin_next_preset or plugin_set_preset. It lacks an explicit imperative verb, but the noun-phrase phrasing still conveys a clear read-only count operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus related plugin tools, nor any mention of valid plugin contexts or alternatives. An agent has to infer usage solely from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plugin_prev_presetC
Go back to the previous preset.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| slot | No | ||
| location | No | channel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only restates the effect: it moves to the previous preset. It does not disclose whether navigation wraps around, what happens when there is no previous preset, whether the operation is reversible, or that it mutates the currently targeted plugin. The agent cannot predict side effects or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The sentence is free of filler, but it is under-specified rather than usefully concise: a single clause for a three-parameter tool that already lacks parameter documentation. There is no structure to surface the important required parameter or the location context. Brevity here comes at the cost of clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
At 0% schema coverage, with no annotations and no output schema, the description is the only documentation; it does not explain what 'previous preset' means relative to the index, slot, and location parameters, nor what the tool expects. The tool cannot be invoked correctly from the provided information. This is a severe completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has three parameters (slot, index, location) with zero schema descriptions, and the description mentions none of them. The required 'index' could be a preset index, a slot index, or something else; 'slot' and 'location' are similarly unexplained. Since coverage is 0%, the description needed to compensate but adds no parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the action ('Go back') and resource ('previous preset'), so an agent can tell it is a navigation action rather than a creation or query. However, it never says 'plugin', so the target domain is left to the tool name, and it does not contrast with sibling preset tools such as plugin_next_preset or plugin_set_preset beyond the word 'previous'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to call this tool instead of plugin_next_preset, plugin_set_preset, or plugin_preset_count. The description also omits prerequisites, such as needing a plugin selected, and does not frame this as one direction in a navigation pair. This is essentially a no-guidance description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plugin_set_paramC
Set a single parameter (0.0..1.0 normalised).
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| param | Yes | ||
| value | Yes | ||
| slot | No | ||
| location | No | channel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the behavioral disclosure burden. It reveals a write operation and the normalized value range, but it omits clamping/rounding behavior, side effects, undo semantics, validity requirements, and return value. For a mutating tool this is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with no filler; the essential constraint ('0.0..1.0 normalised') is front-loaded. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter mutating tool with no output schema and no annotations, a single sentence is inadequate. Required parameters are underdocumented, and there is no guidance on plugin context, indexing semantics, location/slot behavior, or what happens after the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for 5 parameters, and the description only adds meaning to the value parameter via '0.0..1.0 normalised'. It does not explain what index/param identify, what slot does, or when location should be 'channel' versus 'mixer'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Set') and resource ('a single parameter'), with the normalized range spelled out. It is clear and distinguishable from sibling plugin tools like plugin_get_param or plugin_set_preset, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it should be used when the agent wants to change one plugin parameter, but it never states when to use it versus other plugin_* tools, nor does it mention prerequisites such as having a plugin focused/selected. No exclusions or alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plugin_set_presetC
Load preset by numeric index.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| preset | Yes | ||
| slot | No | ||
| location | No | channel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only says 'load preset by numeric index.' It does not mention that loading changes the current plugin state, what happens with invalid or out-of-range presets, or how slot/location affect behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, with no wasted words. It is arguably too sparse, but as a one-sentence definition it is efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with no annotations, no output schema, four parameters, and many plugin-related siblings, a single sentence is inadequate. The agent is left without parameter semantics, usage prerequisites, range behavior, or success/failure signals.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% with four parameters, and the description adds almost no parameter meaning. 'Numeric index' vaguely maps to the preset parameter, but the required 'index' property and optional slot/location properties remain completely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('load') and resource ('preset') and indicates a direct numeric index mechanism, which roughly distinguishes it from sibling preset-stepping tools like plugin_next_preset and plugin_prev_preset. However, it does not explicitly disambiguate from siblings or clarify whether the numeric index is the 'preset' or 'index' property.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool instead of plugin_preset_count, plugin_next_preset, plugin_prev_preset, or other plugin-related tools. No prerequisites or validation steps are mentioned, so an agent must infer usage entirely from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plugin_show_editorC
Show/hide the plugin editor window (None = toggle).
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| slot | No | ||
| location | No | channel | |
| show | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It reveals only the toggle behavior for None and the show/hide effect, but does not mention side effects, what happens when the target plugin is invalid, whether the window becomes focused, or what the function returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler, and the action is front-loaded. However, it sacrifices important parameter context for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description is too sparse to support correct invocation. It does not explain how `index`, `slot`, and `location` combine to identify which plugin editor window should be shown or hidden, which is essential given the four-parameter schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only clarifies the `show` parameter's None case. The required `index`, plus `slot` and `location`, are entirely unexplained, leaving the agent without enough meaning to select targets correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Show/hide') and the resource ('plugin editor window'), and adds the useful behavioral detail that None toggles. It does not explicitly distinguish this from related window-control siblings like ui_show_window or ui_hide_window, but the plugin-editor scope is reasonably specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to choose this tool over alternatives, whether the plugin must already be valid/loaded, or how it relates to ui_show_window/ui_hide_window. The description implies the basic use case but offers no exclusions, prerequisites, or sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_metadataB
Project snapshot: tempo, signature, tracks, channels, patterns, selected, title, path.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior, but it only lists returned field names. It does not state that the call is read-only, what the return structure looks like, or whether any side effects or errors are possible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact, front-loaded sentence that uses every word to convey the field list. No filler or repetition exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The field list gives the agent a reasonable idea of return content, and the lack of parameters makes invocation trivial. However, there is no output schema, so ambiguous names like 'selected' and the overall return shape/types are left unexplained, and there is no guidance on how this snapshot relates to other project inspection tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the baseline for this dimension is 4. The description reinforces what the agent can expect from the call by enumerating the snapshot fields, which is the only semantic content needed for a parameterless invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a singular resource—a project snapshot—and enumerates the fields it contains (tempo, signature, tracks, channels, patterns, selected, title, path), making the tool's purpose clear despite lacking an explicit verb like 'get' or 'read'. It does not name or contrast sibling tools such as project_version or project_dump_score_log, so differentiation rests on the field list alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement about when to use this tool instead of the many sibling project_* and read-only inspection tools. No alternatives, exclusions, or triggering context are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_newB
Start a new project (optionally from a template path).
| Name | Required | Description | Default |
|---|---|---|---|
| template | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for behavioral disclosure. It does not state that starting a new project may discard unsaved changes or replace the current project, nor does it mention any confirmation or side effects. For a state-changing operation, this is a notable omission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with the core action front-loaded and the optional parameter in a parenthetical. There is no filler, redundancy, or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one optional parameter, but it has no annotations and no output schema, so the description must supply behavioral context. It explains the action but not the impact on the current project or what a successful call yields, leaving an agent under-informed for a potentially destructive operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter ('template') with 0% description coverage. The description compensates partially by identifying it as a template path and noting it is optional, but it does not clarify accepted path formats, where templates reside, or what happens when the parameter is omitted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Start') and resource ('a new project'), clearly distinguishing it from sibling tools like project_open and project_save. The parenthetical about an optional template path adds precision without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is only implied by the word 'new' and the verb 'start'. There is no explicit guidance on when to use this versus alternatives like project_open or project_save, and no mention of when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_openC
Open an existing .flp project.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether opening a project is destructive, whether it prompts to save the current project, or what happens on an invalid or nonexistent path.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence with no wasted words. The core action is front-loaded, but the brevity comes at the cost of skipping useful behavioral and usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a state-changing operation with no annotations, no output schema, and only one parameter, the description is too thin. It omits the effect on the current session, failure behavior, and any return value, leaving an agent with insufficient context to invoke it safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, 'path', has no schema description and the schema coverage is 0%. The description implies the path should point to an existing .flp file, but it doesn't specify path format, absolute/relative requirements, or error handling for bad paths.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('open') and resource ('existing .flp project'), which distinguishes it from sibling project operations like project_new, project_save, and project_save_as. It doesn't explicitly name alternatives, but the action is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus project_new, project_save, or project_save_as. There are no prerequisites mentioned, such as whether the current project is automatically closed or if the user is prompted to save changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_redoB
Redo last undone action.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the core action but does not mention behavior when no undone action exists, whether redo fails silently, how it interacts with the undo history stack, or whether new actions clear the redo stack.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. It is immediately readable and front-loads the verb and object.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter command, the one-liner is close to adequate, but with no output schema and no annotations, it omits edge-case behavior and any return/confirmation semantics. The tool is simple enough that this is a minor gap rather than a fatal one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the parameter semantics baseline is 4. There is nothing for the description to add beyond what the input schema already shows.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Redo last undone action.' It distinguishes itself from the sibling project_undo by expressing the inverse operation, so an agent can infer the basic intent. However, 'action' remains generic and the description does not explicitly name the undo counterpart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to call this tool versus project_undo, project_undo_history, or project_save_undo. It also omits preconditions such as requiring a prior undo, or what happens if there is nothing to redo. Usage context is only very weakly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_renderA
Trigger render to disk (uses FL's render dialog automation; blocks until complete).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| format | No | wav | |
| mode | No | song |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses two valuable behavioral traits: it uses FL's render dialog automation and blocks until completion. However, with no annotations, it is silent on side effects like overwriting existing files, error/failure behavior, and whether the call requires UI focus or can run headless—gaps for a write-producing operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the action, then adds essential behavioral context in a parenthetical. Every word contributes value with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 3 parameters, 1 required, no annotations, and no output schema, the description is too thin: it doesn't explain return values, error behavior, parameter semantics, or output-side effects. It covers the blocking nature but leaves an agent guessing about path format and how to interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description needed to clarify that 'path' is the output file path and explain the mode/format interplay. It says nothing about any parameter. The enums are self-explanatory, but the required 'path' remains ambiguous (output file vs. project file vs. directory), and the description does not compensate for the schema's silence.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Trigger render') and resource ('disk'), which is distinct from project save/load siblings. The parenthetical about FL's render dialog automation further clarifies the mechanism. No ambiguity about what operation this invokes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly positions this tool as the one to use when rendering/exporting to disk, distinguishing it from save or playback tools. It does not explicitly state when not to use it or list prerequisites, but the context is clear enough for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_saveB
Save the project.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Save the project' implies a write operation, but it does not state whether the current file is overwritten, whether unsaved changes are persisted, or what happens if no project file is currently open.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single three-word sentence with no filler, making it extremely scannable and front-loaded. It is concise in form, though the brevity also limits the behavioral context it provides.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (no parameters, no output schema, no annotations), naming the action may be minimally adequate. Still, the description omits crucial contextual details such as whether the save overwrites the existing file, requires a previously opened project, or produces any confirmation or error response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there is no parameter detail the description must compensate for. The baseline of 4 applies because no parameter semantics are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('save') and the target resource ('the project'). However, it does not distinguish this from sibling tools like project_save_as or project_save_undo, so the agent must infer the exact scope from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to use this tool versus alternatives such as project_save_as, project_save_undo, or project_new. The agent is given no context about when this command is appropriate or what distinguishes it from related project commands.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_save_asB
Save the project to a new path.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only says 'save to a new path.' It does not state whether an existing file at the destination is overwritten, whether the current project path changes after the save, what file extension or path format is expected, or whether any other side effects occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is one short, front-loaded sentence with no filler. Every word communicates essential information: the action, the target, and the distinguishing detail ('new path').
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter save operation, the description is minimally viable for an agent to attempt a call. However, because there are no annotations and no output schema, the absence of overwrite semantics, path format expectations, and post-save behavior leaves meaningful gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter, path, and the schema provides only a title with no description. The description adds only the minimal meaning that the path is the new save destination, but it does not clarify accepted formats, absolute vs relative paths, file extension handling, or behavior when the path already exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Save the project to a new path.' This clearly distinguishes it from sibling project_save, which implies saving to the current path, and from project_new and project_open. The meaning is immediately understandable and not a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'to a new path' implies this tool is for saving the project under a different location rather than using project_save. However, it never explicitly names the alternative project_save or states when not to use this tool, so the usage guidance remains only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_save_undoA
Push a named entry onto the undo stack before a batch edit.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| flags | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the disclosure burden and does state that the tool mutates the undo stack by adding a named entry. However, it does not describe side effects on existing undo history, the meaning or behavior of the flags parameter, or what happens if no batch edit follows.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence states the operation and its timing with no filler. It is compact and scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, and the core required parameter is inferable from the description, but the absence of annotations and an output schema leaves important context uncovered: what the flags parameter controls, and what a successful push returns or changes in the undo universe. The description is adequate for a minimal call but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents two parameters but provides 0% prose coverage and no descriptions; the phrase 'named entry' maps to the required name parameter but says nothing about flags. Even by implication, flags' integer/bitmask behavior is left entirely undefined, which the description fails to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Push') and resource ('named entry onto the undo stack'), and the phrase 'before a batch edit' positions it as a pre-mutation checkpoint. This clearly distinguishes it from sibling utilities like project_undo, project_redo, and project_undo_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the intended call time — before a batch edit — giving an agent a clear precondition for use. It does not explicitly name alternatives or state when not to use it, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_undoB
Undo last action.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden of disclosing behavior. It only states the action and does not explain what happens when there is nothing to undo, whether the undone action is irretrievable, or which types of actions are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three words long and immediately understandable. Every word earns its place; there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter command this is minimally adequate, but it leaves out edge-case behavior such as handling an empty undo stack and how it relates to undo history or redo. Given the sibling tools available, a sentence about scope would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema has 100% coverage with no properties, so there are no parameter semantics for the description to clarify. The baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and object: 'Undo last action.' It distinguishes this from project_redo but does not explicitly mention that it operates at the project level or how it relates to project_undo_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus project_redo or project_undo_history. No exclusions, prerequisites, or alternative conditions are provided, so the agent must infer when this is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_undo_historyC
Return undo history stack.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Return' implies a read operation, but the description does not disclose whether inspecting the stack has side effects, how the stack is ordered (oldest-first vs newest-first), whether it is cleared by undo calls, or what the response structure looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single four-word sentence with no wasted words, making it structurally efficient and front-loaded. It is under-specified, but as a conciseness measure this is near-ideal; the issue is missing content, not verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool's simplicity (no params), there is no output schema and the description never explains the shape or semantics of the returned undo history stack. An agent cannot predict whether it will receive a count, a list of action names, timestamps, or something else, which is a material gap for a read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the baseline of 4 applies; there are no parameter semantics the description needs to clarify. The 100% schema coverage is trivially satisfied since the tool takes no arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description supplies a verb ('Return') and a resource ('undo history stack'), so the core action is understandable. However, it essentially restates the tool name and is vague about what the stack actually contains (commands? entries? metadata?), and it does not explicitly distinguish itself from sibling action tools like project_undo, project_redo, and project_save_undo.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this tool versus the closely related undo/redo siblings. An agent gets no indication that this is the inspection tool to invoke before deciding whether to call project_undo, and no exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_versionA
Return FL Studio version string.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. 'Return' implies a read-only operation, but the description does not disclose prerequisites, failure modes, or exact version format. For a trivial getter this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero filler. It states the action and the result efficiently, which is appropriate for a zero-parameter getter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, side-effect-free getter, the description is nearly complete: it identifies the return value as an FL Studio version string. It leaves minor details unspecified, such as whether FL Studio must be running, but nothing essential is missing for this tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero properties and 100% schema description coverage, so the baseline is 4. There are no parameters to explain, and the description correctly adds nothing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Return FL Studio version string.' It clearly differentiates this tool from sibling project_* and fl_* tools by specifying exactly what is returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus siblings like fl_ping, fl_bridge_info, or project_metadata. There are no alternatives, exclusions, or contextual conditions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
song_to_dnb_flipA
One-shot: take any audio file and turn it into a DnB flip in the FL piano roll.
Pipeline:
Analyze the file (tempo, key, melody/notes).
Emit a DnB drum groove at
target_bpm,dnb_barsbars long.(optional) Add the extracted melody, quantized to the detected key, on top.
polyphonic=Truecaptures chords (Basic Pitch; needs thepolyphonicextra) instead of a single line.(optional) Drop in a sub-bass on the detected root.
Note: everything is written into the currently-open piano roll (single channel). For a proper mix, duplicate the channel in FL and route by MIDI range (drums 36-51, bass < 40, melody > 55).
| Name | Required | Description | Default |
|---|---|---|---|
| audio_path | Yes | ||
| target_bpm | No | ||
| dnb_style | No | amen | |
| dnb_bars | No | ||
| include_melody | No | ||
| include_bass | No | ||
| polyphonic | No | ||
| clear_first | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It explains the analysis steps, drum generation, optional melody/bass addition, and that everything goes into the current piano roll. However, it does not mention the side effect of clearing the channel (clear_first parameter) or potential overwrites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise and well-structured, with purpose stated first followed by a numbered pipeline. Every sentence adds value, though some minor trimming could be done without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (8 params, no output schema, no annotations), the description provides a fairly complete picture of the tool's behavior and output. It explains the pipeline and limitations (single channel, routing needed). Minor gaps exist for parameters like clear_first and dnb_style.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description adds meaning for about 5 of 8 parameters (target_bpm, dnb_bars, include_melody, polyphonic, include_bass). It explains polyphonic captures chords and melody quantization. Missing parameters like audio_path and dnb_style are not explained, but the description compensates reasonably.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'take any audio file and turn it into a DnB flip in the FL piano roll'. It uses a specific verb and resource, and the pipeline distinguishes it from sibling tools that handle analysis or generation separately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear pipeline and a note about routing for proper mixing, but does not explicitly state when to use or not use this tool compared to alternatives. The context is clear, but exclusions are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transport_jogA
Nudge playhead by steps 16th-notes (negative = backward).
| Name | Required | Description | Default |
|---|---|---|---|
| steps | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It discloses the operation type (relative move), the unit, and the sign convention for direction. It does not mention boundary behavior or effects on playback state, but for a simple nudge command the core behavior is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler. It front-loads the action ('Nudge playhead') and then packs the essential unit and direction details into the remainder.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter transport tool with no output schema, the description is nearly complete. It provides the action, unit, and direction; the only minor gap is unspecified behavior at song boundaries or during playback, which is unlikely to be essential for invoking this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only provides an integer titled 'Steps' with no description (0% coverage). The description fully compensates by explaining that 'steps' are measured in 16th-notes and that negative values move backward, giving the agent complete parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Nudge'), a clear resource ('playhead'), a precise unit ('16th-notes'), and the direction semantics ('negative = backward'). This clearly distinguishes it from siblings like transport_set_position, which implies absolute positioning, and transport_play/stop.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The verb 'nudge' and the relative unit '16th-notes' make the usage context clear: use this for relative playhead adjustments rather than absolute seeks. It does not explicitly name alternatives or exclusions, which would make it a 5, but the relative-vs-absolute distinction is strongly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transport_playA
Start or toggle playback (FL Studio's Play button).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It does disclose the key toggle behavior ('Start or toggle playback') and references the Play button, which helps. But it does not mention side effects, whether playback position resets, or behavior during recording.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, compact sentence that states the action, includes the toggle nuance, and anchors to the familiar FL Studio Play button. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless transport action, the description is essentially complete. The only minor gap is not explaining what happens when playback is already active, though 'toggle' already implies this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema confirms this with 100% coverage. There is nothing a description could add about parameter meaning; baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('Start or toggle') and a clear resource ('playback', FL Studio's Play button). It is immediately distinguishable from sibling tools like transport_stop and transport_record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for starting or toggling playback, and sibling names suggest transport_stop is the explicit stop alternative. However, there is no explicit guidance about when to use this versus transport_stop or how toggle behavior interacts with existing playback state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transport_recordA
Toggle record arm state.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Toggle' implies a state flip, but it does not disclose side effects, what 'record arm' applies to, whether recording is affected, or whether any prerequisite state is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It states the action and the target state directly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter toggle, the basic operation is conveyed. However, with no annotations or output schema, the description leaves unclear what 'record arm' applies to and what observable effect the toggle has, making it adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. There is no parameter ambiguity for the description to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('toggle') and a specific resource ('record arm state'), clearly identifying the action. It distinguishes the tool from transport_play, transport_stop, and other transport commands that are not about record arming.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives, such as mixer_arm or the automation_record_* tools. It doesn't state conditions, prerequisites, or situations where record arming would be appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transport_set_loop_modeA
Set FL Studio's song/pattern loop mode.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It accurately states that this is a state-setting operation on the loop mode, but it does not mention potential side effects, whether the mode is set absolutely or toggled, or how it affects playback. It is adequate but not richly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no unnecessary words. It front-loads the verb and the resource, and every part contributes to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For such a simple tool—one enum parameter, no output schema, no annotations—the description is nearly complete. It clearly identifies the operation and the values involved. It omits return behavior, but that is not critical for a simple setter, and the schema already enumerates valid inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides an enum with 'song' and 'pattern', but has 0% description coverage. The description mentions 'song/pattern loop mode,' which partially ties the parameter to its values, but it does not explain what song mode versus pattern mode means or the consequences of each. Some compensation for the schema gap, but not full.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Set FL Studio's song/pattern loop mode.' It uses a specific verb ('Set'), names the resource ('FL Studio's loop mode'), and distinguishes this tool from transport siblings like transport_play, transport_record, and transport_set_position by focusing on the song/pattern loop mode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the tool's role obvious (set loop mode), so an agent can infer when to use it. However, it provides no explicit guidance on when to use this tool versus alternatives, no exclusions, and no context about how it interacts with other transport tools. Usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transport_set_playback_speedA
Set the playback speed multiplier (0.25..4.0).
| Name | Required | Description | Default |
|---|---|---|---|
| speed | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the accepted range and that this is a setter, but it does not state what happens on out-of-range input, whether the change is persistent, whether playback must be active, or what the return value is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. The action, resource, and valid range are all present; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter setter with no output schema, the description gives the essential semantic and constraint information. A note about return value or clamping would improve it, but it is not necessary for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description compensates by explaining that speed is a multiplier and constraining it to 0.25..4.0. This is meaningful guidance beyond the bare property name 'Speed'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action (set) on a precise resource (playback speed multiplier) with an explicit range (0.25..4.0). This is clearly distinct from sibling tools like transport_set_tempo or transport_set_position, so an agent can identify the target without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended use obvious: use when the agent needs to change the playback speed multiplier. It doesn't name alternatives or exclusions, but the operation is unambiguous within the transport sibling family; no further routing is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transport_set_positionB
Seek to a specific position in the song.
| Name | Required | Description | Default |
|---|---|---|---|
| position | Yes | ||
| unit | No | bars |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action but does not say whether seeking stops or continues playback, whether the change is immediate, or what side effects might occur. For a mutating transport operation, this is a notable transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler or redundant information. Every word contributes to conveying the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a transport-mutating tool with no annotations, no output schema, and no parameter descriptions, the description is too thin. The schema covers the required parameter and the unit enum, but the agent is left without guidance on units' effect on the position value or the operation's impact on playback state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain how 'position' relates to the 'unit' field or what value ranges are expected. It adds only minimal meaning beyond the schema by clarifying that the position refers to a location in the song.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Seek') and resource ('specific position in the song'), which clearly distinguishes this from sibling transport tools like transport_play, transport_stop, and transport_jog. Even without the schema, an agent can understand exactly what operation this performs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when the playhead needs to move to an exact position, but it provides no explicit guidance on when to choose this over alternatives such as transport_jog or transport_set_loop_mode. Usage context is present only by implication, with no exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transport_set_tempoA
Set the project tempo in BPM. Uses processRECEvent for proper undo history.
| Name | Required | Description | Default |
|---|---|---|---|
| bpm | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full behavioral disclosure burden. It clearly signals mutation with 'Set' and adds a concrete side-effect fact: the change goes through processRECEvent and registers in undo history. It does not mention range validation, but for a simple setter this is a reasonable level of transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The action is front-loaded, and the implementation note about undo history is the only additional detail, earning its place as useful behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter setter with no output schema and no annotations, the description is largely complete: what is set, in what unit, and one important behavioral side effect. It is slightly shy of a 5 because it omits any note about accepted tempo limits or effect on running playback, but these are minor given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for the lone 'bpm' parameter. It clarifies that the parameter is in BPM and is the project tempo, which is helpful, but it does not specify valid ranges, decimal support, or clamping behavior. This is minimally adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Set'), resource ('project tempo'), and unit ('BPM'), making the tool's purpose immediately clear. It also stands apart from siblings like transport_tap_tempo and transport_set_playback_speed because it names the exact project-level property being changed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The action is self-explanatory, and the mention of 'proper undo history' hints at when this wrapper should be preferred. However, it never explicitly distinguishes this tool from alternatives like transport_tap_tempo or other tempo-related tools, so usage guidance remains implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transport_set_time_signatureB
Set project time signature (e.g. 4/4, 3/4, 7/8).
| Name | Required | Description | Default |
|---|---|---|---|
| numerator | Yes | ||
| denominator | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It reveals that the tool mutates the project time signature, but it does not mention side effects, valid ranges, whether transport must be stopped, or return/error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with zero filler, and the examples clarify the input format. It is compact and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter setter this is minimally viable, but without annotations or output schema it omits edge-case details like valid ranges and transport state requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description should define the parameters. It only gives examples (4/4, 3/4, 7/8), implying numerator/denominator semantics, but does not specify allowed values or format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Set') and a distinct resource ('project time signature') with illustrative examples. It is clear, but it does not explicitly differentiate from related transport setters like transport_set_tempo, so sibling differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implicit: if the goal is to change the project's time signature, this is the tool. However, there is no explicit guidance on when not to use it, constraints, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transport_song_lengthA
Return song length in ticks, seconds, ms, bars, steps.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure; 'Return' does signal a read-only query and lists the output units. However, it does not state how the five units are packaged in the response or whether the value reflects the active project/current arrangement, leaving some behavior implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler: it states the action, object, and units in eleven words. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless getter this is nearly complete: the purpose, read-only nature, and units are all present. It would be slightly stronger with a note on the return shape, since no output schema exists, but the low complexity makes the description adequate for selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the empty schema is fully self-descriptive and the baseline is 4. The description adds useful context by naming the units the returned length is expressed in, though it has no parameter meanings to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return') and names a concrete resource ('song length') with five explicit units. This clearly distinguishes it from sibling commands such as transport_set_position or transport_status, which set or report different transport state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is immediately clear: call this zero-argument tool when the song length is needed. It does not name alternatives or counter-indications, but no sibling tool provides the same query, so the absence of explicit routing is not a material gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transport_statusA
Get is_playing, is_recording, position, loop mode, tempo, signature.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. 'Get' strongly implies a read-only operation with no side effects, and the field list clarifies what is returned. However, it does not describe return format, units, or behavior under edge conditions like an unconnected bridge or stopped transport.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. Every listed field is meaningful and directly relevant to the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only status tool, the description is largely complete: it names the resource and all returned fields. It could be slightly improved by indicating return value types or units, but nothing essential is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100%, so the baseline is 4. The description adds value beyond the empty schema by enumerating the output fields an agent can expect, making the return payload predictable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource (transport status) and enumerates the exact fields returned: is_playing, is_recording, position, loop mode, tempo, signature. This clearly separates it from mutating transport tools like transport_play or transport_stop, though it does not explicitly differentiate it from other status-style tools such as live_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The field list implies it is for reading current transport state, but there is no explicit statement of context, exclusions, or comparison to related tools like arrangement_play_time or transport_song_length.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transport_stopA
Stop playback.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden and does state the primary effect: playback is halted. It does not mention whether the cursor position is preserved, whether the call is a no-op when not playing, or any other side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two words and exactly captures the operation with no filler or repetition. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter transport action, this covers the basic invocation and intent. It is not fully complete because it leaves the sibling distinction and behavioral details unarticulated, which matter in a large tool set with transport_play_stop nearby.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema confirms this, so there are no parameter semantics to explain. The description does not need to add anything beyond the input schema for an agent to invoke it correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Stop') and a clear resource ('playback'), so an agent can tell what action is performed. It does not explicitly contrast with the sibling transport_play_stop, so the sibling differentiation is weaker than ideal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Stop playback' implies the tool should be used when playback needs to be halted. However, it gives no explicit guidance about when not to use it or why it should be preferred over the similar-sounding transport_play_stop.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transport_tap_tempoA
Send a tap-tempo event (accumulates to set BPM).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden and does reveal a non-obvious trait: a single event does not directly set BPM, it accumulates. However, it leaves unspecified how accumulation is measured, when it resets, and whether any value is returned, so transparency is partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with a parenthetical that adds the important accumulation nuance. Every word contributes meaning; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless event-sending tool, the description is nearly complete: it states the action and the key behavioral caveat. It could mention reset conditions or the lack of a meaningful return value, but those are minor given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema already exhaustively documents the call shape. Per the baseline guidance, no additional parameter explanation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Send') and resource ('tap-tempo event') and clarifies the semantics with 'accumulates to set BPM', which distinguishes it from direct-tempo sibling transport_set_tempo. An agent can immediately tell what this tool does and how it differs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the usage pattern: send one or more tap events to accumulate toward a tempo. It does not explicitly state when to choose this over transport_set_tempo or mention any exclusion/reset conditions, so the guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transport_toggle_countdown_before_recordingB
Toggle 'countdown before recording'.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. 'Toggle' indicates a state-changing operation, but the description gives no additional context about impact, whether the setting is enabled or disabled, or what the agent should observe after calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short and front-loaded, with no filler words. It is adequately concise, though it mostly rephrases the tool name rather than adding new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter toggle, the description names the action and target, which is minimally usable. However, it lacks any context about the state transition, current state visibility, or return behavior, and with no annotations or output schema the description remains thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there are no parameter details for the description to supplement. The baseline of 4 applies because the agent can invoke the tool correctly with no arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the exact action ('Toggle') and the specific resource ('countdown before recording'). It is clear and can be distinguished from siblings such as transport_toggle_metronome because it names a different setting, though it does not explicitly compare itself to alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It only restates the action, with no mention of when countdown before recording should be toggled, prerequisites, or related tools like transport_toggle_metronome.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transport_toggle_metronomeA
Toggle metronome on/off.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It clearly states that the operation is a state toggle rather than a read-only query or destructive reset. It does not mention whether the new state is returned, but for a zero-argument transport toggle this is a minor omission rather than a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is 'Toggle metronome on/off.' — a single front-loaded sentence with no filler, redundancy, or unnecessary detail. Every word contributes to the agent's understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with no output schema, this description is sufficient for an agent to select and invoke it correctly. The sibling list adds no missing context, because no sibling tool overlaps with metronome control.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero properties and 100% coverage, so there are no parameter semantics needing explanation. The baseline of 4 applies because the description correctly does not invent or omit parameter guidance where none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Toggle') and a specific resource ('metronome'), making the action unambiguous. It is distinguishable from every sibling tool, including other transport toggles, because no other tool in the list targets the metronome.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied: an agent should call this when it wants to flip the metronome state between on and off. However, the description does not explicitly state when to use it versus alternatives, mention prerequisites, or note any conditions such as requiring an open project.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ui_focused_windowB
Return info about the currently focused FL Studio window.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 only says 'Return info' and does not clarify whether this is a safe read-only operation, what fields the info contains, whether it can fail, or how it behaves when no window is focused. This is a significant gap for a UI inspection tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no filler. The key action and target resource are front-loaded, making it easy for an agent to scan and act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is very simple with zero parameters, so minimal context is needed. However, there is no output schema and the description does not explain what 'info' consists of, leaving the agent uncertain about the shape or usefulness of the return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter documentation burden. The baseline of 4 applies because the description does not need to compensate for undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: returning info about the currently focused FL Studio window. It is clear enough to distinguish from sibling tools like ui_focused_plugin or browser_focused, though it does not explicitly name those alternatives and 'info' is somewhat vague about what exactly is returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: call this when you need to know which FL Studio window is currently focused. However, there is no explicit guidance about when to prefer it over related UI inspection tools such as ui_focused_plugin or browser_focused, and no exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ui_hide_windowB
Close a main window.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description conveys the basic mutation (closing a window), but lacks detail on behavior when the window is already closed, error handling, or side effects. Without annotations, more behavioral context would be helpful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence with no extraneous information. It is optimally concise for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, single action), the description is minimally adequate. However, it could include a list of window names or note that closing a hidden window may have no effect. The lack of parameter description reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain the 'name' parameter or list the possible window values. With 0% schema description coverage, this is a significant gap. The agent must rely solely on the enum list in the schema, which is not self-explanatory for all values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Close') and the resource ('a main window'). It distinguishes from sibling tools like ui_show_window and ui_focused_window, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. For instance, it doesn't mention that ui_show_window is for opening windows or that ui_focused_window provides window info. Context of use is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ui_hintA
Display a transient hint message in FL Studio's status bar.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full burden of behavioral disclosure. 'Transient' usefully indicates the message disappears automatically, but the description omits details such as whether FL Studio must be running, what happens on failure, or how long the message stays visible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence that fully states what the tool does and leaves no filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter UI utility, the description covers the essential behavior. Minor gaps like maximum message length and return value exist, but they are unlikely to prevent correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 only mentions 'hint message', and while the sole parameter is named 'message' and somewhat self-explanatory, the description does not specify format, length limits, or any other constraints that would help an agent construct a valid value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Display'), a specific resource (FL Studio's status bar), and a modifier ('transient hint message') that sets it apart from other UI-focused tools like ui_show_window or ui_focused_window. An agent can immediately understand the tool's function without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly say when to use this tool versus alternatives, but its purpose is self-evident and no sibling provides the same function. Usage context is implied by the description rather than explicitly spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ui_open_piano_roll_for_channelB
Open the piano roll for a given channel (optionally switch pattern first).
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ||
| pattern | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only states 'Open the piano roll,' without detailing side effects, error handling, or whether it changes the focused window. The optional pattern switch is mentioned but not explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundant words. It is front-loaded and efficiently communicates the core purpose and optionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple UI action with two parameters, the description covers the basic functionality. However, it lacks context about prerequisites, potential errors, and how it relates to other piano_roll tools. No output schema is needed, but behavioral expectations are minimal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. It explains 'channel' as the target and 'pattern' as optional to switch first. However, it does not clarify indexing (0- or 1-based) or valid values for the pattern (e.g., pattern index or name).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: opening the piano roll for a given channel, with an optional pattern switch. It uses a specific verb and resource, differentiating it from sibling piano_roll tools that modify notes rather than open the UI.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like piano_roll_add_notes or ui_scroll_to_channel. The description does not mention preconditions, such as whether the channel must already exist in the project.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ui_scroll_to_channelC
Scroll the channel rack to show a channel.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral disclosure on its own. It states the visible effect but does not disclose whether the scroll also selects or focuses the channel, what happens for invalid channel values, whether any other UI state changes, or what the tool returns. For an unannotated tool, this is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or unnecessary detail. It is appropriately short, but it sacrifices some semantic clarity for brevity, making it slightly less helpful than a slightly expanded version would be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a parameter with no schema description, the description does not fully equip an agent to handle the tool correctly. It covers the basic action but omits behavioral details and parameter semantics that would clarify edge cases such as out-of-range channels or whether scrolling implies selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, 'channel', has zero schema description coverage, and the tool description adds little beyond the schema. It references 'a channel' but does not explain channel indexing, valid ranges, type conventions, or how the integer maps to a specific channel in the rack.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a clear action ('scroll') and resource ('channel rack'), and states the intended outcome ('show a channel'). It is not a tautology and reads as a focused UI navigation operation, though it does not explicitly distinguish itself from related channel or UI tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'to show a channel' implies the use case of bringing a channel into view, but the description provides no explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives such as channel_select or ui_open_piano_roll_for_channel. Usage context is only inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ui_selected_channelB
Return selected channel index + name.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. 'Return' implies a read-only query, but it does not describe the return format, behavior when no channel is selected, or whether this reflects the live UI state. This is a minimal but not rich disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes to the meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter getter the description is mostly sufficient, but it is ambiguous relative to channel_selected and does not explain the output encoding or edge cases. Since there is no output schema, the description should carry more of that burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema has complete coverage and no parameter documentation is needed. The description adds no parameter semantics, but none are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Return'), a resource ('selected channel'), and the exact output ('index + name'). It is clear and not tautological, but it does not differentiate this from the sibling channel_selected, and it omits the 'ui' context from the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to use this tool over siblings such as channel_selected or ui_focused_window. The description only says what it returns, not when it should be preferred or avoided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ui_show_windowB
Open / focus a main window by name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| focus | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks behavioral details: it does not explain what happens if the window is already open, if it raises errors for invalid names, or any side effects. No annotations exist to compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence with no wasted words. It could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and no output schema, the description is adequate but missing behavioral and usage details required for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description adds no meaning beyond the enum values. For example, it could explain how the 'focus' parameter affects behavior but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Open / focus') and resource ('a main window by name'), clearly distinguishing it from siblings like 'ui_hide_window' and 'ui_focused_window'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as when to open vs. focus, or how it differs from other window-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
voice_list_devicesA
List available microphones (indexes + names + default flag).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It is a read-only list action, but the description does not clarify whether the list is static or dynamic, or whether it requires any permissions. The simplicity of the tool partially mitigates this gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that clearly communicates the tool's purpose without any extraneous words. It front-loads the key action and outputs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema, no annotations), the description covers the essential aspects. It states what is returned but does not elaborate on the output structure (e.g., array format). Still, it is mostly complete for a basic list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and the schema description coverage is trivially 100%. As per guidelines, the baseline is 4 for no parameters, and the description does not need to add parameter information since none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and clearly states the resource ('available microphones') and the data returned ('indexes + names + default flag'). It distinguishes from sibling voice tools like voice_record_and_transcribe, which handle audio capture rather than device enumeration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. However, the tool's simple purpose implies it should be used to discover microphone options before recording or transcription. No exclusions or alternatives are mentioned, making usage somewhat implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
voice_notes_to_piano_rollA
Push an already-transcribed note list (from voice_record_and_transcribe) into the piano roll with optional scale snapping / transposition / quantize.
Useful when you want Claude to inspect the raw transcription first, tweak it, then send a cleaned-up version. This tool is pure-Python and does NOT require the audio extras.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | Yes | ||
| bpm | No | ||
| scale_root | No | ||
| scale | No | ||
| transpose_semitones | No | ||
| quantize_grid_sec | No | ||
| clear_first | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool is pure-Python and does not require audio extras, which is useful. However, it omits behavioral traits like whether it overwrites existing piano roll content (though the 'clear_first' parameter defaults to true, it's not mentioned). More detail on side effects or prerequisites would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loaded with the main purpose and optional features, followed by a use case and implementation note. Every sentence adds value, and there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters (1 required) and no output schema, the description provides a high-level purpose and context for usage but does not explain return values, error conditions, or detailed parameter interactions. It is adequate for selection but not for full invocation understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 mentions 'scale snapping, transposition, quantize' which correspond to some parameters (scale/scale_root, transpose_semitones, quantize_grid_sec), adding meaning. However, it does not describe the required 'notes' parameter format, 'bpm', or 'clear_first' behavior, leaving significant gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'push[es] an already-transcribed note list into the piano roll', specifying the verb and resource. It distinguishes itself from siblings (like voice_to_piano_roll) by emphasizing that it works with pre-transcribed notes and offers optional transformations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: 'when you want Claude to inspect the raw transcription first, tweak it, then send a cleaned-up version.' It also references the source tool (voice_record_and_transcribe). However, it does not explicitly mention when not to use this tool or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
voice_open_guiA
Launch the interactive Voice-to-MIDI GUI (Dear PyGui window).
Starts a subprocess so the MCP server doesn't block. The window has live waveform, live pitch detection, post-processing controls (scale snap / quantize / transpose / confidence filter) and a 'Send to FL Studio' button.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It adds context about starting a subprocess to avoid blocking and lists GUI features, but it does not disclose potential behaviors like whether opening multiple instances is allowed, error conditions, or system requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences: the first clearly states the action, and the second provides necessary details about non-blocking behavior and features. No extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description covers the key aspects: purpose, non-blocking execution, and GUI features. It could improve by noting if the GUI is modal, how to close it, or behavior if already open, but it is largely complete for a launcher tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100%. The description explains the purpose and features beyond the empty schema, adding value by detailing what the GUI contains.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Launch the interactive Voice-to-MIDI GUI' with a specific verb and resource. It distinguishes from sibling voice tools like voice_list_devices or voice_notes_to_piano_roll, which do not involve launching a GUI.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when an interactive GUI is desired but provides no explicit guidance on when to use versus alternatives, such as voice_to_piano_roll or voice_notes_to_piano_roll. No when-not or exclusion criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
voice_record_and_transcribeA
Record the mic for duration_sec seconds and transcribe what you played.
Returns raw notes + the temp WAV path. Use this when you want to inspect the transcription before touching the piano roll. 3 short + 1 long beep plays at start, 1 beep at stop.
polyphonic=True uses Spotify Basic Pitch (chords / overlapping notes —
guitar strums, piano, etc.); needs the polyphonic extra. Default is the
lightweight monophonic pyin engine (one note at a time — humming).
| Name | Required | Description | Default |
|---|---|---|---|
| duration_sec | No | ||
| device | No | ||
| min_note_sec | No | ||
| fmin_hz | No | ||
| fmax_hz | No | ||
| polyphonic | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description fully discloses behavior: records audio, returns raw notes + temp WAV path, plays beeps (3 short+1 long at start, 1 at stop), explains polyphonic engine option and its dependency. Covers audio cues and return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with core purpose, then return info, use case, beeps, polyphonic details. Efficient but could trim some detail; overall well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core functionality, return values, audio cues, and polyphonic option. Missing explanations for 4 parameters and no error/prerequisite info. Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%. Description explains only duration_sec and polyphonic but not device, min_note_sec, fmin_hz, fmax_hz. Incomplete for a 6-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it records microphone for specified duration and transcribes, with explicit use case 'inspect transcription before touching piano roll'. Distinguishes from siblings like voice_transcribe_file and voice_notes_to_piano_roll.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit context for when to use ('inspect transcription before touching piano roll') and explains polyphonic vs monophonic options. Lacks explicit when-not-to-use or alternatives, but siblings are listed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
voice_to_piano_rollA
Hum/play a melody into the mic, get it written straight into FL's piano roll.
Args:
duration_sec: how long to record.
bpm: used to convert seconds -> bars. Match your FL tempo.
device: mic index (see voice_list_devices); None = default.
scale_root: e.g. "C", "F#", "Bb". If given, notes are snapped.
scale: e.g. "minor", "major", "dorian". One of
gen_list_scales. Used only when scale_root is given.
transpose_semitones: shift all notes up/down after transcription.
quantize_grid_sec: snap note starts to this grid (e.g. 0.125 = 1/32
at 120 BPM, 0.25 = 1/16, 0.5 = 1/8). None = off.
min_confidence: drop notes where the engine was uncertain (0..1).
min_note_sec: drop notes shorter than this many seconds.
polyphonic: use Spotify Basic Pitch (chords / overlapping notes —
needs the polyphonic extra). Default = monophonic pyin.
clear_first: clear the open piano roll before writing.
Returns: {ok, notes_written, piano_roll_state, wav_path, transcription_count}
| Name | Required | Description | Default |
|---|---|---|---|
| duration_sec | No | ||
| bpm | No | ||
| device | No | ||
| scale_root | No | ||
| scale | No | ||
| transpose_semitones | No | ||
| quantize_grid_sec | No | ||
| min_confidence | No | ||
| min_note_sec | No | ||
| polyphonic | No | ||
| clear_first | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It clearly discloses that the tool records audio, transcribes it using pyin or Spotify Basic Pitch, writes notes to the piano roll, and returns results including a WAV path. It also mentions optional scale snapping, quantization, and the clear_first behavior. However, it does not explicitly state that the tool is write-only (mutates the project) or that permission may be needed for mic input.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a one-liner summary, then an Args section, then a Returns section. It is front-loaded with a sentence that immediately conveys the tool's high-level function. While the Args block is lengthy, it is necessary for the 11 parameters and is clearly formatted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high parameter count (11), lack of output schema, and absence of annotations, the description is remarkably complete. It covers all parameters, explains return values, and even notes dependencies (polyphonic extra). It leaves little ambiguity about how the tool operates or what the agent should expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% coverage, so the description must explain all parameters. It does so comprehensively in the Args block, detailing each parameter's purpose, acceptable values, defaults, and constraints (e.g., quantize_grid_sec examples with BPM, polyphonic dependency). This fully compensates for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a clear and specific verb+resource: 'Hum/play a melody into the mic, get it written straight into FL's piano roll.' This immediately and precisely communicates the tool's purpose, distinguishing it as an audio-to-MIDI tool for FL Studio.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its siblings, such as 'audio_melody_to_piano_roll' or 'voice_record_and_transcribe.' It does not state prerequisites, limitations, or scenarios where alternatives would be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
voice_transcribe_fileC
Transcribe an existing audio file (wav / flac / mp3 / ogg) into MIDI notes.
polyphonic=True uses Spotify Basic Pitch (chords / full-mix content);
needs the polyphonic extra. Default is the monophonic pyin engine.
| Name | Required | Description | Default |
|---|---|---|---|
| audio_path | Yes | ||
| min_note_sec | No | ||
| fmin_hz | No | ||
| fmax_hz | No | ||
| polyphonic | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adds value by revealing the polyphonic engine (Spotify Basic Pitch) and default monophonic engine (pyin). However, it omits details like output destination, prerequisites, and side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short (two sentences) but lacks structure for parameter details. It is not wasteful, but the conciseness comes at the cost of missing essential parameter explanations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no annotations, and no output schema, the description is incomplete. It fails to explain input file location, output behavior, or prerequisites like FL Studio state or extras installation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain parameters. It only covers 'polyphonic' (1 of 5 parameters). Required 'audio_path', 'min_note_sec', 'fmin_hz', 'fmax_hz' are left unexplained, leaving the agent with insufficient guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool transcribes audio files (wav/flac/mp3/ogg) to MIDI notes, specifying the verb and resource. It distinguishes polyphonic vs monophonic modes but doesn't explicitly differentiate from sibling tools like voice_to_piano_roll.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit when-to-use or when-not-to-use guidance. It implies polyphonic=True for chords/full-mix but lacks comparison with alternatives like voice_to_piano_roll or voice_record_and_transcribe.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
157 tool updates
v0.3.0- First observed
arrangement_current - First observed
arrangement_jump_marker - First observed
arrangement_list - First observed
arrangement_play_time - First observed
arrangement_select - First observed
audio_analyze - First observed
audio_melody_to_piano_roll - First observed
audio_slice - First observed
automation_record_channel_pan - First observed
automation_record_channel_volume - First observed
automation_record_mixer_volume - First observed
automation_record_plugin_param - First observed
automation_record_tempo - First observed
channel_all - First observed
channel_clear_step_sequence - First observed
channel_count - First observed
channel_get_grid_bit - First observed
channel_get_step_sequence - First observed
channel_info - First observed
channel_mute - First observed
channel_quick_quantize - First observed
channel_route_to_mixer - First observed
channel_select - First observed
channel_selected - First observed
channel_set_color - First observed
channel_set_grid_bit - First observed
channel_set_name - First observed
channel_set_pan - First observed
channel_set_pitch - First observed
channel_set_step_sequence - First observed
channel_set_volume - First observed
channel_solo - First observed
channel_trigger_note - First observed
fl_bridge_info - First observed
fl_call_raw - First observed
fl_ping - First observed
fl_reconnect - First observed
gen_chord_notes - First observed
gen_emit_arpeggio - First observed
gen_emit_bassline - First observed
gen_emit_chord_progression - First observed
gen_emit_dnb_groove - First observed
gen_emit_drum_pattern_notes - First observed
gen_emit_drum_pattern_step_seq - First observed
gen_emit_melody - First observed
gen_list_chord_qualities - First observed
gen_list_dnb_styles - First observed
gen_list_drum_patterns - First observed
gen_list_progressions - First observed
gen_list_scales - First observed
gen_scale_notes - First observed
mixer_all_tracks - First observed
mixer_arm - First observed
mixer_count - First observed
mixer_fx_slots - First observed
mixer_get_eq - First observed
mixer_link_to_channel - First observed
mixer_mute - First observed
mixer_route - First observed
mixer_select - First observed
mixer_set_color - First observed
mixer_set_eq_band - First observed
mixer_set_name - First observed
mixer_set_pan - First observed
mixer_set_send_level - First observed
mixer_set_stereo_separation - First observed
mixer_set_volume - First observed
mixer_solo - First observed
mixer_track_info - First observed
pattern_clone - First observed
pattern_count - First observed
pattern_create - First observed
pattern_current - First observed
pattern_delete - First observed
pattern_find_by_name - First observed
pattern_jump_to_next - First observed
pattern_jump_to_previous - First observed
pattern_list - First observed
pattern_select - First observed
pattern_set_length - First observed
piano_roll_add_arpeggio - First observed
piano_roll_add_chord - First observed
piano_roll_add_notes - First observed
piano_roll_clear - First observed
piano_roll_delete_notes - First observed
piano_roll_duplicate - First observed
piano_roll_humanize - First observed
piano_roll_quantize - First observed
piano_roll_read - First observed
piano_roll_status - First observed
piano_roll_transpose - First observed
playlist_add_marker - First observed
playlist_all_tracks - First observed
playlist_delete_clip - First observed
playlist_delete_marker - First observed
playlist_list_clips - First observed
playlist_list_markers - First observed
playlist_mute_track - First observed
playlist_place_pattern - First observed
playlist_refresh - First observed
playlist_set_track_color - First observed
playlist_set_track_name - First observed
playlist_solo_track - First observed
playlist_track_count - First observed
playlist_track_info - First observed
plugin_find_param - First observed
plugin_get_param - First observed
plugin_is_valid - First observed
plugin_list_mixer_track - First observed
plugin_name - First observed
plugin_next_preset - First observed
plugin_param_count - First observed
plugin_params - First observed
plugin_preset_count - First observed
plugin_prev_preset - First observed
plugin_set_param - First observed
plugin_set_preset - First observed
plugin_show_editor - First observed
project_metadata - First observed
project_new - First observed
project_open - First observed
project_redo - First observed
project_render - First observed
project_save - First observed
project_save_as - First observed
project_save_undo - First observed
project_undo - First observed
project_undo_history - First observed
project_version - First observed
song_to_dnb_flip - First observed
transport_jog - First observed
transport_play - First observed
transport_record - First observed
transport_set_loop_mode - First observed
transport_set_playback_speed - First observed
transport_set_position - First observed
transport_set_tempo - First observed
transport_set_time_signature - First observed
transport_song_length - First observed
transport_status - First observed
transport_stop - First observed
transport_tap_tempo - First observed
transport_toggle_countdown_before_recording - First observed
transport_toggle_metronome - First observed
ui_focused_window - First observed
ui_hide_window - First observed
ui_hint - First observed
ui_open_piano_roll_for_channel - First observed
ui_scroll_to_channel - First observed
ui_selected_channel - First observed
ui_show_window - First observed
voice_list_devices - First observed
voice_notes_to_piano_roll - First observed
voice_open_gui - First observed
voice_record_and_transcribe - First observed
voice_to_piano_roll - First observed
voice_transcribe_file
TDQS
Scored across 157 tools
Each tool falls into a clear domain (e.g., arrangement, audio, channel, mixer, pattern, piano_roll, playlist, plugin, project, transport, UI, voice, gen) with distinct purposes. Even overlapping areas like audio analysis vs transcription are separated by target output (analysis data vs piano roll notes). The drum pattern tools differentiate step sequencer vs piano roll output via name and description.
All tools follow a consistent snake_case convention with a domain prefix (e.g., arrangement_, audio_, channel_, mixer_) and a descriptive action (e.g., _list, _select, _set_volume). No mixing of camelCase or inconsistent verb styles. The naming pattern is predictable and aids discoverability.
157 tools is high, but FL Studio is a complex DAW with many components (arrangement, mixing, patterns, plugins, playback, generative features, voice input). The count reflects the breadth of the server's scope. While some tools could be merged (e.g., multiple transport toggles), the granularity helps agents perform fine-grained actions. Slightly over the ideal 3-15 range for a focused server, but reasonable for full DAW control.
The toolset covers almost every major FL Studio workflow: arrangement switching, audio analysis/transcription, automation recording (channels, mixer, plugins, tempo), channel/mixer manipulation, pattern/clip management, piano roll editing, plugin control, project lifecycle, transport, UI, voice input, and generative music. Minor gaps exist (e.g., no mixer EQ automation, no CC event editing), but the surface is extensive enough for most music production tasks.
Maintenance
Related MCP Connectors
Convert projects between Logic, Ableton, FL Studio and REAPER; generate, separate, transcribe
AI music production assistant — audio profiling, AI mixing sessions, and service inquiries.
Gives your AI assistant persistent memory and intelligence about your work patterns.
- VocunoOAuthcom.vocuno
AI music studio: song generation with vocals, covers, stems, voice conversion, mastering, editing.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to control FL Studio through MIDI communication, providing transport control, mixer adjustments, channel rack manipulation, plugin parameter automation, and piano roll note editing capabilities.141MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that connects AI assistants to FL Studio for music production via Virtual MIDI. It enables users to control transport, manage the mixer, write notes, and manipulate plugin parameters through natural language.1MIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to control FL Studio on Windows through a local MCP server without cloud dependencies. Bridges MCP clients to FL Studio's Python scripting environment via file-based IPC for project management, transport control, and UI workflow automation.-
- AlicenseAqualityCmaintenanceAI control for FL Studio via the Model Context Protocol — full in-DAW mixing (Mix Doctor diagnosis, gain staging, EQ/compression/reverb, reference matching), routing, and composition through Claude and any MCP client. 67 tools. Windows.6734MIT