fLMCP
Click on "Install 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., "@fLMCPRender the current project to WAV and open the export folder"
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.
fLMCP — FL Studio MCP server (macOS)
Model Context Protocol server that gives Claude (or any MCP client) end-to-end control of FL Studio — transport, patterns, channels, mixer, plugins, piano roll, playlist, arrangement, automation, and rendering.
This is a macOS port of geezoria/FLStudioMCP. The original repo has a good overview of the architecture and what is possible — this fork adapts it for macOS where FL Studio's Python interpreter blocks sockets, threads, and subprocesses, requiring a file-bus approach instead of TCP.
What's new in 0.2.0
This fork extends the port with (see CHANGELOG.md for details):
Live metering — per-track mixer peaks + per-channel VU during playback (gain staging, clipping detection) without any audio capture.
Per-step parameters — velocity/pan/pitch/mod per step-sequencer step.
Snap mode control — set the global snap (
bar,beat, …) by name.Browser navigation — walk the FL browser, audition and load samples and presets programmatically.
Performance mode — live-clip status + triggering.
Score log dump — turn what you just jammed (unrecorded) into a pattern.
See it in action (Web based Claude.ai using FL Studio):

Related MCP server: FL Studio MCP Server
Two ways to use it
Agentic tools (Claude Code, OpenCode, Codex) — the MCP server runs on your Mac as a subprocess of your coding agent using stdio transport. This is the default mode and requires no networking.
Web-based remote MCP connectors (Claude.ai, Mistral.ai) — the server runs as a persistent HTTP process on your Mac and is exposed via a public URL using a cloudflared tunnel. Both Claude.ai and Mistral.ai support remote MCP connectors, including on their free tiers, so you can control FL Studio from either site without a paid subscription.
Requirements
macOS 12+
FL Studio 2025 (Producer Edition or higher — needs MIDI scripting)
Python 3.10+
Accessibility permission granted to your terminal app (needed for
pynputto sendCmd+Opt+Y)
Install
git clone https://github.com/calvinw/MacFLStudioMCP.git
cd MacFLStudioMCP
./install_mac.shThe installer:
Copies
fl_bridge/device_FLStudioMCP.pyto~/Documents/Image-Line/FL Studio/Settings/Hardware/fLMCP Bridge/Copies
fl_bridge/piano_roll/ComposeWithLLM.pyscriptto~/Documents/Image-Line/FL Studio/Settings/Piano roll scripts/Pre-creates
fLMCP_request.jsonandfLMCP_state.jsonas empty stubs.Creates the
bus/directory.Creates
.venv/and installs the package with Mac dependencies (pip install -e ".[mac]").Registers the server with Claude Code via
claude mcp add.
One-time setup
IAC Driver
Open Audio MIDI Setup (Applications → Utilities).
Menu: Window → Show MIDI Studio.
Double-click IAC Driver.
Check Device is online.
Add a port named
fLMCP(rename the defaultBus 1).
Click Apply.
Accessibility permission
System Settings → Privacy & Security → Accessibility → enable your terminal
app (e.g. iTerm2, Terminal) and Claude Code. Without this pynput cannot
send Cmd+Opt+Y and piano-roll edits will silently fail.
FL Studio activation
One-time MIDI setup
Launch FL Studio 2025.
Options → MIDI Settings → Input: find the
fLMCPIAC Driver row. Set Controller type =fLMCP Bridge, Port = 1, click Enable.Options → MIDI Settings → Output: same
fLMCProw, Port = 1. (The IAC Driver requires both Input and Output to be bound — FL only keeps a controller script'sOnIdlefiring when both directions are active.)
To confirm everything is working, go to View → Script Output and look for
[fLMCP] bridge ready.
FL remembers these settings — you only need to do this once.
Each launch
Start FL Studio.
Open the Piano Roll editor window, click the scripts dropdown (top-left corner), and choose ComposeWithLLM. You need to do this before working with the LLM. FL forgets this on quit, so repeat each time you relaunch FL.
Using with Claude Code (stdio)
The installer registers the server via claude mcp add. Once installed, just
start Claude Code as normal — the FL Studio MCP server will be available automatically.
Using with Claude.ai (HTTP)
Start the MCP server in HTTP mode. It will run on your local Mac and we will
use a Cloudflare tunnel to allow Claude.ai to connect to it as a Remote MCP
server (or connector). Make sure you are in the MacFLStudioMCP folder, then
run this in a terminal window and keep it running while using the MCP server:
.venv/bin/python -m fl_studio_mcp --transport http --port 8000 --host 0.0.0.0Setting up Cloudflared to Tunnel Your Mac to Claude.ai
Claude.ai runs in the cloud and cannot reach 127.0.0.1 directly. We use
cloudflared
to create a free tunnel with a random public URL — no account required.
Install cloudflared if you haven't already:
brew install cloudflaredThen run the tunnel in a second terminal window and keep it running:
cloudflared tunnel --url http://localhost:8000It prints a line like:
Your quick Tunnel has been created! Visit it at (it may take some time to be fully reachable):
https://random-words-here.trycloudflare.comCopy that https://…trycloudflare.com URL — you'll use it in the next step.
Security note: the tunnel exposes your FL Studio instance to anyone who knows the URL. The random URL is unguessable, but stop the tunnel when you're done to close access.
Add the server in Claude.ai
Click Add custom connector.
Fill in the fields:
Name:
FLStudioMCPURL:
https://random-words-here.trycloudflare.com/mcp(replacerandom-words-herewith the actual subdomain from your tunnel)Authentication: None
Click Save. Claude.ai will connect and list the available tools.
Credits & lineage
Original concept & Windows implementation: geezoria/FLStudioMCP
macOS port (file-bus bridge): calvinw/MacFLStudioMCP
0.2.0 extensions (metering, step params, snap, browser, performance mode): this fork
License
MIT — see LICENSE. Changes are documented in
CHANGELOG.md.
Available Tools
160 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.
arrangement_selectionA
Current timeline selection (start/end ticks; -1 start = no selection).
| 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 behavioral burden. It does disclose useful return semantics: start/end ticks and the -1 means no selection. However, it does not explicitly state that the tool has no side effects, whether both start and end are -1 when no selection exists, or what happens if called with no current 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?
A single sentence with the core meaning front-loaded and parenthetical detail kept minimal. Every word contributes 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?
For a zero-parameter, no-output-schema getter, the description covers the essential semantic: current selection bounds in ticks and the no-selection sentinel. It could be slightly more explicit about the return format or the end-tick sentinel behavior, but it is otherwise adequately 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 input schema has zero parameters, so there is nothing to document. The description instead adds value by defining the meaning of the returned values (start/end ticks and the -1 sentinel), which is the relevant semantic content for this 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?
The description identifies the resource (current timeline selection) and specifies its meaning via start/end ticks plus the -1 sentinel, so an agent can understand this is a state getter. It lacks an explicit verb like 'get' or 'returns', and it does not differentiate it from sibling arrangement_current or arrangement_select, but the phrase is specific enough to infer the purpose.
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_list, or arrangement_select. The read-only nature is implied but no selection context, exclusions, or alternative references 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_channel_panC
Record pan automation on a channel.
| Name | Required | Description | Default |
|---|---|---|---|
| points | Yes | ||
| channel | 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 |
|---|---|---|---|
| points | Yes | ||
| channel | 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 |
|---|---|---|---|
| slot | No | ||
| param | Yes | ||
| points | Yes | ||
| channel | Yes | ||
| 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.
browser_focusedA
Caption + file type of the currently focused FL browser node.
| 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 transparency burden. It conveys a read-like operation by describing output fields, but it never explicitly states that the tool is read-only, has no side effects, or what happens when no browser node is focused.
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, tightly worded sentence with no filler. It front-loads the key output information immediately 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 zero-parameter getter with no output schema, the description is largely complete: it names the two output fields and the target. It falls short of perfect only by not covering edge cases such as an empty browser selection or the exact format of the returned caption/file type.
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 and schema description coverage is 100%, so no parameter explanation is required. The description appropriately focuses on output semantics instead.
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 what is returned—caption and file type—and the target resource, the currently focused FL browser node. It distinguishes this from sibling browser tools by highlighting 'currently focused,' though it uses a noun phrase rather than an explicit action verb like 'returns' or '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 implies usage: call this when you need info about the currently focused browser node. However, it does not explicitly name alternatives such as browser_tabs, browser_preview, or browser_select, nor does it state 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.
browser_previewA
Audition the focused browser node — plays the sample/preset preview through FL's output (combine with fl-listen/metering to hear it).
| 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, and it does disclose the main behavior: it auditions by playing through FL's output and depends on fl-listen/metering to be heard. It doesn't state what happens if no node is focused or whether the preview is non-destructive, but the word 'preview' and 'audition' imply a playback action.
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 an em-dash and a parenthetical action; every clause earns its place. The main action is front-loaded before the auxiliary 'how to hear it' instruction.
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 preview action with no output schema, the description is nearly complete: it states what is played, where it is played, and what to combine for audio output. It could add a prerequisite that a browser node must already be focused (and how to set one), but sibling tools make this inferable.
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 cannot add meaning; the description compensates by naming the implicit context 'focused browser node' and the output path through FL's output. This is the expected baseline for a parameterless 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?
The description uses a specific verb and resource: 'Audition the focused browser node' and immediately clarifies the action: 'plays the sample/preset preview through FL's output.' This clearly distinguishes it from sibling browser tools like browser_select, browser_navigate, and browser_focused.
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 gives clear procedural context by telling the agent to 'combine with fl-listen/metering to hear it,' which explains how to use the result. It doesn't state explicit exclusions or alternatives, but the zero-parameter action is unique enough that the implied usage is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_selectA
Activate the focused browser node (like double-click: loads the sample/preset into the project).
| 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. It discloses the core behavior and side effect—loading the focused sample/preset—but does not mention what happens if no node is focused, whether the load can overwrite existing project state, or whether it 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 efficient sentence with a parenthetical analogy. Every word adds meaning, and the core 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 zero-parameter trigger, the description is nearly complete: it names the action, the target, and the effect. It could be slightly more explicit about preconditions or failure behavior, but no essential calling information 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?
The tool has zero parameters and the schema covers 100% of them by being empty, so the description is not required to explain parameter details. The term 'focused browser node' refers to an implicit UI state rather than a parameter, which is acceptable.
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: 'Activate the focused browser node.' It also adds the double-click analogy and the outcome 'loads the sample/preset into the project,' which clearly differentiates this from browser_navigate, browser_focused, and browser_preview.
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 'like double-click: loads the sample/preset into the project' phrasing gives clear contextual guidance on when this action is appropriate. It does not explicitly name sibling alternatives or state when not to use it, but the intended use is easy to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_tabsA
Cycle browser tabs (negative steps = backwards).
| Name | Required | Description | Default |
|---|---|---|---|
| steps | 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. It does add a useful behavior beyond the schema: negative steps move backwards. However, it does not explain boundary behavior (e.g., wrap-around at the first/last tab), what state changes occur, or whether the command activates or merely cycles focus.
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 operation, the resource, and the critical parameter nuance in as few words as possible.
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 very simple one-parameter tool, the description is mostly adequate, but it still leaves gaps: no mention of what 'browser tabs' refers to in this environment, no boundary behavior, and no relationship to the browser_navigate/browser_select family. It is minimally viable but not fully self-contained.
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 for the otherwise bare 'steps' integer. It provides the key semantic that negative values reverse direction, and the word 'steps' implies the unit is tab positions. This is meaningful added meaning for a single-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?
The description states a specific verb and resource ('Cycle browser tabs') and adds directionality, making the operation unambiguous. It also distinguishes this tool from sibling browser tools like browser_navigate or browser_select, which operate on navigation/selection rather than cycling tabs.
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 the closely related browser_focused, browser_navigate, or browser_select tools. An agent is not told whether this is the right choice for switching between open browser tabs or how it fits into a broader browser workflow.
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_activityA
Live activity/VU level per channel (all channels if index omitted). Useful during playback to confirm a channel is actually sounding.
| Name | Required | Description | Default |
|---|---|---|---|
| index | No |
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 conveys that the tool returns live activity and that omitting index returns all channels, but it does not explicitly state that it is non-mutating, describe the return units/scale, or mention invalid-index 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?
Two short sentences with no filler. The core behavior is front-loaded, and the playback usage note adds real value without bloating the definition.
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, this is mostly sufficient: it covers purpose, scope, and a usage context. However, with no output schema, the exact return shape and unit of the activity/VU value are left implicit, making it minimum viable rather than 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 partially compensates by explaining that an omitted index means all channels. It does not clarify whether index is 0-based or what valid channel indices are, but with only one optional parameter this is minimally workable.
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 resource (channel activity/VU level) and the scope behavior when no index is given. It is clearly distinct from channel config/setter tools, though it does not explicitly contrast with mixer_get_peaks or playlist_track_activity.
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: 'during playback to confirm a channel is actually sounding.' This is clear context, but it does not mention alternatives or when not to use the tool, so it stops short of a 5.
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_paramsA
Read per-step graph-editor values for a channel in the current pattern.
params: any of velocity, pan, shift, pitch, fine_pitch, release, mod_x, mod_y (default: velocity, pan, shift). Returns one row per active step.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| steps | No | ||
| params | No | ||
| active_only | 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 it is a read operation and that it 'Returns one row per active step,' which gives some return-shape context. However, it does not disclose how steps filtering, the active_only flag, or the default params affect behavior, nor what happens when no steps are active.
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 purpose, and every sentence carries information: the resource being read, the allowed parameter values with defaults, and the return shape. There is no fluff 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 tool with 4 parameters, no output schema, and no annotations, the description is incomplete. It omits the meaning of 'index', 'steps', and 'active_only', and only vaguely describes the return as 'one row per active step.' An agent would need additional inference or external knowledge to call this 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 all parameters. It only explains the 'params' parameter by enumerating valid values and defaults; 'index', 'steps', and 'active_only' are left undocumented in both schema and description. This leaves the agent guessing about three of four 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 opens with a specific verb-resource pair: 'Read per-step graph-editor values for a channel in the current pattern.' This clearly distinguishes it from sibling setters like channel_set_step_params and from other channel getters like channel_get_step_sequence, which reads a different kind of data.
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?
Usage is implied by the verb 'Read' and by the sibling name channel_set_step_params, but the description never explicitly states when to choose this tool over alternatives or when not to use it. There is no mention of exclusions, preconditions, or comparison to related getters, so the agent has to infer the intended context.
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 |
|---|---|---|---|
| color | Yes | ||
| 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. 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 | ||
| value | Yes | ||
| position | 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 |
|---|---|---|---|
| name | Yes | ||
| index | 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 |
|---|---|---|---|
| pan | Yes | ||
| index | 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_paramsA
Write per-step graph-editor values (velocity/pan/shift/etc.) — adds groove and dynamics beyond on/off grid bits.
steps: list of {"step": N, "velocity": 0..127, "pan": 0..127 (64=center), "shift": ticks, "pitch": ..., ...}. Only provided keys are written. pattern defaults to the current pattern.
| 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 provided, the description carries the full behavioral burden and does so reasonably: it discloses partial updates ('Only provided keys are written'), defaulting behavior ('pattern defaults to the current pattern'), and value ranges (velocity 0..127, pan 0..127 with 64=center). It does not cover error behavior or return values, but the mutation semantics are clear for a write 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 compact and front-loaded: purpose first, then data format, then key behavioral notes. The '...'/'etc.' placeholders are imprecise but do not bloat the description, and every 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?
For a 3-parameter tool with no annotations, no output schema, and an open-ended steps object, the description should fully specify accepted keys, units, and every parameter. It handles steps and pattern well, but omits index and leaves the key set open-ended, so an agent could supply unsupported keys. It is usable 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?
Schema description coverage is 0%, so the inline format is essential; the description documents the structure of steps and clarifies the pattern default. However, it never explains the 'index' parameter at all, and 'pitch' is left as '...' so agents cannot know its range or format. This is partial but not full compensation for an empty 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 uses a specific verb ('Write') and a concrete resource ('per-step graph-editor values'), then enumerates supported keys (velocity/pan/shift/pitch). It distinguishes itself from on/off grid-bit tools by saying 'adds groove and dynamics beyond on/off grid bits,' which differentiates it from sibling tools like channel_set_grid_bit or channel_set_step_sequence.
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: per-step expressive parameters rather than binary grid bits. However, it never explicitly names alternatives or states when not to use this tool. It does provide a useful usage default ('pattern defaults to the current pattern') but lacks explicit 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.
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 |
|---|---|---|---|
| solo | No | ||
| index | Yes |
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 |
|---|---|---|---|
| note | Yes | ||
| index | 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_infoB
Detailed info about the main 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?
With no annotations provided, the description must carry the full burden, and it does disclose a useful behavioral trait: the tool fails if the bridge is offline. However, it does not clarify what 'detailed info' includes, whether it is purely read-only, or how failures are surfaced.
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, tight sentence with zero wasted words. It front-loads the core purpose ('Detailed info about the main bridge') and adds the critical failure condition in a brief parenthetical.
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 tool this is mostly adequate, but the lack of an output schema means the vague phrase 'detailed info' leaves the return shape undefined. The offline behavior is helpful context, but an agent cannot fully anticipate what fields or structure the response will contain.
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 input schema is empty, so parameter explanation is unnecessary. The baseline of 4 applies since the description needs to add 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 clearly identifies a specific resource ('the main bridge') and states that it returns detailed info, which is enough to recognize it as a read/status tool. It does not explicitly contrast it with fl_ping or other diagnostic siblings, so it stops short of full 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 explicit guidance about when to use this tool versus alternatives like fl_ping or fl_reconnect. The offline-failure note subtly implies a diagnostic use case, but the description never states when this tool should be preferred or excluded.
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 main 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 must carry the behavioral disclosure burden. It says the tool is an 'escape hatch' and takes 'arbitrary params,' but it does not disclose whether params are validated, whether actions can have side effects, what errors arise for invalid actions, or whether responses are structured. The raw nature is hinted at but not substantively 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 entire description is one short, front-loaded sentence with the 'escape hatch' label first. It communicates the core purpose without filler, which is ideal for a low-level raw invocation 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 no annotations, no output schema, and a raw invocation design, the description leaves out important operational context: how valid actions are discovered, error behavior, safety expectations, and what the response contains. The generic escape-hatch framing may be intentional, but it is incomplete for an agent that must reliably select and invoke 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?
Schema coverage is 0%, so the description must compensate. It mentions 'arbitrary params' and 'any action,' which loosely maps to the action and params fields, but it does not explain how they relate, what format params should take, or how action names correspond to bridge endpoints. The description adds minimal semantic value 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 clearly states the tool's role: 'invoke any action the main bridge accepts with arbitrary params.' It positions itself as an 'escape hatch,' which distinguishes it from the many specialized sibling tools. It is slightly vague in not defining what 'main bridge' means or what kind of actions are accepted, but it is not tautological.
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?
'Escape hatch' implies use when no dedicated tool exists for a given raw bridge action, but the description does not explicitly state when to use it versus the sibling tools, nor does it warn against using it when a domain-specific tool exists. The usage context is implied rather than directly explained.
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
Reset the bridge client (file-bus has no persistent connection, but this clears any client-side state and re-pings).
| 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 behavioral burden, and it does well by disclosing that file-bus has no persistent connection and that the operation clears client-side state and re-pings. It does not detail what state is cleared or potential side effects, but the core non-obvious behavior is 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 entire description is a single front-loaded sentence: the main action comes first, followed by a parenthetical that adds necessary context. No words are 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 zero-parameter utility with no output schema, the description is largely complete: it states the action, the underlying architecture ('no persistent connection'), and the concrete effect. The only minor gap is the absence of any hint about return/status 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?
The tool has zero parameters and an empty schema with 100% schema coverage, so there is nothing for the description to add. The baseline for a parameterless tool is 4, and the description introduces no contradictions.
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 ('Reset the bridge client') and explains the operation as clearing client-side state and re-pinging. It is clear, but it does not explicitly contrast this with fl_ping or fl_bridge_info, so sibling differentiation is only 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?
The description implies when the tool is useful (when client-side state needs clearing or a fresh ping is desired), but it never states explicit conditions or rules out alternatives like fl_ping. No when/when-not guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fl_test_mac_restrictionsA
Test which operations are blocked by FL Studio's macOS audit hook.
FL Studio 2025 on macOS runs Python in a heavily-restricted sub-interpreter. This tool reports which operations are blocked (sockets, threads, subprocess, file I/O restrictions, etc.) and which are allowed.
Returns a dict mapping operation names to status strings: "OK" = operation succeeded "BLOCKED: " = audit hook blocked the operation
Expected on macOS: sockets, threads, subprocess, mkdir, unlink, rename = BLOCKED file_io = OK
| 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. It explains what the tool does, that it returns a dict, the meaning of status strings ('OK' vs 'BLOCKED: <error>'), and provides expected outcomes. It does not explicitly state side-effect safety, but the audit-hook framing strongly implies operations are blocked rather than 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 well-structured with a clear opening purpose, brief context, return-format clarification, and expected values. There is slight redundancy between the first sentence and the 'This tool reports...' sentence, but overall every section adds useful 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 tool with no parameters and no output schema, the description fully compensates: it explains the return type, status string meanings, and expected macOS behavior. An agent knows exactly what the tool accomplishes and what to expect from 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 has zero parameters, so the baseline is 4. The description correctly implies no inputs are needed and focuses entirely on the output, which is appropriate for a no-argument diagnostic.
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: 'Test which operations are blocked by FL Studio's macOS audit hook.' It clearly distinguishes this diagnostic tool from the many transport/channel/pattern siblings, none of which probe audit-hook restrictions.
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 clearly implies when to use: when you need to know which operations are blocked/allowed in FL Studio's restricted macOS sub-interpreter. It does not explicitly name alternatives or exclusions, but the context is unambiguous and the expected results are spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_statusC
Performance-mode state; with a track, per-block clip status for it.
| Name | Required | Description | Default |
|---|---|---|---|
| track | No | ||
| blocks | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description alone must convey behavioral traits such as read-only status, whether it is a one-shot query or requires polling, and what the output represents. The description only says 'Performance-mode state' and 'per-block clip status', without disclosing side effects, freshness semantics, or blocking behavior. This is a meaningful gap for a status tool an agent may need to poll or interpret over time.
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 phrase with no filler or redundant restatement of the tool name, and it front-loads the core concept of 'Performance-mode state'. The structure is efficient, though the brevity comes at the cost of needed clarity. For a simple two-parameter status tool, this length is reasonable, but the wording is too terse to be fully effective.
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 only two optional parameters, the description needed to explain the return shape and behavior to be self-sufficient. It fails to state what the tool returns for the whole performance mode versus a specific track, how 'blocks' changes the payload, or whether the result is a snapshot or live-following state. The description leaves essential operational context absent.
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 carries full responsibility for explaining the two parameters. It vaguely connects 'track' to per-block clip status, but it does not explain what a null track means, what 'blocks' controls, or how the integer values map to actual state. The defaults (null and 16) are defined only in the schema, not in the description, leaving the agent to guess the 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 phrase 'Performance-mode state' identifies a domain (live/performance mode) and the mention of 'per-block clip status' points to a query-style tool, distinguishing it from siblings like transport_status or piano_roll_status. However, it is a noun fragment with no explicit verb such as 'retrieve' or 'get', and 'performance-mode state' is not clearly defined. The description gives only a rough idea rather than a precise, unambiguous statement of 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?
There is no guidance about when to use this tool versus alternatives like transport_status, arrangement_play_time, or piano_roll_status. The clause 'with a track, per-block clip status for it' implies an optional track-scoped usage, but it never states when global status is appropriate, when to supply a track, or when another status tool should be chosen instead. No exclusions or comparison conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_triggerA
Trigger a performance-mode live clip (playlist must be in performance mode). Default flags mute the previous clip on the track.
| Name | Required | Description | Default |
|---|---|---|---|
| block | Yes | ||
| flags | No | ||
| 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. It discloses a meaningful side effect: 'Default flags mute the previous clip on the track.' It does not explain flag variations or reversibility, but the primary mutation is 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?
Two sentences with no filler: the action is front-loaded, the prerequisite is stated briefly, and the default side effect is provided. Every clause 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 description covers the essential prerequisite and default behavior, but with no annotations, no output schema, and 0% parameter documentation, the missing semantics around flags and the exact roles of track/block leave noticeable gaps for an agent deciding how to call this 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 adds partial meaning by clarifying that 'track' is where the previous clip is muted and that 'flags' have a default mute behavior, but it does not explain what integer values represent or how 'block' maps to a clip.
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 a specific action ('Trigger') and resource ('performance-mode live clip'), and adds a key scoping condition. It does not explicitly contrast with related sibling tools, but the operation is distinct enough among the sibling list.
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 states an explicit prerequisite: 'playlist must be in performance mode.' This gives the agent a concrete condition for when the tool is valid, though it does not mention alternatives or 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.
mixer_all_peaksA
Live peak snapshot for every mixer track (master @ 0), for gain staging and clipping checks. Poll a few times during playback for a representative picture; silent tracks are omitted unless include_silent.
| Name | Required | Description | Default |
|---|---|---|---|
| include_silent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden, and it does disclose important behaviors: the snapshot is live, the master track is included at index 0, and silent tracks are omitted unless include_silent is set. It stops short of specifying the exact units or return structure, but the behavior described is meaningful and non-obvious.
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 compact sentences that front-load the core function and then add polling and filtering details. No filler or redundant restating 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 simple read-only snapshot with one optional boolean, the description covers purpose, usage pattern, and filtering behavior. It lacks an explicit return-value format or unit description, but the simplicity of the tool and the absence of required parameters make this 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?
Schema coverage is 0%, so the description must explain include_silent, and it does: silent tracks are omitted unless include_silent is set. This makes the parameter's effect actionable and clear, even without additional schema 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 clearly identifies the tool's function: it returns a live peak snapshot for every mixer track, including the master track at index 0. This distinguishes it from siblings like mixer_get_peaks, which likely targets a single track, and mixer_all_tracks, which returns broader track data. The gain-staging and clipping-check context further clarifies intent.
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 concrete usage guidance: poll several times during playback to get a representative picture, which is valuable for a dynamic measurement tool. It also mentions the include_silent behavior, giving context for when to set that parameter. It does not explicitly name alternative tools to avoid, but the scope and polling guidance are sufficient.
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 |
|---|---|---|---|
| armed | No | ||
| track | 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 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_get_peaksA
Live peak levels (left/right, ~0..1, >1 = clipping) for one mixer track.
Only meaningful while playing — start the transport first, poll during playback. Master is track 0.
| 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 disclosure burden. It clearly states the output range, clipping indicator, live/playing dependency, and that master is track 0. It stops short of describing exact return field names or behavior when the transport is stopped.
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 tightly packed lines with no filler. The core result is front-loaded, followed by the single essential usage caveat.
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 live read with no output schema, this is complete: the agent knows what to pass, what the values mean, when to call it, and how to interpret clipping. Nothing critical 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%, but the description compensates by defining the track parameter as a mixer track and specifying that 0 is the master. It does not state the upper bound of valid track indexes, though that is discoverable through mixer_count.
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 resource ('live peak levels ... for one mixer track'), the left/right channel breakdown, and the value domain (~0..1, >1 clipping). It distinguishes this from the sibling mixer_all_peaks by emphasizing 'one mixer 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?
It gives an explicit precondition ('start the transport first') and the intended polling context ('poll during playback'). It doesn't explicitly name alternatives, but the 'one mixer track' scope routes away from mixer_all_peaks.
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 |
|---|---|---|---|
| mode | No | replace | |
| track | Yes | ||
| channel | 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 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 |
|---|---|---|---|
| muted | No | ||
| track | Yes |
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 |
|---|---|---|---|
| enabled | No | ||
| dst_track | Yes | ||
| src_track | Yes |
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 |
|---|---|---|---|
| color | Yes | ||
| track | 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 |
|---|---|---|---|
| band | Yes | ||
| gain | No | ||
| track | Yes | ||
| 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 |
|---|---|---|---|
| name | Yes | ||
| track | 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 |
|---|---|---|---|
| pan | Yes | ||
| track | 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 |
|---|---|---|---|
| level | Yes | ||
| dst_track | Yes | ||
| src_track | 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 |
|---|---|---|---|
| solo | No | ||
| track | Yes |
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_burn_loopA
Burn the pattern's loop-recorded takes into editable note data (current pattern if index omitted).
| Name | Required | Description | Default |
|---|---|---|---|
| index | 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 the transformation direction (loop-recorded takes become editable note data) and the default target pattern, but it does not disclose whether burning is destructive, whether original takes are removed, or whether existing note data is 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 one concise sentence with no filler. The core action is front-loaded, and the parenthetical defaults detail is placed at the end where it belongs.
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 low complexity—one optional parameter and no output schema—so the description covers its basic purpose and parameter semantics. However, it omits side effects and failure conditions (e.g., what happens if there are no loop-recorded takes, or whether the operation is irreversible), which an agent would need 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?
Schema coverage is 0%, so the description must compensate. It does meaningfully explain the sole optional index parameter: omitting it targets the current pattern. For a single optional integer parameter, this is sufficient practical 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 uses a specific verb ('Burn'), a clear resource ('the pattern's loop-recorded takes'), and a concrete outcome ('editable note data'). This distinguishes it from sibling tools like pattern_select or piano_roll_write_pattern, which do not mention loop-recorded takes.
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 states what the tool does but gives no guidance on when to choose it over alternatives, nor any exclusions or prerequisite conditions. There is no mention of when burning loop-recorded takes is appropriate or when a different pattern/piano-roll tool should be used instead.
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_groupsA
List pattern groups (name + member pattern indices) and the active group.
| 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 output schema, the description carries the behavioral burden. It discloses the exact data returned (group names, member indices, active group) and the verb 'List' implies a read-only operation. It does not detail response shape or empty-state behavior, but for a zero-parameter list tool this is reasonably 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?
A single, focused sentence that wastes no words. It front-loads the action and packs the essential output details into a compact parenthetical.
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 no-argument read tool, the description covers the main return values. It does not specify the exact response encoding or how the active group is represented, but an agent can reasonably infer the output shape from the description alone.
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 is empty and schema description coverage is 100%, so there are no parameters to clarify. The zero-parameter case earns the baseline score of 4; no additional 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 uses a specific verb ('List') and resource ('pattern groups'), and clarifies the output contents: name, member pattern indices, and the active group. This clearly distinguishes it from sibling tools like pattern_list or pattern_count.
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 user needs pattern-group information, but it does not explicitly state when to prefer this tool over alternatives or mention exclusions. No alternative tools are named.
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_renameB
Rename an existing pattern.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| 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. It correctly indicates that the tool mutates an existing pattern, but it does not explain error behavior, undoability, or any side effects on references to the renamed 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, front-loaded sentence with no filler. It is as concise as the operation is simple, 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 mutation tool with no annotations and no output schema, the definition leaves key context unexplained, especially parameter semantics and failure/validation behavior. An agent could guess, but the description is not complete enough for 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 description coverage is 0%, and the description does not compensate. It never clarifies that 'index' identifies the pattern to rename or that 'name' is the new name; the agent must infer this from parameter names and the operation context.
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 ('an existing pattern'), precisely conveying what the tool does. It also distinguishes this tool from sibling pattern tools like pattern_create, pattern_clone, and pattern_delete without requiring schema inspection.
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 phrasing implies it should be used when renaming an existing pattern rather than creating, cloning, or deleting one. However, it does not explicitly state when to prefer it over alternatives or mention prerequisites such as the index referring to an existing pattern.
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_colorB
Set pattern color. Accepts '#RRGGBB' or 'rgb(r,g,b)'.
| Name | Required | Description | Default |
|---|---|---|---|
| color | Yes | ||
| index | 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 correctly implies mutation via 'Set', but it does not explain what the index parameter refers to, how the color change manifests, or whether there are validation constraints. The accepted color formats are useful behavioral detail, but the overall transparency is 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?
The description is two short sentences with no filler. The action is front-loaded and the color format detail is directly useful, making every word earn 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 setter, the description covers the purpose and color syntax, but it omits semantics for the required index parameter and gives no context about how to obtain or interpret it. With no annotations or output schema, this omission leaves the definition incomplete for reliable autonomous 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 adds meaningful semantics for the 'color' parameter by documenting accepted formats. However, it says nothing about the required 'index' parameter, leaving a significant 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 clearly states a specific action ('Set') on a specific resource ('pattern color'), making the tool's purpose immediately obvious. The name and domain also distinguish it from sibling tools like channel_set_color, mixer_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 provides no guidance on when to use this tool versus alternatives such as channel_set_color or mixer_set_color. It does not mention prerequisites, nor does it offer any exclusions or routing hints beyond what the name itself implies.
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 |
|---|---|---|---|
| bars | Yes | ||
| 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 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 |
|---|---|---|---|
| repeats | No | ||
| velocity | No | ||
| direction | No | up | |
| step_bars | No | ||
| time_bars | No | ||
| midi_notes | Yes | ||
| note_duration_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, but it only says 'Arpeggiate a chord into sequential notes.' It does not disclose whether the original chord is replaced, whether the operation is destructive, how repeats/direction affect the output, or whether MIDI notes must already be selected.
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 efficient and free of fluff, but it is under-specified for a tool with seven parameters and no annotations. It is concise in length but does not earn its place by conveying enough operational 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?
The tool has seven parameters, zero schema description coverage, no annotations, and no output schema. The one-line description leaves critical questions unanswered: whether selected notes are required, what happens to the original chord, and how the parameters shape the resulting arpeggio.
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 seven parameters beyond the generic notion of a chord. Parameter names like step_bars, time_bars, and note_duration_bars may hint at meaning, but the description adds no semantics, units, or relationships between them.
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 ('Arpeggiate') and resource ('a chord into sequential notes'), making the tool's core function clear. It does not explicitly differentiate this from sibling tools like piano_roll_add_notes or piano_roll_add_chord, so it loses the top score.
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, nor any mention of prerequisites such as requiring an existing chord selection. The description does not state whether this should be used before or after other piano roll operations.
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 |
|---|---|---|---|
| velocity | No | ||
| time_bars | No | ||
| midi_notes | Yes | ||
| duration_bars | 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 behavioral impact, but it only says 'add a chord.' It does not mention whether existing notes are preserved, how velocity and duration defaults apply, which channel/piano roll is targeted, or whether the operation 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 very short and front-loaded, but it achieves this by omitting essential behavioral and parameter information. It is concise without being adequately informative, so it sits at the minimum viable level.
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 four parameters, no output schema, and no annotations, the description is far too incomplete for an agent to invoke the tool correctly. The required midi_notes parameter is entirely unexplained, and the relationship to the active piano roll context is absent.
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 explanation of the parameters. It does not clarify that midi_notes defines the chord tones, what time_bars means, how duration_bars behaves, or what velocity default 0.8 implies.
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 ('Add') and resource ('chord') and indicates placement at a bar position, which distinguishes it from generic piano_roll tools. It doesn't explicitly contrast with siblings like piano_roll_add_notes or piano_roll_add_arpeggio, but the chord focus is reasonably 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 is provided on when to use this tool versus alternatives such as piano_roll_add_notes or piano_roll_add_arpeggio. There is no mention of prerequisites like selecting a channel or opening the piano roll, nor any exclusion criteria.
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 the currently-open piano roll (works WITHOUT MIDI).
notes: list of {midi: int, time_bars: float, duration_bars: float,
velocity: 0..1, pan?: -1..1}.
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 |
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 usefully reveals the no-MIDI requirement and the exact script/prerequisite setup, but it does not describe whether notes are appended by default, the effect of clear_first, what happens if the piano roll is not open, or the 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?
The purpose is front-loaded in the first sentence, the note shape is compressed into a small code block, and the prerequisites are terse numbered steps. Every sentence earns its place with no repetition or boilerplate.
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 action, the note format, and setup steps, but it omits clear_first semantics and return/error behavior, and the schema provides no textual descriptions to fill that gap. For a mutating tool with no output schema, this leaves enough uncertainty that an agent may misuse the clear-first option or misjudge failure cases.
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 overrides the 0% schema coverage for the nested notes object by listing midi, time_bars, duration_bars, velocity, and pan with useful ranges. It is incomplete, though: it omits the time and duration alternatives and never explains the top-level clear_first parameter that appears in 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 uses a specific verb-resource pair ('Add notes to the currently-open piano roll') and adds a distinctive qualifier ('works WITHOUT MIDI'), which separates it from sibling note-generation tools like add_chord and add_arpeggio. The target context 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?
The numbered 'Before calling' steps give explicit environment preconditions, stating that the target channel's piano roll must be open and the ComposeWithLLM script selected. It does not, however, name alternatives or state when to prefer this over piano_roll_add_chord, add_arpeggio, or clear, so it falls short of explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
piano_roll_clearA
Remove every note in the currently-open piano roll.
| 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. It clearly discloses the destructive behavior: every note in the currently-open piano roll will be removed. It could add more context about irreversibility or undo behavior, but the core mutation is transparently stated.
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, well-structured sentence with no wasted words. It front-loads the action and immediately specifies the scope, making it easy for an agent 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 zero-parameter, no-output-schema tool, the description is complete enough: it states exactly what is removed and where. It could optionally mention whether the action is undoable or limited to the active pattern, but the key information is present.
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 burden. The description correctly identifies the only relevant context, the currently-open piano roll, which serves as the implicit operation target.
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 ('Remove') and a specific resource ('every note in the currently-open piano roll'). It is unambiguous and easy to distinguish from many sibling tools, though it does not explicitly name or differentiate against a sibling like piano_roll_delete_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 intended use is implied: use this when the currently-open piano roll should have all its notes removed. However, there is no explicit guidance about when not to use it or how it compares to alternative tools such as piano_roll_delete_notes or piano_roll_write_patterns.
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 |
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 states that notes are deleted based on a match; it does not explain scope (current pattern, selection, or whole project), exact matching semantics, irreversibility, or what happens to non-matching or malformed entries.
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 definition is a single front-loaded sentence with no filler. Every word contributes to the core operation and matching criterion, making it highly efficient even though more detail would be welcome 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 destructive parameterized tool with no annotations, no output schema, and an essentially undocumented notes array, this description is far from sufficient. An agent cannot reliably construct a valid call because the note object shape, match behavior, and deletion scope are not 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?
The input schema gives the notes parameter no item structure or descriptions, and schema description coverage is 0%. The description provides the only hint that each note object should contain midi and time_bars, but it omits types, ranges, required keys, and whether additional properties are ignored during matching.
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 operation ('Delete notes') and the resource (piano roll notes), and adds a specific matching criterion ({midi, time_bars}). This is enough to distinguish it from broad operations like piano_roll_clear or add/duplicate tools, though it doesn't 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?
There is no guidance about when to use this tool versus alternatives such as piano_roll_clear or piano_roll_duplicate. The matching criterion implies targeted deletion, but the tool never states that partial deletion is its intended role or when the sibling clear-all operation should be preferred.
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 |
|---|---|---|---|
| length_bars | Yes | ||
| dest_time_bars | Yes | ||
| source_time_bars | Yes |
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 behavioral disclosure. It reveals the operation is a copy, implying the source is preserved, but it does not state what happens to existing notes at the destination, whether the copy overwrites or merges, whether it is undoable, or how boundaries are handled. This is a significant gap 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 a single compact sentence with no filler or redundant phrasing, and the core action is front-loaded. It is appropriately concise for a simple three-parameter tool, though it sacrifices behavioral 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?
With no output schema and no annotations, the description needs to supply safety, boundary, and destination-overwrite context, but it provides almost none. An agent cannot tell whether the destination is an insertion point, whether existing notes are cleared, or whether the range includes both endpoints. This is under-specified 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 for the undocumented parameters. While 'time-range' and 'another location' loosely map to source_time_bars, length_bars, and dest_time_bars, the description adds no concrete semantics about units, whether source_time_bars is the start, what length_bars means exactly, or how dest_time_bars is interpreted. The parameter names carry most of the 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 uses a specific verb and resource: 'Copy a time-range of notes to another location.' It clearly conveys a non-destructive duplication operation and is distinct from siblings like piano_roll_delete_notes or piano_roll_transpose. However, it does not explicitly differentiate itself from any sibling tool, so it misses the top score.
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 piano_roll_add_notes, piano_roll_write_pattern, or piano_roll_transpose. It does not state prerequisites, common scenarios, or when not to use it. The intended use is only implicitly inferable from the name and one-line description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
piano_roll_gotoA
Navigate the piano roll viewport to a specific channel × pattern.
Always use this instead of pattern_select / channel_select directly. Uses the sequence: channels.select → patterns.select → ui.openPianoRoll. Does nothing if already on the target pattern.
Args: channel: Channel rack index (0-based). pattern: Pattern index (1-based, as returned by patterns.list).
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ||
| pattern | Yes |
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 discloses the internal call sequence ('channels.select → patterns.select → ui.openPianoRoll') and the idempotent behavior ('Does nothing if already on the target pattern'). It does not mention error behavior or return values, but the core side effects are 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 tight and well-ordered: purpose first, routing guidance second, implementation sequence third, idempotence fourth, and parameter details last. Every sentence adds necessary information with 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 two-parameter navigation command with no output schema and no annotations, the description covers what the tool does, how it relates to siblings, its operational steps, and parameter semantics. It could be slightly more complete by addressing invalid index handling or what 'target pattern' means relative to the channel, but it is largely sufficient 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%, so the description must fully compensate. It does: 'channel: Channel rack index (0-based)' and 'pattern: Pattern index (1-based, as returned by patterns.list)' add indexing conventions and provenance for both parameters, going well beyond the bare 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: 'Navigate the piano roll viewport to a specific channel × pattern.' It clearly differentiates itself from pattern_select and channel_select by naming them and declaring that this tool should be used instead, making its compound 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?
The description provides explicit routing guidance: 'Always use this instead of pattern_select / channel_select directly.' It also outlines the exact operation sequence. However, it does not describe when a caller might prefer the alternative tools (e.g., if only selection is needed without opening the piano roll).
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 |
|---|---|---|---|
| velocity_jitter | No | ||
| timing_jitter_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, but 'Add subtle timing+velocity randomisation' only implies mutation. It does not say whether notes are modified in place, whether randomisation is bounded by the jitter values, whether the operation can be undone, or what happens to existing timing/velocity 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 a single front-loaded sentence with zero filler; it is genuinely concise. However, it achieves conciseness by omitting important operational context, so it is structured efficiently but not optimally informative.
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 only two optional parameters and no output schema, yet critical context is missing: what notes are affected, how jitter values map to real timing/velocity changes, whether the operation is destructive, and whether a selection is required. The description is not sufficient for an agent to confidently invoke 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%, so the description must compensate, but it only repeats the high-level 'timing+velocity' concept. It never maps velocity_jitter to velocity randomization or timing_jitter_bars to timing randomization, nor does it clarify units, value ranges, or the meaning of the 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 names a clear verb-resource pair: 'Add subtle timing+velocity randomisation.' This conveys a distinct humanize function and differentiates it from related piano roll operations like quantize or transpose, though it never states whether it applies to selected notes or the entire 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?
There is no guidance on when to use this tool, what to check before calling it, or which alternatives might be more appropriate. The word 'subtle' suggests a humanizing use case, but the description leaves the selection context and relationship to quantize/undo entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
piano_roll_quantizeB
Snap existing notes to a grid.
| Name | Required | Description | Default |
|---|---|---|---|
| strength | No | ||
| grid_bars | 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. 'Snap existing notes' implies mutation of note positions, but it does not disclose whether the operation is destructive, reversible, or how strength and grid_bars affect the result.
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 core operation without wasted words. It earns its place and is easy to parse.
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, no annotations, and two unexplained parameters, this description is too minimal. It omits critical information such as parameter semantics, target scope, and operation side effects, leaving the agent under-equipped to call the tool 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%, and the description adds no meaning to the two parameters. While 'strength' and 'grid_bars' are somewhat self-descriptive names with defaults, the description does not clarify their ranges, units, or interaction, which the agent would need to invoke the tool 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 states a specific verb ('Snap') and resource ('existing notes') with a target ('to a grid'). It distinguishes this tool from sibling operations like piano_roll_add_notes, piano_roll_humanize, and piano_roll_transpose, even without naming them explicitly.
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, no context about which notes are affected (selection, pattern, all), and no exclusions or prerequisites. Usage is only implied by 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.
piano_roll_readA
Read back the current piano-roll state (returns all notes).
| 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 does state that this is a read operation returning all notes, implying no mutation, but it omits the note data format, the meaning of 'current' (channel, pattern, or selection), and any error or edge-case 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 short, front-loaded sentence communicates the operation and output scope without wasted words. The parenthetical '(returns all notes)' adds useful precision without 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 parameterless read-only tool this is nearly sufficient, but no annotations or output schema exist, so an agent still does not know the note structure or the exact target of 'current'. A brief clarification of the returned note fields or the active context would make it 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 the schema fully covers the input side and there is no parameter ambiguity for the description to clarify. The baseline of 4 is appropriate because no parameter burden 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 the specific verb 'Read back' with a clear resource, the current piano-roll state, and explicitly says the output is 'all notes'. This cleanly distinguishes it from write/edit siblings such as piano_roll_add_notes, piano_roll_delete_notes, and 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 intended use as a read-only getter of current notes is clear, but the description gives no explicit guidance about when not to use it or what alternative to prefer. Sibling tools like piano_roll_status and piano_roll_read_patterns_autolocate exist, yet no comparison is offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
piano_roll_read_patterns_autolocateA
Read notes across patterns using FL's auto-located piano-roll channel.
This avoids explicit channel retargeting/openEventEditor. It changes only the selected pattern, triggers ComposeWithLLM, and records the selected channel FL reports after each pattern switch.
After the sweep, if navigate_after_pattern is provided, FL is left on that pattern (and optionally channel) so the UI is already showing the edit target while the LLM plans its changes. Use this whenever you know ahead of time which pattern will be edited first.
| Name | Required | Description | Default |
|---|---|---|---|
| restore_start | No | ||
| patterns_to_read | No | ||
| navigate_after_channel | No | ||
| navigate_after_pattern | 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 discloses side effects: it 'changes only the selected pattern', 'triggers ComposeWithLLM', records the reported channel, and can leave FL navigated to a target pattern/channel. It does not mention restore_start semantics or return behavior, so a 5 is not warranted.
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 front-loaded with the core purpose, then packs side effects and navigation behavior into a short, well-organized set of paragraphs. Every sentence adds selection or invocation value with 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?
The description covers purpose, side effects, and a concrete use case, but with no output schema and no annotations it also needed to clarify the return format and the meaning of restore_start and patterns_to_read. It is usable for high-level selection but not fully specified for 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 explains navigate_after_pattern and navigate_after_channel ('FL is left on that pattern and optionally channel'). restore_start and patterns_to_read are never described, leaving half the parameters without any meaning beyond their 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?
States a specific verb and object ('Read notes across patterns') plus the method ('using FL's auto-located piano-roll channel'). It differentiates itself by noting it 'avoids explicit channel retargeting/openEventEditor', separating it from sibling piano-roll 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?
Provides a clear trigger condition: 'Use this whenever you know ahead of time which pattern will be edited first', with a rationale about leaving the UI on the edit target. It does not explicitly name alternative tools or state when-not to use it, so it falls just short of a 5.
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 |
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. 'Shift every note' implies an in-place mutation, but it does not disclose whether the operation is destructive, whether it affects all patterns or only the current one, whether it is undoable, or whether it returns any confirmation. For a mutation tool with no annotation safety profile, 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 sentence with no filler. 'Shift every note by N semitones' is direct, front-loaded, and every word contributes meaning. It is appropriately sized for such 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?
Although the tool is simple with one parameter, the description is incomplete for practical use. It omits crucial context about which notes are affected, whether the piano roll must be open or a pattern selected, and what side effects occur. With no annotations and no output schema, the description should provide more operational context, especially because many piano_roll_* siblings operate on a shared implicit 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?
The schema has one required integer parameter, 'semitones', with no description, and schema coverage is 0%. The description adds the meaning that semitones is the interval by which every note is shifted, which is useful but largely restates the parameter name. It does not explain valid ranges, negative values, or upper/lower bounds, so it only partially compensates for the missing schema 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 specific verb and resource: 'Shift every note by N semitones.' This clearly distinguishes it from siblings like piano_roll_quantize, piano_roll_humanize, and piano_roll_duplicate. It loses one point because it does not specify which notes are affected (current pattern, selection, or active piano roll), leaving slight ambiguity about the operation's scope.
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 usage guidance is provided. The description does not say when to prefer this tool over related siblings, whether it requires an active piano roll or selected notes, or when not to use it. The purpose implies usage, but nothing explicit helps an agent choose or avoid this tool in context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
piano_roll_write_patternA
Write notes to a specific channel × pattern using autolocate-style switching.
Mirrors piano_roll_read_patterns_autolocate: switches to the target pattern via patterns.select (no openEventEditor, no visual flicker), selects the channel, then stages a clear+add_notes action sequence and fires Cmd+Opt+Y.
Args: channel: Channel rack index (0-based). pattern: Pattern index (1-based, as returned by patterns.list). notes: List of notes with midi, time_bars, duration_bars, velocity. clear_first: Clear the pattern before writing (default True). restore_start: Restore the original pattern/channel when done (default False — stays on last edited).
Returns: {ok, note_count, hotkey_sent, restored}
| Name | Required | Description | Default |
|---|---|---|---|
| notes | Yes | ||
| channel | Yes | ||
| pattern | Yes | ||
| clear_first | No | ||
| restore_start | 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 it delivers: it discloses the internal mechanism (patterns.select, no openEventEditor), the side effects (clear+add_notes, Cmd+Opt+Y), default destructive behavior (clear_first defaults to True), and selection persistence (restore_start defaults to False, stays on last edited). It also details the return shape. This is exemplarily transparent 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 well-structured: a one-sentence purpose, a brief mechanism paragraph, then Args and Returns sections. Every sentence adds information, and the most important scoping/behavioral details are front-loaded. It is detailed yet compact.
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 no per-property schema descriptions, the description covers the action, mechanism, side effects, parameters, defaults, and return value. It falls just short of complete because it does not disambiguate from piano_roll_write_patterns and does not document all valid note fields.
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 compensates well for top-level parameters: it explains 0-based channel, 1-based pattern, clear_first default, and restore_start behavior. However, the notes parameter is only partially described—it mentions midi, time_bars, duration_bars, and velocity but omits pan, time, and duration, which are present in the schema and could affect how an agent constructs notes.
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 clearly: 'Write notes to a specific channel × pattern using autolocate-style switching.' It identifies the verb, resource, and mechanism without vagueness. However, it does not explicitly distinguish this tool from the sibling piano_roll_write_patterns, so it earns a 4 rather than 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 description gives useful context—this uses patterns.select, avoids visual flicker, and mirrors piano_roll_read_patterns_autolocate—so the agent can infer a use case. But it never explicitly says when to prefer this tool over alternatives such as piano_roll_write_patterns or 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.
piano_roll_write_patternsA
Write notes to multiple channel × pattern pairs sequentially, restoring only at the end.
Mirrors piano_roll_read_patterns_autolocate: iterates through all writes in order without jumping back between each one, then restores to the original pattern/channel once at the very end.
Args: writes: List of {channel: int, pattern: int, notes: [...], current_note_count?: int}. Supply current_note_count from a prior read sweep to skip force_retarget for non-empty patterns. Omit or set to 0/None to always force_retarget (safe default). clear_first: Clear each pattern before writing (default True). restore_start: Restore the original pattern/channel after all writes (default False — stays on last edited).
Returns: {results: [{channel, pattern, ok, note_count, hotkey_sent}], restored}
| Name | Required | Description | Default |
|---|---|---|---|
| writes | Yes | ||
| clear_first | No | ||
| restore_start | 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 meets it: it discloses sequencing, restoration timing, default restore behavior, clearing behavior, force_retarget semantics, and the safe default. It also tells the agent that restore_start default leaves the tool on the last edited pattern, and describes the exact return shape.
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 first-line summary, an explanatory parallel, Args, and Returns. There is slight redundancy between the opening sentence and the 'Mirrors' paragraph, but overall every section earns its place and the most important behaviors are 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?
Despite having no annotations and no output schema, the description is complete enough to call correctly: it documents all parameters, defaults, the writes array internals, the return value, and the key behavioral nuances. Nothing critical appears missing for an agent to select and invoke 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 input schema provides only titles and types; with 0% schema coverage, the description compensates fully. It defines the writes item structure including channel, pattern, notes, and the optional current_note_count, and explains the behavior of clear_first and restore_start including 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?
States a specific verb and resource: writes notes to multiple channel × pattern pairs sequentially. The plural 'patterns' and the explicit mention of multiple pairs distinguish it from the singular sibling piano_roll_write_pattern. The parallel to piano_roll_read_patterns_autolocate reinforces the intended 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?
Explains how this tool should be used in combination with a prior read sweep via current_note_count, and explicitly contrasts its sequential behavior with jumping back between writes. It gives a safety default for force_retarget, but does not explicitly state when to choose this over piano_roll_write_pattern or other alternatives.
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 |
|---|---|---|---|
| name | No | ||
| position_bars | 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, 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 |
|---|---|---|---|
| muted | No | ||
| 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, 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 | ||
| length_bars | No | ||
| position_bars | 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 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 |
|---|---|---|---|
| color | Yes | ||
| track | 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 |
|---|---|---|---|
| name | Yes | ||
| 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 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 |
|---|---|---|---|
| solo | No | ||
| 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 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_activityA
Live activity level per playlist track during playback (all active tracks if track omitted) — confirms which lanes are actually sounding.
| Name | Required | Description | Default |
|---|---|---|---|
| track | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description carries the full burden of behavioral disclosure. It discloses the live, playback-dependent nature and the all-tracks behavior when track is omitted, but does not describe return value details, units, or behavior when playback is stopped.
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 a parenthetical and a clarifying dash clause. It contains no filler, front-loads the core behavior, and every phrase 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 single-parameter read-only tool, the description is mostly sufficient and covers the optional-parameter behavior. However, with no output schema and no return-format description, the agent may know how to invoke the tool but not how to interpret the 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 schema only defines an optional integer/null 'track' with zero description coverage, so the description partially compensates by explaining that omitting the track returns all active tracks. It does not clarify whether the integer is a zero-based playlist track index or how invalid track values are handled.
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 reports live activity levels for playlist tracks during playback and clarifies scope with 'all active tracks if track omitted'. It uses a noun phrase rather than an explicit imperative verb, but 'confirms which lanes are actually sounding' makes the function evident and sets it apart from static playlist info 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 the tool is intended for use during playback to check which playlist tracks are audibly active, and it explains the effect of omitting the track parameter. It does not explicitly name alternatives or state when not to use it, leaving some routing to inference from context.
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 |
|---|---|---|---|
| slot | No | ||
| index | Yes | ||
| location | No | channel | |
| name_contains | 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 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 |
|---|---|---|---|
| slot | No | ||
| index | Yes | ||
| param | Yes | ||
| 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 |
|---|---|---|---|
| slot | No | ||
| index | Yes | ||
| 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 |
|---|---|---|---|
| slot | No | ||
| index | Yes | ||
| 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 |
|---|---|---|---|
| slot | No | ||
| index | Yes | ||
| 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 |
|---|---|---|---|
| slot | No | ||
| index | Yes | ||
| 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 |
|---|---|---|---|
| slot | No | ||
| index | Yes | ||
| limit | No | ||
| offset | No | ||
| location | No | channel |
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 |
|---|---|---|---|
| slot | No | ||
| index | Yes | ||
| 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 |
|---|---|---|---|
| slot | No | ||
| index | Yes | ||
| 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 |
|---|---|---|---|
| slot | No | ||
| index | Yes | ||
| param | Yes | ||
| value | Yes | ||
| 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 |
|---|---|---|---|
| slot | No | ||
| index | Yes | ||
| preset | Yes | ||
| 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 |
|---|---|---|---|
| show | No | ||
| slot | No | ||
| index | Yes | ||
| location | No | channel |
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_dump_score_logA
Dump the last N seconds of notes the USER PLAYED (even without recording) into the selected pattern — 'turn what I just jammed into a pattern'. Select/create the target pattern first.
| Name | Required | Description | Default |
|---|---|---|---|
| silent | No | ||
| seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior itself. It usefully reveals that notes are captured even without recording and that the target is the selected pattern. However, it does not state whether existing pattern content is replaced, merged, or appended, nor whether the operation is undoable or what 'silent' affects.
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 plus a short prerequisite sentence. It front-loads the core action and adds the key 'even without recording' qualifier without wasting 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 2-parameter tool with no annotations and no output schema, the description covers the main operation and the key prerequisite well. However, it omits side-effect semantics on the target pattern and the meaning of 'silent', which an agent needs to call it safely and predictably.
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 'seconds' via 'last N seconds of notes', but 'silent' is never described despite being a parameter with a default. The description covers half the parameters but leaves the other half to inference from its 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 uses a specific verb ('Dump') and resource ('last N seconds of notes the USER PLAYED even without recording') with a clear destination: the selected pattern. The quoted phrase 'turn what I just jammed into a pattern' reinforces intent and distinguishes it from other pattern/writing 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 gives an explicit prerequisite: 'Select/create the target pattern first.' This tells the agent the required prior state. It does not explicitly name alternative tools or when not to use it, but the context of capturing user-played notes is clear.
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 |
|---|---|---|---|
| mode | No | song | |
| path | Yes | ||
| format | No | wav |
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.
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 |
|---|---|---|---|
| unit | No | bars | |
| position | 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 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_stopB
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 provided, the description carries the full burden of behavioral disclosure, and it only restates the obvious side effect of stopping. It does not disclose whether the playhead position is preserved or reset, whether recording is also stopped, whether the command is idempotent, or what transport_status would report afterward.
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 words with zero waste; the action is front-loaded and entirely on point. For a zero-parameter tool this is an appropriately minimal description.
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 complexity (no params, no output schema), the description covers the core action adequately. It is missing small but useful context that an agent would need to reason about side effects, such as whether stop applies to recording and what happens to the playback position, and it does not reference related transport_status for verification.
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 empty, so there is nothing for the description to explain. The baseline of 4 applies since 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 states a specific verb ('Stop') and resource ('playback'), making the core action unambiguous. It is self-differentiating from obvious siblings like transport_play and transport_record, though it does not explicitly clarify whether it also halts an active recording.
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?
Usage is implied rather than stated: an agent can infer this tool is used when playback should be halted. However, there is no explicit guidance on when not to use it (e.g., for pausing, toggling, or stopping a recording) and no named alternatives.
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_pluginA
Name/caption of the plugin editor window that currently has focus.
| 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 disclosure burden. It does convey the core behavior—returning the name/caption of the currently focused plugin editor—but it does not cover edge cases such as what happens when no plugin editor has focus. For a zero-parameter read tool, 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 compact sentence with no filler. Every word contributes to defining the output and the focus condition, making it highly 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 parameterless getter with no output schema, the description supplies the essential return contract: the name/caption of the focused plugin editor window. It does not specify fallback behavior when no plugin editor is focused, but no additional information is required to invoke 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?
The tool has no parameters and the schema is an empty object, so the baseline of 4 applies. There is no parameter information for the description to add beyond what the empty schema already conveys.
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 that the tool returns the name/caption of the plugin editor window that currently has focus, which clearly identifies the resource and focus condition. It is distinguishable from siblings like ui_focused_window and plugin_name, but it lacks an explicit verb such as 'gets' or '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 provides no guidance on when to use this tool versus alternatives like ui_focused_window or plugin_name. It implies a focused plugin editor context but does not state exclusions or direct the agent toward a sibling tool.
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_get_snap_modeA
Current global snap mode (affects playlist + piano roll editing).
| 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. It conveys that the tool is a non-mutating read of global state, but it does not explicitly state that it has no side effects or describe the returned snap mode format. For a zero-parameter getter this is acceptable 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?
The description is one short, front-loaded sentence that states the core purpose and relevant scope. Every word earns its place, with no filler or redundant 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 no-argument getter, the description is mostly sufficient, but there is no output schema and the description does not hint at what values 'snap mode' can return. An agent could invoke the tool correctly but may not know how to interpret the result 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?
There are no parameters, so the schema and description are fully aligned and there is nothing additional to explain. The description adds context about the global scope and editing contexts, which is relevant despite the absence of 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 tool returns the current global snap mode and scopes its relevance to playlist and piano roll editing. The word 'current' plus the get_ prefix distinguishes it from the sibling ui_set_snap_mode 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 provides clear context that this is a read-style query for the current snap mode, which is enough to tell when to use it. It does not explicitly name ui_set_snap_mode as the alternative for changing snap mode, but the get/set sibling pair makes the usage boundary obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ui_hide_windowC
Close a main window.
| Name | Required | Description | Default |
|---|---|---|---|
| name | 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 explaining side effects and safety. It only says 'Close a main window' and does not clarify whether this hides the window, affects focus, or is reversible, and it uses 'close' rather than the tool name's 'hide' wording.
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 and front-loaded, with no wasted words; the basic action is immediately clear. However, its terseness sacrifices useful context, so it is efficient but not fully developed.
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 and no output schema, a single clause is insufficient to know side effects, return behavior, or when to choose among the enum options. The enum provides allowed values, but the description leaves important operational context 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 has one required enum parameter, but the description never states that 'name' selects which main window to close or explains what the enum values refer to. With 0% schema-description coverage, the description does not compensate for the missing parameter semantics; only the enum list partially helps.
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 ('Close') and resource ('a main window'), and the schema's enum makes the intended targets explicit. It is distinguishable from the sibling ui_show_window by its opposite action, though it does not explicitly name that sibling.
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 call this tool versus ui_show_window or other UI management tools. No prerequisites, exclusions, or alternative conditions are provided, so the agent must infer usage from the 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.
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_channelA
Switch the piano roll to show a given channel/pattern without closing the window.
In one-channel-per-pattern mode, selecting the pattern causes FL to auto-select its channel and update the piano roll viewport — no openEventEditor call needed (which would cause the window to disappear and reappear). openEventEditor is only called as a last resort when the channel still doesn't match after the pattern switch.
| 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 carries the full burden, and it does well: it discloses that the window will not close, that selecting a pattern can auto-select the channel, and that openEventEditor is only invoked as a last resort. It is honest about the fallback behavior, though it does not cover error cases or what happens if the channel/pattern cannot be matched.
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 core purpose, and the second paragraph earns its place by explaining an important behavioral nuance. There is no redundant wording or unnecessary repetition of the schema.
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 behavioral context is strong, but the description leaves gaps in parameter semantics and does not mention return/error behavior. For a tool with no output schema and no annotations, it is adequate but not fully complete for an agent to confidently invoke it in all edge cases.
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 explain parameter meaning, but it only refers to 'a given channel/pattern' and 'pattern switch.' It does not clarify that channel is a required integer, that pattern is optional and defaults to null, what IDs mean, or how the two parameters interact.
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 first sentence clearly states the action—switching the piano roll to show a given channel/pattern—and adds the important qualifier 'without closing the window.' It is specific and not a tautology, but it does not explicitly differentiate from sibling tools like piano_roll_goto or ui_scroll_to_channel, so it falls just 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 description gives useful context about one-channel-per-pattern mode and when openEventEditor is used as a fallback, but it never explicitly says when to choose this tool over its siblings. The usage guidance is implied rather than stated as clear conditions or exclusions.
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_set_snap_modeA
Set the global snap mode. Accepts a name ('bar', 'beat', 'half_beat', 'step', 'line', 'cell', 'none', ...) or a numeric midi.Snap_* value.
Set this BEFORE any GUI clip placement/moves in the playlist so clicks land on the grid; restore the previous mode afterwards.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes |
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 discloses that this is a global, persistent setting and warns to restore the previous mode afterward, which is important side-effect information. It does not mention error handling or return values, but for a simple setter this is acceptable.
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 compact sentences with no filler. The main action and accepted value forms are front-loaded, and the usage timing/restore guidance is included without 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 single-parameter setter with no output schema and no annotations, the description supplies the essential usage context, accepted values, and a warning about global state. It could additionally point to ui_get_snap_mode for capturing the previous value, but the instruction to restore is still clear.
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 says 'mode' is a required string with 0% description coverage, so the description must compensate. It does so by listing concrete accepted values ('bar', 'beat', 'half_beat', 'step', 'line', 'cell', 'none', ...) and the alternative numeric midi.Snap_* form. This is enough for an agent to construct a valid argument, though not an exhaustive enumeration.
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 ('global snap mode'), immediately distinguishing this from the sibling reader ui_get_snap_mode. It also enumerates accepted forms of the mode value, removing ambiguity about what the 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 description gives clear operational context: set this before GUI clip placement/moves in the playlist so clicks land on the grid, and restore the previous mode afterward. It does not explicitly name alternatives or when not to use it, but the call-site guidance is concrete and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ui_show_windowA
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?
With no annotations, the description carries the behavioral disclosure burden. It states the primary effect (open or focus) and target scope, but it does not clarify what happens when the window is already open, what focus=false does, or whether UI focus is stolen as a side effect.
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 the action verb front-loaded. It contains no filler, no repetition of the tool name, and no re-stating of 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 UI show operation, the schema's enum and default values cover most invocation details and the description states the core action. However, it does not explain the 'plugin' window case, the effect of focus=false, or any return/failure behavior, leaving some practical 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 description coverage is 0%, so the description should compensate for the parameters. It only hints at the name parameter via 'by name' and leaves the focus boolean unexplained, including when to set it to false. The 'plugin' enum value also remains 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 uses concrete verbs 'Open / focus' and names the resource as 'a main window by name,' which clearly distinguishes it from query tools like ui_focused_window and the complementary ui_hide_window. The scope is specific and matches the enum values in 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?
There is no explicit when-to-use or alternatives section, but 'by name' and 'main window' establish a clear invocation context. It does not mention exclusions or links to sibling tools like ui_hide_window, so the guidance is clear but not fully directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Domain prefixes make most tools recognizable, but there are several near-overlapping pairs such as mixer_fx_slots vs plugin_list_mixer_track, multiple status/peak/activity tools, and several piano_roll write variants. The descriptions disambiguate reasonably well, but an agent could still misselect between the many list/status/select tools.
The naming is overwhelmingly consistent with a resource_prefix + action + target convention like channel_set_volume, transport_set_tempo, and playlist_add_marker. A few outliers such as channel_all, pattern_count, plugin_params, and the fl_* bridge helpers break the verb pattern slightly, but the overall convention is predictable and readable.
160 tools is far beyond the 25+ threshold and creates significant discoverability and maintenance overhead. The broad DAW domain justifies some size, but many tools could be consolidated—especially peak/activity variants, FX-slot listing tools, and the multiple piano_roll write sweeps—so the set does not feel well-scoped.
The surface is remarkably broad, covering transport, patterns, channels, mixer, plugins, playlist, automation, project, UI, browser, and piano roll with both read and write operations. Minor gaps remain—no explicit channel/mixer-track creation or deletion, and limited clip edit operations like move/resize—but core workflows have no serious dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Create, co-edit, analyze, publish, and export collaborative step-sequencer sessions through MCP.
MCP server for Producer/Riffusion AI music generation
MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent
Drive WhatsApp from any MCP client: pair devices, send text and media, manage contacts and groups.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceAn MCP server that enables remote control and automation of FL Studio via the flapi Python client. It provides tools for managing transport, mixer tracks, pattern sequencing, and plugin parameters, allowing users to execute Python code directly within the FL Studio environment.2
- 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.
- AlicenseNot gradedqualityDmaintenanceEnables controlling FL Studio on macOS via MCP, including transport, mixer, channel, MIDI export, and Piano Roll note insertion.MIT
- AlicenseNot gradedqualityBmaintenanceLocal MCP server for FL Studio on macOS, enabling control of projects, transport, mixer, plugins, automation, and piano roll operations.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/marconadas/MacFLStudioMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server