Skip to main content
Glama
TypeWolf

lmms-mcp

by TypeWolf

LMMS MCP Server

An MCP (Model Context Protocol) server for LMMS - the free, open-source digital audio workstation. Lets AI agents create, modify, and save LMMS music projects programmatically.

Features

  • Create & save LMMS projects (.mmpz compressed, .mmp XML)

  • Add tracks: Instrument, Sample, Pattern (Beat/Bassline), Automation

  • Add notes with MIDI key, position, velocity, and panning

  • Effects: 18 built-in effects on tracks and mixer channels (delay, reverb, EQ, compressor...)

  • ZynAddSubFX presets: Load any of ~950 factory instruments (.xiz), tune parameters

  • Arrangement: Place patterns, BB clips and audio clips on the song timeline

  • Automation: Tempo ramps, volume swells, panning curves - linked to real LMMS models

  • Mixer control: Create channels, set volume, name channels

  • Song settings: Tempo (BPM), time signature, master volume/pitch

  • Musical utilities: Note name conversion, scale generation, tick/bar conversion

  • Full project inspection: Read tracks, patterns, notes, mixer channels

Related MCP server: OpenUtau-MCP

Installation

pip install lmms-mcp

Or from source:

git clone https://github.com/TypeWolf/lmms-mcp.git
cd lmms-mcp
pip install -e .

Requirements

  • Python 3.10+

  • An MCP host (opencode, Claude Desktop, Cursor, etc.)

Quick Start

With opencode

Add to your opencode.json:

{
  "mcp": {
    "lmms": {
      "type": "local",
      "command": ["python", "-m", "lmms_mcp"],
      "environment": {
        "LMMS_PROJECTS_DIR": "/path/to/your/lmms/projects"
      }
    }
  }
}

With Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "lmms": {
      "command": "python",
      "args": ["-m", "lmms_mcp"],
      "env": {
        "LMMS_PROJECTS_DIR": "/path/to/your/lmms/projects"
      }
    }
  }
}

Run directly

python -m lmms_mcp

Tools

Project Management

Tool

Description

create_project

Create a new empty LMMS project

load_project

Load an existing .mmpz or .mmp file

save_project

Save the current project

get_project_info

Get project overview (tempo, tracks, mixer)

get_project_xml

Get raw XML of the project

Track Operations

Tool

Description

add_instrument_track

Add a synthesizer/sampler track

add_sample_track

Add an audio sample track

add_automation_track

Add a parameter automation track

add_pattern_track

Add a beat/bassline pattern track

remove_track

Remove a track by index

get_track

Get detailed track information

list_tracks

List all tracks with summary

set_track_volume

Set track volume (0-200)

set_track_panning

Set track panning (-100 to +100)

mute_track

Mute/unmute a track

solo_track

Solo/unsolo a track

Notes & Patterns

Tool

Description

add_note

Add a note by MIDI key number

add_note_by_name

Add a note by name (e.g. "C4", "A#3")

add_notes_batch

Add multiple notes at once

Mixer

Tool

Description

add_mixer_channel

Create a new mixer channel

get_mixer_channels

List all mixer channels

set_mixer_channel_volume

Set channel volume

set_mixer_channel_name

Rename a channel

Song Settings

Tool

Description

set_tempo

Set BPM (10-999)

set_time_signature

Set time signature (e.g. 4/4, 3/4)

set_master_volume

Set master volume (0-200)

set_master_pitch

Set master pitch (-12 to +12 semitones)

Effects (FX Chain)

Tool

Description

add_effect

Add a built-in effect to a track or mixer channel

remove_effect

Remove an effect by name or chain position

toggle_effect

Enable/bypass an effect without removing it

get_effect_chain

List all effects on a track or mixer channel

ZynAddSubFX Presets & Parameters

Tool

Description

list_zyn_presets

Browse ~950 factory presets (.xiz) by category

load_zyn_preset

Load a preset into a zynaddsubfx track

set_zyn_params

Set portamento, filter, FM gain, resonance etc.

Arrangement (Song Editor Timeline)

Tool

Description

place_pattern

Place an empty pattern clip on an instrument track

place_bb_clip

Trigger a BB pattern at a given time

place_sample_clip

Place an audio file clip on a sample track

assign_sample_file

Assign/replace the audio file on sample clips

move_clip

Move a clip to a new position

delete_clip

Delete a clip at a position

get_arrangement

Full timeline overview of all clips

Automation

Tool

Description

add_automation

Create automation curves for tempo, master volume/pitch, track volume/panning and mixer channel volume

LMMS App Integration

Tool

Description

get_lmms_info

Detect installed LMMS version + available plugins

render_project

Export to WAV/FLAC/OGG/MP3 via headless LMMS render

The server reads and writes project files directly - it never launches the LMMS GUI. The installed LMMS is only used for: preset discovery, plugin availability checks (warns about plugins your version lacks, e.g. SlicerT/Xpressive require LMMS 1.3+) and audio rendering.

Custom Plugins & VST

Tool

Description

list_available_plugins

Dynamically list ALL installed plugins (incl. custom ones)

scan_vst_directory

Find VST .dll files in a folder

add_vst_track

Add a track hosting a VST plugin (Vestige)

Custom LMMS plugins dropped into the plugins folder are detected automatically and can be used directly by name - no server update needed.

Utilities

Tool

Description

note_name_to_key

Convert note name to MIDI number

key_to_note_name

Convert MIDI number to note name

bars_to_ticks_converter

Convert bars to ticks

ticks_to_bars_converter

Convert ticks to bars

generate_scale

Generate a musical scale

Resources

URI

Description

lmms://project/info

Current project information

lmms://project/tracks

All tracks in the project

lmms://project/mixer

All mixer channels

lmms://project/xml

Raw project XML

lmms://reference/instruments

Available LMMS instruments

lmms://reference/effects

Available LMMS effects

lmms://reference/note_names

MIDI note name mapping

lmms://reference/scales

Available musical scales

Prompts

Name

Description

create_basic_song

Create a song structure with drums, bass, melody

add_drum_pattern

Generate a drum pattern (four-on-the-floor, breakbeat, etc.)

create_melody

Generate a melody in a given scale

mix_and_arrange

Mix and arrange the current project

export_project

Export/save the project

LMMS Concepts

Concept

Value

Ticks per bar

192 (in 4/4 time)

Default tempo

140 BPM

Note 60

C4 (middle C)

Note 69

A4 (440 Hz)

Volume range

0-200 (100 = normal)

Panning range

-100 (left) to +100 (right)

Track type 0

Instrument

Track type 1

Pattern (Beat/Bassline)

Track type 2

Sample

Track type 5

Automation

Available Instruments

All built-in LMMS instruments (verified against LMMS source). LMMS has no plugin download mechanism - only these can be used:

Plugin ID

Name

tripleoscillator

Three-oscillator subtractive synth (default)

kicker

Kick drum synth

audiofileprocessor

Audio file player/sampler

organic

Additive organ synth

malletsstk

Physical modeling mallets (STK)

lb302

TB-303 style acid bass

monstro

Powerful 3-oscillator polyphonic synth

freeboy

Game Boy sound chip emulator

nes

NES 8-bit sound chip emulator

sid

Commodore 64 SID chip emulator

sfxr

Retro sound effect generator

opulenz

OPL3 FM synthesizer

watsyn

4-oscillator wavetable-style synth

xpressive

Expressive mono lead synth

zynaddsubfx

ZynAddSubFX powerful feature-rich synth

sf2player

SoundFont (.sf2) sample player

vibedstrings

Vibrating string physical model

bitinvader

Bit-crushed wavetable synth

patman

GUS patch sampler

gigplayer

GIG sample library player

slicert

Beat slicer for audio loops

vestige

VST plugin host (Windows only)

Available Effects

Built-in LMMS effects for add_effect: amplifier, bassbooster, bitcrush, compressor, crossovereq, delay, dispersion, dualfilter, dynamicsprocessor, eq, flanger, frequencyshifter, multitapecho, reverbsc, slewdistortion, stereoenhancer, stereomatrix, waveshaper.

Typical chains:

  • Lead synth: delay -> reverbsc

  • Vocals: eq -> compressor -> reverbsc

  • Master bus: eq -> compressor -> stereoenhancer

Environment Variables

Variable

Default

Description

LMMS_PROJECTS_DIR

~/Desktop/Media/lmms/AI-Projects

Default directory for saving projects

LMMS_PRESETS_DIR

auto-detected

Path to ZynAddSubFX presets folder (data/presets/ZynAddSubFX)

LMMS_EXECUTABLE

auto-detected

Path to lmms.exe (for version/plugin checks and rendering)

Configuration

opencode.json

{
  "mcp": {
    "lmms": {
      "type": "local",
      "command": ["python", "-m", "lmms_mcp"],
      "cwd": ".",
      "enabled": true,
      "environment": {
        "LMMS_PROJECTS_DIR": "C:\\Users\\you\\Music\\LMMS\\Projects"
      }
    }
  }
}

claude_desktop_config.json

{
  "mcpServers": {
    "lmms": {
      "command": "python",
      "args": ["-m", "lmms_mcp"],
      "env": {
        "LMMS_PROJECTS_DIR": "/home/you/music/lmms/projects"
      }
    }
  }
}

Development

# Clone and install
git clone https://github.com/TypeWolf/lmms-mcp.git
cd lmms-mcp
pip install -e ".[dev]"

# Run tests
pytest

# Run in development mode
mcp dev src/lmms_mcp/server.py

License

MIT License - see LICENSE for details.

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

Available Tools

52 tools
add_automationA

Create an automation curve that controls a parameter over time.

Automatable targets:

  • song + tempo: Song BPM (e.g. tempo ramps)

  • song + master_volume / master_pitch

  • track + volume / panning (target_index = track index)

  • mixer + volume (target_index = mixer channel number)

Args: target_type: "song", "track" or "mixer" param: Parameter name (see above) points: Curve points as list of {"bar": float, "value": float}. Example: [{"bar": 0, "value": 120}, {"bar": 8, "value": 140}] target_index: Track index or mixer channel (ignored for "song") name: Automation name (defaults to parameter name) smooth: True = smooth curves (cubic), False = linear steps

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
paramYes
pointsYes
smoothNo
target_typeYes
target_indexNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It explains the action but omits side effects, prerequisites (e.g., whether an existing track is required), or whether existing automation is replaced. It also does not describe error behavior or limitations.

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

Conciseness5/5

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

The description is well-structured, using bullet points for targets and parameters. It is concise, with no unnecessary verbosity, and each piece of information is relevant and directly tied to the tool's operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core action and parameters but does not mention preconditions (e.g., an active project) or what the tool returns. Although an output schema exists, it is not shown, and the description alone does not provide complete context for a successful call.

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

Parameters5/5

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

The description thoroughly explains every parameter: 'target_type' with allowed values, 'param' with examples, 'points' with the structure and example, 'target_index' with its meaning for each target type, 'name' with default behavior, and 'smooth' with true/false semantics. This fully compensates for the schema's lack of descriptions (0% coverage).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the function: 'Create an automation curve that controls a parameter over time.' It lists all automatible targets (song, track, mixer) and parameters, which distinguishes it from the sibling tool 'add_automation_track' that likely creates a track instead of a curve.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides implicit guidance by enumerating the targets and parameters, making it clear this is for creating automation curves. However, it does not explicitly compare to 'add_automation_track' or state when to prefer this tool, so it falls short of full explicitness.

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

add_automation_trackC

Add an automation track for parameter automation.

Args: name: Track name

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoAutomation track

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral disclosure burden. It only says 'Add...' with no mention of project prerequisites, side effects, duplicate-name behavior, or whether the operation appends to the current project. The mutation nature is clear, but the consequences are not.

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

Conciseness4/5

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

The main sentence is front-loaded and concise, stating the action and purpose immediately. The 'Args:' block is redundant with the input schema and adds minor noise, but the overall structure remains efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple and has an output schema, but the description still omits prerequisites such as a loaded project and gives no usage boundary or relationship to sibling tools. An agent gets no guidance on when to choose an automation track over other track types.

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

Parameters1/5

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 compensate for the parameter, but 'Args: name: Track name' merely restates the schema's own string property title. It does not explain that the parameter is optional, how the default value behaves, or any constraints on valid names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States 'Add an automation track' with a specific verb, resource, and purpose ('for parameter automation'). It is clearly distinguishable from sibling track-creation tools like add_instrument_track, add_sample_track, and add_pattern_track, as well as from add_automation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit when-to-use or alternative guidance. It never references sibling tools such as add_automation or the other add_*_track tools, leaving the agent to infer context from the phrase 'for parameter automation'.

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

add_effectA

Add an effect to a track's or mixer channel's effect chain.

Args: target_type: "track" or "mixer" target_index: Track index or mixer channel number (0=Master) effect: Built-in LMMS effect name. Valid: amplifier, bassbooster, bitcrush, compressor, crossovereq, delay, dispersion, dualfilter, dynamicsprocessor, eq, flanger, frequencyshifter, multitapecho, reverbsc, slewdistortion, stereoenhancer, stereomatrix, waveshaper wet: Wet/dry mix 0.0-1.0 (1.0=full effect) enabled: Whether the effect is active position: Chain position to insert at (None=end of chain)

ParametersJSON Schema
NameRequiredDescriptionDefault
wetNo
effectYes
enabledNo
positionNo
target_typeYes
target_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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 adds helpful behavioral details such as valid effect names, wet/dry range (0.0-1.0), mixer index 0=Master, and position None=end. However, it does not disclose mutation side effects, error handling, or whether inserting at a position replaces an existing effect.

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

Conciseness5/5

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

The description is compact and well-structured: a one-sentence summary followed by a clear Args list. Every line adds necessary information, and the effect-name enumeration is repetitive but essential for correct invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 6 parameters, no annotations, and an output schema present, the description is complete enough for correct invocation. It covers all parameter meanings, valid values, and insertion semantics. Error behavior is not described, but all invocation-critical details are present.

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

Parameters5/5

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

Schema description coverage is 0%, so the Args block must compensate, and it does. It documents all six parameters with concrete semantics: target_type values, target_index meaning, the complete list of valid effect names, wet range, enabled flag, and position insertion behavior. This goes well beyond the bare schema types and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific action and resource: 'Add an effect to a track's or mixer channel's effect chain.' The sibling tools remove_effect, toggle_effect, and get_effect_chain make the differentiation clear, so an agent can immediately understand what this tool does versus its alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context about target type ('track' or 'mixer') but does not explicitly state when to use this tool instead of remove_effect, toggle_effect, or get_effect_chain. The intended usage is implied by the verb and sibling names rather than stated with exclusion criteria.

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

add_instrument_trackA

Add an instrument track to the project.

Args: name: Track name (e.g. "Lead Synth", "Bass") instrument: Plugin name (lowercase). Valid options: tripleoscillator, kicker, audiofileprocessor, organic, malletsstk, freeboy, lb302, monstro, nes, opulenz, patman, sf2player, sfxr, sid, slicert, vibedstrings, watsyn, xpressive, zynaddsubfx, gigplayer, bitinvader mixer_channel: Mixer channel number (0=Master, 1+=custom channels) volume: Track volume (0-200, 100=normal) panning: Track panning (-100 to +100, 0=center)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
volumeNo
panningNo
instrumentNotripleoscillator
mixer_channelNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden for behavioral disclosure. It only states the add action and parameter ranges; it does not mention whether an existing project is required, whether the addition is reversible, how mixer channels are affected, or any failure behavior. The description adds only core-purpose information.

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

Conciseness5/5

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

The description is front-loaded with a one-line summary and followed by a compact Args block. Every line provides necessary parameter information, including a valuable enum-style list for instrument choices. There is no filler or unnecessary repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Parameter coverage is thorough and the presence of an output schema means return values do not need to be described. The main gap is the lack of context about requiring an active project and how adding an instrument track relates to mixer channels or other project state, but the description is otherwise sufficient for successful invocation.

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

Parameters5/5

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

Schema description coverage is 0%, and the Args section fully compensates by documenting all five parameters: name with examples, instrument with the complete lowercase plugin list, mixer_channel with 0=Master semantics, volume range 0-200, and panning range -100 to +100. This adds substantial meaning beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Add an instrument track to the project,' which clearly distinguishes this tool from sibling track-creation tools like add_sample_track, add_automation_track, and add_pattern_track. The track type is explicit, so an agent can understand the tool's role immediately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 the many sibling track/mixer tools, nor any mention of prerequisites such as needing an open project. The tool name implies usage, but the description provides 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.

add_mixer_channelA

Add a new mixer channel.

The channel is automatically routed to Master via an explicit element - LMMS drops the implicit connection when loading, so channels without it would be silent.

Args: name: Channel name (e.g. "Drums", "Bass", "Lead") volume: Channel volume (0.0-2.0, 1.0=0dB)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
volumeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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, and it does so by revealing a non-obvious gotcha: the channel is routed to Master via an explicit <send> element because LMMS drops the implicit connection, otherwise the channel is silent. This is precisely the kind of side effect an agent needs to know. It does not mention project-state implications such as requiring a loaded project.

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

Conciseness5/5

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

Three short sentences plus a compact Args list; every sentence earns its place. The crucial routing warning is front-loaded immediately after the main action, and there is no padding or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is largely complete for invocation: it covers the required name parameter, optional volume semantics, and the critical routing behavior. The presence of an output schema partially lessens the need to document return values, though it omits the prerequisite of a loaded/current project and how the new channel is referenced by later sibling calls.

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

Parameters5/5

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

Schema coverage is 0%, but the Args section fully compensates by providing name examples ('Drums', 'Bass', 'Lead') and explaining the volume range (0.0-2.0) and the meaning of 1.0 as 0dB. Without this text, the volume default would be opaque and value validation impossible.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Add a new mixer channel,' a specific verb and resource that exactly names the operation. The subsequent detail about routing to Master and the sibling set (get_mixer_channels, set_mixer_channel_volume) make the target resource unambiguous and distinct from track-adding tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool—whenever a new mixer channel is needed—but provides no explicit when-not-to-use guidance or comparison with sibling tools such as set_mixer_channel_volume or add_effect. An agent must infer that this is the creation step and that modifications belong to other tools.

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

add_noteA

Add a note to a track's pattern.

Args: track_index: Zero-based track index (must be an instrument or pattern track) key: MIDI note number (0-127). 60=C4 (middle C), 69=A4 pos: Position in ticks RELATIVE TO THE PATTERN START (192 ticks = 1 bar). Notes are placed inside the target pattern; if a note ends beyond the pattern clip length, the clip is extended automatically (notes beyond the clip end would otherwise be silent). length: Note length in ticks (48 = 1/16 note, 96 = 1/8 note, 192 = 1 bar) volume: Note velocity (0-200, 100=normal) panning: Note panning (-100 to +100) pattern_index: Which pattern on the track to edit (default: first). Use place_pattern to create additional patterns at specific song positions first.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNo
posNo
lengthNo
volumeNo
panningNo
track_indexYes
pattern_indexNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden. It discloses important behaviors: notes are placed inside the target pattern, clips are extended automatically when notes exceed the pattern length, and notes beyond the clip end would be silent. It also clarifies the effect of pattern_index and the prerequisite of using place_pattern.

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

Conciseness5/5

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

The description is front-loaded with a one-sentence purpose and then uses a tightly organized Args block. Each parameter line adds meaningful operational detail without fluff, making the length appropriate for a 7-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity, zero annotation coverage, and 0% schema description coverage, the description provides everything needed to call the tool correctly: all parameter semantics, edge-case behavior, constraints, and a prerequisite pointer. Since an output schema is present, not describing the return value is acceptable.

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

Parameters5/5

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

Schema description coverage is 0%, so the description fully compensates. Every parameter is explained with units, ranges, defaults, or examples: key maps 60=C4 and 69=A4, pos uses ticks with 192 ticks per bar, length gives note equivalents, volume spans 0-200, panning spans -100 to +100, and pattern_index has its default and prerequisite explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear, specific statement: 'Add a note to a track's pattern.' This identifies both the action and the target resource, and the MIDI-note-number parameter distinguishes it from siblings like add_note_by_name and add_notes_batch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides concrete usage constraints: the track must be an instrument or pattern track, positions are relative to the pattern start, and place_pattern should be used to create additional patterns first. It does not explicitly contrast this tool with add_note_by_name or add_notes_batch, but the intended context is clearly conveyed.

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

add_note_by_nameB

Add a note using a note name (e.g. 'C4', 'A#3', 'F#5').

Args: track_index: Zero-based track index note_name: Note name like 'C4', 'A#3', 'F5', 'Bb2' pos: Position in ticks (192 ticks = 1 bar) length: Note length in ticks (48 = 1/16, 96 = 1/8, 192 = 1 bar) volume: Note velocity (0-200)

ParametersJSON Schema
NameRequiredDescriptionDefault
posNo
lengthNo
volumeNo
note_nameNoC4
track_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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 explains parameter units and formats, but it does not mention side effects, prerequisites such as an active project or existing track, state mutation, or what the output contains. The 'Add' verb implies mutation but leaves operational context undisclosed.

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

Conciseness5/5

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

The description is compact, front-loaded with the primary purpose, and then uses a clean Arg list. Every line provides useful information with no filler or repetition of the schema types.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The parameter semantics are complete enough for invocation, and an output schema exists so return values need not be described. However, the description lacks usage context such as when to prefer this over add_note or add_notes_batch, and it does not state prerequisite conditions like a loaded project or valid track. This leaves selection and error-prevention incomplete.

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

Parameters5/5

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

Schema description coverage is 0%, so the description fully compensates. Every parameter is explained with meaningful detail: track_index is zero-based, note_name uses a note-name format, pos and length are in ticks with concrete values, and volume has a range of 0-200. Examples clarify the expected string formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states what the tool does: 'Add a note using a note name' with concrete examples like 'C4', 'A#3', and 'F#5'. It names the resource and the operation, but it does not explicitly distinguish itself from the sibling tools add_note and add_notes_batch beyond the by-name hint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance about when to use this tool versus add_note, add_notes_batch, or note_name_to_key. There is no mention of alternatives, exclusions, or conditions that would help an agent choose this tool over its siblings.

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

add_notes_batchA

Add multiple notes to a track at once.

Args: track_index: Zero-based track index notes: List of note objects, each with: key (int or str like "C4"), pos (ticks), length (ticks, default 48), volume (0-200, default 100), panning (-100 to +100, default 0)

ParametersJSON Schema
NameRequiredDescriptionDefault
notesYes
track_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full behavioral disclosure burden. It only states the mutating action 'Add' and then focuses on parameter defaults/ranges. It does not disclose whether notes are appended or replace existing notes, whether the track must pre-exist, how invalid values are handled, or any side effects. 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.

Conciseness5/5

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

The description is compact and well-organized: a one-line summary followed by a clear Args block. Every sentence earns its place, and the essential information is front-loaded. There is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, the return value is covered elsewhere, so that gap is acceptable. The description thoroughly documents all input parameters and defaults. The main missing contextual detail is whether notes are appended or overwrite existing notes on the track, which is relevant for a batch mutation tool but not critical enough to lower the score further.

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

Parameters5/5

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

The input schema provides only bare parameter names and types, with zero description coverage for the notes object. The description compensates thoroughly by documenting track_index as zero-based and specifying each note field: key formats ('C4'), pos in ticks, length default 48, volume range 0-200, panning range -100 to +100. This is the strongest part of the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Add'), a specific resource ('multiple notes to a track'), and the 'at once' phrase clearly distinguishes it from the single-note siblings add_note and add_note_by_name. An agent can immediately understand what this tool does without inspecting the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies batch usage ('at once') but never explicitly contrasts this with add_note/add_note_by_name or states when not to use it. No alternative routing or exclusion conditions are provided, so an agent must 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.

add_pattern_trackA

Add a beat/bassline pattern track for drum sequencing.

A default inner kick instrument is created so notes can be added immediately via add_note. Trigger it in the song editor with place_bb_clip.

Args: name: Pattern track name

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoPattern 0

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral disclosure burden. It explicitly states that a default inner kick instrument is created, that notes can be added immediately, and that the track is triggered via place_bb_clip. This is useful side-effect disclosure for a creation tool.

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

Conciseness4/5

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

The description is short and front-loaded with the core purpose. Every sentence adds useful information about what the tool creates or how to use it, with no filler. The Args line is slightly redundant with the schema but still helpful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter creation tool with an output schema, the description covers the essential context: what kind of track is created, what instrument is defaulted, how to add notes, and how to trigger the clip. It does not mention prerequisites like needing a loaded project, but the low complexity makes this a minor gap.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It does so by documenting the sole parameter as 'Pattern track name', clarifying that the name identifies the track. For a single simple string parameter with a schema default, this is sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Add a beat/bassline pattern track for drum sequencing.' This clearly differentiates it from sibling track-adding tools like add_instrument_track, add_sample_track, and add_automation_track, and the mention of a default kick instrument reinforces its drum-specific purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear workflow context: notes can be added immediately via add_note and triggered in the song editor with place_bb_clip. 'For drum sequencing' implies when to use this tool, though it does not explicitly name alternative track types or 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.

add_sample_trackB

Add a sample track for arranging audio files.

Args: name: Track name mixer_channel: Mixer channel number (0=Master) volume: Track volume (0-200) panning: Track panning (-100 to +100)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
volumeNo
panningNo
mixer_channelNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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 'Add a sample track' and does not mention side effects, whether the track is created empty, whether a project must be loaded, whether the operation is reversible, or what happens in the current project context.

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

Conciseness5/5

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

The description is short and front-loaded with the main purpose, followed by a compact Args list. Every line provides useful information and there is no redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The parameter explanations and output schema cover the basic call mechanics, but the description lacks usage guidance and behavioral context for a mutating tool with no annotations. An agent still needs to infer when a sample track is appropriate and what side effects to expect, so the description is only minimally complete.

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

Parameters5/5

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

Even though schema description coverage is 0%, the description compensates by documenting all four parameters with meaningful details: track name, mixer_channel '0=Master', volume range '0-200', and panning range '-100 to +100'. This adds real value beyond the bare schema titles and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Add a sample track for arranging audio files.' This distinguishes it from sibling tools like add_instrument_track, add_automation_track, and add_pattern_track, 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.

Usage Guidelines2/5

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 the other track-creation siblings. The phrase 'for arranging audio files' implies a use case, but it does not state when not to use it or point to alternatives such as add_instrument_track or add_vst_track.

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

add_vst_trackA

Add a track hosting a VST plugin (.dll file).

Uses LMMS's Vestige host. The VST must be compatible with your LMMS architecture (64-bit LMMS needs 64-bit VSTs).

Args: name: Track name (e.g. "Spire Lead") dll_path: Absolute path to the VST .dll file mixer_channel: Mixer channel number (0=Master) volume: Track volume (0-200) panning: Track panning (-100 to +100)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
volumeNo
panningNo
dll_pathYes
mixer_channelNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations present, the description carries the full disclosure burden and delivers meaningful context: it names the host mechanism (Vestige), exposes a real failure mode ('64-bit LMMS needs 64-bit VSTs'), and documents parameter ranges. It stops short of describing error behavior for invalid paths, but the mutation semantics are self-evident from 'add' and the output schema covers the 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.

Conciseness5/5

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

Three terse sentences plus a scannable Args block; the purpose statement is front-loaded and every sentence earns its place. There is zero wasted wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema covering return values, the description correctly focuses on invocation semantics and covers the important non-obvious facts: Vestige hosting, architecture compatibility, and all parameter ranges. Only minor gaps remain, such as explicit error behavior for bad paths and explicit sibling routing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate — and it does completely. Every parameter gains value beyond its title: dll_path gets the 'absolute path' requirement, mixer_channel gets '0=Master', volume gets '0-200', panning gets '-100 to +100', and name gets a concrete example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource: 'Add a track hosting a VST plugin (.dll file).' The VST/Vestige qualifier clearly distinguishes this from the sibling track creators (add_instrument_track, add_sample_track, add_automation_track, add_pattern_track) without needing to inspect their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied: use this when the goal is hosting a VST .dll, reinforced by the Vestige-host line. However, it does not explicitly name alternatives or state when-not-to-use, such as when a built-in LMMS instrument route (add_instrument_track) would be the better choice.

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

assign_sample_fileA

Assign an audio file to all clips on a sample track.

Use relative paths for LMMS's built-in samples (e.g. "drums/kick01.ogg") or absolute paths for your own files.

Args: track_index: Index of the sample track file_path: Audio file path (WAV/OGG/MP3/FLAC)

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
track_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior2/5

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

No annotations are present, so the description carries the full behavioral disclosure burden. It states the core assignment action but does not explain whether existing clip assignments are overwritten, what happens if the track has no clips, or any side effects of this 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.

Conciseness5/5

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

The description is concise and well-structured: purpose, path guidance, and parameter details. Every sentence adds value, 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.

Completeness3/5

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 essential call information is present, and an output schema exists. However, behavioral gaps remain—overwrite semantics, failure behavior, and prerequisites for the sample track—so the definition is adequate but not fully complete.

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

Parameters4/5

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

Schema description coverage is 0%, but the description adds meaningful parameter context: track_index is the sample track index, and file_path supports WAV/OGG/MP3/FLAC with relative or absolute path guidance. This goes beyond the bare schema types and titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's specific action: assigning an audio file to all clips on a sample track. This is distinct from sibling tools like place_sample_clip, which likely places individual clips, and add_sample_track, which creates tracks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on how paths should be specified: relative paths for built-in samples and absolute paths for external files. It does not explicitly name alternatives or when-not-to-use conditions, but the 'all clips on a sample track' scope makes the intended use reasonably clear.

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

bars_to_ticks_converterA

Convert bars to ticks (192 ticks per bar in 4/4 time).

Args: bars: Number of bars

ParametersJSON Schema
NameRequiredDescriptionDefault
barsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It adds useful context by specifying the fixed conversion rate and the 4/4 time-signature assumption. It does not describe edge cases, rounding, or error behavior, but those are less critical for a simple converter with an output schema.

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

Conciseness5/5

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

The description is extremely compact and front-loaded, with a single conversion statement followed by a parameter line. Every element is useful, and there is no filler or repetition beyond the minor redundancy in the parameter description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter utility converter with an output schema, the description is functionally complete. It communicates the conversion factor, the time-signature assumption, and the input meaning. The existence of an output schema means return-value details are not required in the description.

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

Parameters2/5

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 by explaining parameter meaning. However, 'bars: Number of bars' merely restates the parameter name and schema type without adding constraints, defaults, or contextual nuances. The conversion formula in the description partially informs the parameter, but the parameter-specific text adds little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific operation ('Convert bars to ticks') with an exact conversion rate (192 ticks per bar in 4/4 time). It clearly distinguishes this tool from the sibling `ticks_to_bars_converter` by identifying the direction of conversion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended usage is implied by the tool name and description, but there is no explicit guidance about when to choose this tool over `ticks_to_bars_converter` or any other alternative. No exclusions or decision criteria are provided.

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

create_projectA

Create a new empty LMMS project.

Args: bpm: Tempo in beats per minute (10-999) time_sig_numerator: Time signature numerator (e.g. 4 for 4/4) time_sig_denominator: Time signature denominator (e.g. 4 for 4/4) master_volume: Master volume (0-200, 100=normal) master_pitch: Master pitch offset in semitones (-12 to +12)

ParametersJSON Schema
NameRequiredDescriptionDefault
bpmNo
master_pitchNo
master_volumeNo
time_sig_numeratorNo
time_sig_denominatorNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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 what happens to the currently loaded project, whether unsaved work may be discarded, or how creation affects the application/project state. The parameter ranges are useful but do not cover these 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.

Conciseness5/5

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

The description is a brief one-sentence purpose followed by a compact argument list. Every line in the Args section adds range/semantic information not present in the schema, and the purpose statement is front-loaded. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

All parameters are covered and an output schema exists, so return-value documentation is not needed. However, the description omits important contextual behavior about replacing/discarding the current project and when to prefer this over load_project or the individual setter tools. This leaves the agent with a moderate but meaningful gap.

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

Parameters5/5

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

Schema description coverage is 0%, but the description compensates fully by documenting every parameter with meaning and valid ranges (e.g., bpm 10-999, master_volume 0-200, master_pitch -12 to +12). This adds real value beyond the bare schema defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Create'), a clear resource ('a new empty LMMS project'), and the word 'empty' distinguishes it from loading or saving projects. It clearly separates this tool from siblings like load_project and save_project.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage is implied: create a fresh project, rather than load an existing one or adjust settings post-creation with set_tempo/set_time_signature/set_master_volume. However, there is no explicit when-to-use/when-not-to-use guidance or mention of alternatives, so the agent must infer from sibling names.

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

delete_clipA

Delete a clip at a given position from a track.

Args: track_index: Track containing the clip pos_bars: Clip start position in bars

ParametersJSON Schema
NameRequiredDescriptionDefault
pos_barsYes
track_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations are absent, so the description carries the full burden. It clearly signals destructive behavior with the word 'delete', but it does not disclose whether the deletion is permanent, whether it can be undone, or how it handles a non-existent clip at the given position.

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

Conciseness5/5

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

The description is very short and front-loaded: the first sentence states the purpose, and the Args section adds only relevant parameter semantics. Every line earns its place with no unnecessary wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter delete tool, the description covers the basic action and parameter meanings adequately. Still, it leaves out practical details like indexing convention, behavior on missing clips, and side effects, which would help an agent avoid misusing the tool in an automated workflow.

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

Parameters4/5

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

The input schema provides only types and titles with no descriptions. The description's Args section adds useful meaning: track_index identifies the containing track, and pos_bars is the clip start position in bars. However, it does not specify whether track indexes are zero-based or what bar value formats are accepted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Delete a clip'), the object ('a clip'), and the location ('at a given position from a track'). This is specific enough to distinguish it from sibling tools like move_clip or place_sample_clip without needing to infer intent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 move_clip or the various 'place' tools. There is no mention of prerequisites, exclusions, or typical usage context.

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

generate_scaleA

Generate a musical scale as MIDI key numbers and note names.

Args: root_note: Root note name (e.g. 'C4', 'A3') scale_type: Scale type: major, minor, dorian, mixolydian, pentatonic_major, pentatonic_minor, blues, chromatic, harmonic_minor, melodic_minor num_octaves: Number of octaves to generate

ParametersJSON Schema
NameRequiredDescriptionDefault
root_noteNoC4
scale_typeNomajor
num_octavesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral disclosure burden. It reveals the output type conceptually (MIDI key numbers and note names) but does not state whether this is a pure calculation, whether it modifies the project, or what error behavior to expect.

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

Conciseness5/5

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

The description is well-structured with a one-sentence summary followed by a concise Args block. Every line adds value, 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.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is minimally viable for a simple generator tool, especially since an output schema exists. However, it lacks usage guidance and explicit behavioral context, and with no annotations it does not fully clarify whether the tool is side-effect free or how its output should be integrated.

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

Parameters4/5

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

Input schema coverage is 0%, so the description must compensate. It adds useful meaning by giving a root note example ('C4', 'A3'), enumerating all accepted scale types, and explaining num_octaves. It does not state constraints like valid ranges, but it is far more informative than the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Generate a musical scale as MIDI key numbers and note names.' This clearly distinguishes it from sibling tools like note_name_to_key or add_note, which target single-note conversion or placement rather than scale generation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. It does not mention relationships to note_name_to_key, key_to_note_name, or add_note tools, so the agent must infer its role purely from the name and summary.

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

get_arrangementA

Get the full song editor arrangement: all clips sorted by time.

Shows every pattern, BB clip, sample clip and automation curve with their positions and lengths in ticks and bars.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden, and it does disclose meaningful behavior: results are sorted by time, include every clip/automation curve, and positions/lengths are given in ticks and bars. It does not explicitly state that it is side-effect-free or what happens if no project is loaded, but the 'Get' framing and output details clarify the primary behavior.

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

Conciseness5/5

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

Two short sentences: the first gives the purpose and the second details the content. There is no verbose or redundant wording, 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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read tool with an output schema, the description is largely complete: it states the resource, the scope, sorting, content types, and units. It could add explicit notes about project-load requirements or contrast with get_track, but those are not critical for successful invocation.

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

Parameters4/5

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

The tool has zero parameters, so parameter semantics are fully covered by the empty input schema. No additional description is required, and the baseline of 4 applies because there is nothing for the description to clarify.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Get the full song editor arrangement') and then enumerates exactly what is included: patterns, BB clips, sample clips, and automation curves with positions and lengths. This clearly distinguishes it from sibling tools like get_track or get_project_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'full song editor arrangement' establishes a clear context: use this when you need the complete arrangement, not a single track. It does not explicitly name alternatives or state when not to use it, so it falls short of full routing guidance.

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

get_effect_chainA

List all effects on a track's or mixer channel's effect chain.

Args: target_type: "track" or "mixer" target_index: Track index or mixer channel number

ParametersJSON Schema
NameRequiredDescriptionDefault
target_typeYes
target_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral burden. The verb 'List' implies a non-destructive read, and 'all effects' defines scope, but the description does not clarify whether disabled/bypassed effects are included, how invalid target indices are handled, or whether the operation is read-only in an explicit way. It is adequate for a simple list operation but leaves some behavior to inference.

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

Conciseness5/5

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

The description is compact and front-loaded: the purpose appears in the first sentence, followed by a minimal parameter block with no filler. Every sentence contributes useful information, and the length is proportionate to the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read-only listing tool with an output schema, the description covers the resource type, the two accepted target locations, and the meaning of each argument. It does not discuss error behavior or result ordering, but given the output schema and very simple scope, the essential context is present and only minor details are left out.

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

Parameters4/5

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

The schema provides 0% description coverage for parameters, so the description must compensate. It defines target_type as 'track' or 'mixer' and target_index as a track index or mixer channel number, giving agents the key semantic constraints the schema omits. It stops short of specifying exact indexing conventions or whether the values are case-sensitive, but it substantially compensates for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action ('List all effects') on a specific resource ('a track's or mixer channel's effect chain'), immediately distinguishing it from sibling mutation tools like add_effect, remove_effect, and toggle_effect. It is specific, actionable, and not a tautology of 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the tool's scope clear by naming both target types, but it does not explicitly say when to choose this tool over related siblings, nor does it mention any exclusions or when-not-to-use conditions. An agent can infer the use case, but the guidance is implicit rather than explicit.

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

get_lmms_infoA

Get info about the installed LMMS application.

Shows the detected LMMS version, installation path and which instrument/effect plugins are actually available. Use this to check whether a plugin is supported before using it.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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 describe the returned information (version, path, plugin availability) and adds useful nuance with 'detected' and 'actually available.' However, it does not explicitly state that the operation is read-only or describe failure behavior, though the name and 'info' imply no 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.

Conciseness5/5

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

The description is three short sentences, with each sentence earning its place: it states the operation, lists the specific output details, and gives a direct usage guideline. It is front-loaded and contains no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, an output schema exists, and it is a simple read-only info operation, the description is mostly complete. It covers what the tool shows and why to use it, though it could briefly mention that it does not modify the project or LMMS environment.

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

Parameters4/5

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

This tool has zero parameters, so there is no parameter ambiguity. The baseline of 4 applies: the description does not need to explain parameter semantics because none exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves information about the installed LMMS application and lists specific details it returns: version, installation path, and available plugins. It is clear and specific, but does not differentiate from the sibling tool list_available_plugins, which likely overlaps in the plugin-availability aspect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this to check whether a plugin is supported before using it,' which gives a clear use case. However, it does not mention when not to use it or name alternative tools such as list_available_plugins.

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

get_mixer_channelsA

Get all mixer channels with their settings.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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 useful scope semantics by saying 'all' mixer channels and 'with their settings', but it never explicitly states that the operation is read-only, has no side effects, or what happens when the project has no mixer channels. This is partial but not comprehensive behavioral transparency.

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

Conciseness5/5

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

The description is a single concise sentence where every word adds value: 'Get', 'all', 'mixer channels', and 'with their settings'. There is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple, zero-parameter getter and an output schema exists, so the description does not need to explain return types in detail. However, since annotations are absent, a brief note about the operation being read-only or about behavior on an empty project would make it more complete.

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

Parameters4/5

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

The tool has zero parameters and the input schema is already complete with an empty properties object. The zero-parameter baseline of 4 applies; there is no parameter meaning for the description to add.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: get all mixer channels along with their settings. It is distinguishable from sibling tools that add or set mixer channels, though it does not explicitly name an alternative or contrast itself with another tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance about when to prefer this tool over alternatives such as get_track, list_tracks, or get_effect_chain. There is no mention of use cases, prerequisites, or exclusions, so the agent must infer usage entirely from the tool name and basic wording.

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

get_project_infoA

Get comprehensive information about the current LMMS project.

Returns tempo, time signature, tracks, mixer channels, and more.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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 main observable behavior by saying the tool returns tempo, time signature, tracks, and mixer channels, and 'Get' implies a read-only operation. But it does not mention prerequisites such as a loaded project, error behavior, or whether the operation affects any state.

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

Conciseness5/5

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

The description is two short, front-loaded sentences with no filler. The main purpose appears in the first sentence and the return categories in the second, which is efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter getter backed by an output schema and a simple domain, the description is largely complete: it states the resource and the main return categories. It loses a point only because 'and more' is vague and the relationship to sibling getter tools is not clarified.

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

Parameters4/5

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

The tool has zero parameters and the input schema already covers this completely with an empty properties object, so there is no parameter semantics left for the description to add. This earns the baseline 4 for zero-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a clear verb and resource: get comprehensive information about the current LMMS project. It lists concrete contents (tempo, time signature, tracks, mixer channels) but does not explicitly distinguish itself from siblings like get_project_xml or list_tracks, so it is clear rather than sharply differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'comprehensive information about the current LMMS project' implies the agent should call this when it needs a broad project overview. However, it gives no explicit guidance about when to prefer this over more specific siblings such as list_tracks, get_mixer_channnels, get_project_xml, or get_lm_ms_info, and it states no exclusions.

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

get_project_xmlA

Get the raw XML representation of the current project.

Useful for debugging or understanding the exact project structure.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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 the read-only nature via 'Get' and the return type 'raw XML representation', but it does not explicitly state that it has no side effects, what error conditions may occur, or whether a project must be loaded first. This is adequate but not fully transparent.

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

Conciseness5/5

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

The description is two concise sentences with no filler. The core action and resource are front-loaded, and the secondary sentence adds practical context about why the tool is useful. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only tool with an output schema, the description is nearly complete. It states what the tool returns and when it is useful. The only missing piece is an explicit note that a project must exist or be loaded, which is implied by 'current project' but not stated.

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

Parameters4/5

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

The tool has zero parameters and the input schema fully documents this (100% schema coverage). The baseline for no parameters is 4, and the description does not need to add parameter-level meaning since there are none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and a precise resource ('raw XML representation of the current project'). This clearly distinguishes it from sibling tools like get_project_info by indicating the format and detail level. The purpose is immediately understandable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear use context: 'debugging or understanding the exact project structure.' However, it does not explicitly state when this tool should be preferred over alternatives like get_project_info, 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.

get_trackA

Get detailed information about a specific track.

Args: track_index: Zero-based index of the track

ParametersJSON Schema
NameRequiredDescriptionDefault
track_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description must carry the burden. It signals a read-only operation with 'Get' and clarifies that the track is addressed by zero-based index, which is useful. However, it does not disclose error behavior for invalid indices or what 'detailed information' actually includes.

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

Conciseness5/5

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

Two lines of content with no redundant text; the primary purpose is front-loaded, followed by parameter documentation. It is as concise as a minimal but complete tool definition should be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, one parameter, and presence of an output schema, the description is largely complete for a successful call. The agent knows the tool expects a zero-based track index. It would be slightly more complete if it pointed to list_tracks for obtaining valid indices, but that is not essential.

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

Parameters4/5

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

The description explicitly documents 'Zero-based index of the track', adding critical meaning the raw schema lacks. This compensates for the 0% schema description coverage; the agent knows to pass a zero-based integer rather than a one-based one.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb ('Get') and resource ('detailed information about a specific track'), making its purpose easy to understand. It is implicitly distinct from list_tracks (which lists all tracks), but does not explicitly name sibling alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use get_track versus alternatives. The description implies the agent should call it when it needs details on one track, but does not reference list_tracks or mention preconditions like obtaining a valid track index.

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

key_to_note_nameA

Convert a MIDI key number to its note name.

Args: key: MIDI key number (0-127)

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It clearly states the core conversion behavior, but it does not disclose details like octave naming convention, sharp/flat preference, or behavior on invalid key values. Still, the operation is clearly a pure conversion with no 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.

Conciseness5/5

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

The description is minimal and front-loaded: one clear sentence states the purpose, followed by a compact Args block. There is no filler or redundant restating of the schema, 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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter pure conversion utility with an output schema available, the description is largely complete. It covers the input semantics and range. It could be improved by explicitly mentioning the inverse sibling or note formatting convention, but nothing essential is missing for invoking the tool correctly.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It does well by adding 'MIDI key number (0-127)', giving both the semantic meaning and the valid range beyond the bare integer type in the schema. It does not over-explain, but this is sufficient for a single required parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear, specific verb and resource: 'Convert a MIDI key number to its note name.' This unambiguously states the operation and direction, and it naturally contrasts with the sibling tool note_name_to_key, which performs the inverse conversion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is given about when to use this tool versus note_name_to_key or other siblings. The intended use is implied by the description and tool name, but the 'when-not-to-use' or alternative routing is left to the agent to infer.

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

list_available_pluginsA

List ALL plugins installed in your LMMS, dynamically detected.

Includes built-in instruments/effects plus any custom plugins the user added to LMMS's plugins folder. Custom plugins can be used directly by name in add_instrument_track / add_effect.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It discloses that the list is dynamically detected and includes both built-in and custom plugins. For a read-only list tool, this is adequate but does not mention potential performance costs, plugin availability after scanning, or whether VSTs are included/excluded. It does not contradict annotations.

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

Conciseness5/5

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

Three sentences, front-loaded with the core action, followed by scope detail and a practical usage hint. No filler or redundancy; each sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is largely complete for a zero-parameter list tool, especially with an output schema present. It covers plugin scope and downstream usage. The only minor gap is not explicitly stating whether VSTs (handled by scan_vst_directory) are included, which could matter for an agent deciding between list_available_plugins and scan_vst_directory.

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

Parameters4/5

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

The tool has zero parameters, so there is no parameter semantics to clarify. The description still adds value by explaining what the returned list contains and how custom plugin names can be reused, which is the relevant semantic context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a specific verb ('List') and resource ('ALL plugins installed in your LMMS'), with concrete scope ('built-in instruments/effects' + 'custom plugins the user added'). This distinguishes it from sibling scan_vst_directory, which handles a different plugin source (VST directory). The phrase 'dynamically detected' adds precision about how the list is obtained.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use the tool: to discover custom plugin names for add_instrument_track / add_effect. It gives actionable context ('Custom plugins can be used directly by name') but does not explicitly state exclusions or directly compare with sibling alternatives such as scan_vst_directory.

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

list_tracksA

List all tracks in the current project with their index, name, and type.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the burden of indicating side effects, and the verb 'list' clearly conveys a non-mutating read-only query. It also discloses the scope (current project) and the exact returned data. It does not mention failure behavior when no project is loaded, but the risk is minimal for a no-argument listing tool.

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

Conciseness5/5

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

A single front-loaded sentence contains the action, resource, scope, and output fields with 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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, low-complexity query with an output schema, this description is complete. It identifies what is listed, where it is listed from, and what fields are returned, which is all an agent needs to invoke it correctly.

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

Parameters4/5

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

The tool has zero parameters and the schema coverage is 100%, so the schema fully defines the call signature. The description compensates by stating what the response contains, which is useful since no arguments exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'List all tracks in the current project' and explicitly names the returned fields (index, name, type). This clearly distinguishes it from single-track get_track and mutation tools like add_* and remove_track.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage is implied: an agent would use this when it needs an overview of every track in the current project before targeting a specific track. However, it does not explicitly state when to prefer this over alternatives such as get_track, nor does it mention exclusions.

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

list_zyn_presetsA

List available ZynAddSubFX presets (.xiz files).

Args: category: Optional category filter (e.g. "Bass", "Strings", "Synth", "Pads", "Brass"). Omit to list all categories' presets.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of disclosing behavioral traits. It clearly indicates a non-destructive list operation by using the verb 'List', and describes the category filtering behavior. It does not mention potential side effects, but for a simple listing tool none are expected. The description could have added context about where presets are sourced, but the core behavioral profile is transparent enough.

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

Conciseness5/5

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

The description is concise and front-loaded. The main action is stated in the first sentence, with the parameter details presented in a compact Args block. Every sentence earns its place, and there is no redundant or filler content. The structure is 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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a single optional parameter and an output schema available, the description is complete. It covers the operation's purpose, the parameter's optionality, example values, and the default behavior (omit to list all). Since the output schema exists, returning the list format need not be described. No critical information is missing for correct invocation.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must fully compensate for the parameter's meaning. It does this well: 'category' is explained as an optional filter, with concrete examples ('Bass', 'Strings') and an explicit statement that omitting it lists all categories. This adds substantial semantic value beyond the bare schema definition, making the parameter's role unmistakable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'List available ZynAddSubFX presets (.xiz files)'. This clearly identifies the operation as a read-only query for preset files, which is distinct from sibling tools like load_zyn_preset or set_zyn_params. The purpose is immediately comprehensible 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context on how to use the tool, including the optional category filter with examples and the instruction to omit it for all categories. It does not explicitly compare itself to sibling tools, but the listing operation is inherently distinct from loading or modifying presets, so exclusion guidance is not critical here. The usage context is sufficient for an agent to decide when to call it.

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

load_projectA

Load an existing LMMS project file (.mmpz or .mmp).

Args: path: Full path to the LMMS project file

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It explains what file types are accepted and that a path is needed, but does not disclose whether loading replaces the current project, discards unsaved changes, or requires the file to exist. This is a meaningful gap for a state-changing load operation.

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

Conciseness5/5

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

The description is two sentences plus a one-line arg note, front-loading the core purpose and adding only the necessary path detail. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the basic contract and an output schema exists, so return values do not need explanation. However, it omits the important context that loading a project likely replaces the current in-memory project, which an agent should know before invoking. This is a clear but not severe gap.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate. It does by adding 'Full path' and naming the file formats, which gives the single pathway parameter real meaning beyond the bare string type. This is sufficient for the one parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Load') and resource ('LMMS project file') with the accepted formats (.mmpz or .mmp). It also specifies 'existing', which distinguishes it from create_project and save_project.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Use is implied by 'Load an existing LMMS project file' and the sibling context, but there is no explicit guidance about when to prefer this over create_project or get_project_info. No exclusions or alternative conditions are stated.

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

load_zyn_presetA

Load a ZynAddSubFX preset (.xiz) into a zynaddsubfx instrument track.

The track must use the 'zynaddsubfx' instrument. Presets can be referenced by filename (e.g. "Bass 1"), "Category/Name", or full path.

Args: track_index: Index of the target track preset: Preset name, "Category/Name" or absolute path

ParametersJSON Schema
NameRequiredDescriptionDefault
presetYes
track_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries full behavioral burden. It does disclose the track prerequisite and supported preset reference formats, but it does not mention what happens to existing settings, failure behavior for invalid tracks, or whether the operation overwrites the current preset. The description is adequate but not deeply transparent.

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

Conciseness4/5

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

The description is compact and front-loaded with the core action, followed by the key prerequisite and parameter details. There is minor redundancy between the prose explanation of preset reference formats and the Args section, but overall it is well-organized and without significant fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool, the description covers the essential call context: what the tool does, the required track instrument, and accepted preset formats. It does not explain error cases or return values, but an output schema exists, so return-value documentation is less critical. A brief pointer to list_zyn_presets for discovering valid preset names would improve completeness further.

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

Parameters4/5

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

Schema description coverage is 0%, and the description compensates by defining both parameters: track_index as the target track index and preset as a name, 'Category/Name', or absolute path. This gives the agent meaningful guidance beyond the bare schema field names, though it could further specify indexing details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Load'), a concrete resource (ZynAddSubFX preset .xiz), and the target (a zynaddsubfx instrument track). It clearly distinguishes itself from sibling tools like load_project and set_zyn_params by focusing on preset loading into a specific track type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear context: the target track must use the 'zynaddsubfx' instrument, and presets can be referenced by filename, 'Category/Name', or full path. It does not explicitly name alternative tools for related tasks like listing presets or adjusting parameters, but the usage context is sufficiently clear.

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

move_clipA

Move a clip (pattern/bbtco/sampleclip) to a new time position.

Args: track_index: Track containing the clip old_pos_bars: Current start position in bars new_pos_bars: New start position in bars

ParametersJSON Schema
NameRequiredDescriptionDefault
track_indexYes
new_pos_barsYes
old_pos_barsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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 says a clip moves to a new time position; it does not disclose whether the old position is cleared, whether overlaps are allowed, what happens on invalid input, or any other side effects. This is too thin 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.

Conciseness4/5

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

The description is short, front-loads the purpose, and then adds a compact argument list. The Args section partly duplicates schema property names, but it adds useful semantic context, so it is justified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The essential behavior and all three required parameters are described, and an output schema exists. However, with no annotations, the definition omits behavior around invalid positions, overlapping clips, track constraints, and error handling, 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.

Parameters4/5

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

Schema description coverage is 0%, but the description gives meaningful semantics for all three parameters: track index identifies the track, old_pos_bars is the current start, and new_pos_bars is the destination. It also specifies the unit (bars), which the bare schema does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Move'), a specific resource ('clip'), and the clip types covered (pattern/bbtco/sampleclip), plus the new time position. This clearly distinguishes it from sibling tools like place_* or delete_clip.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The operation name and description imply it should be used when repositioning an existing clip rather than placing or deleting one. However, there is no explicit comparison to siblings like place_pattern, place_bb_clip, or place_sample_clip, and no mention of prerequisites or invalid states.

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

mute_trackA

Mute or unmute a track.

Args: track_index: Zero-based track index muted: True to mute, False to unmute

ParametersJSON Schema
NameRequiredDescriptionDefault
mutedNo
track_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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 explicitly states that the tool mutates or unmutates a track, which conveys the side effect, but it does not mention permissions, reversibility, return behavior, or possible constraints on track_index. For such a simple operation this is acceptable but not exhaustive.

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

Conciseness5/5

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

The description is concise and front-loaded with the core purpose. The Args section is compact and directly relevant, containing no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter mute/unmute action, the description plus schema covers the required semantics completely. The presence of an output schema means return-value explanation is unnecessary, and no other context is needed to invoke this tool correctly.

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

Parameters5/5

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

The input schema describes track_index and muted only with titles and types, and schema description coverage is 0%. The description compensates fully by explaining that track_index is zero-based and that muted=true means mute while muted=false means unmute, adding meaning the schema itself does not provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Mute or unmute a track,' which clearly identifes the specific action and resource. It is distinct from sibling tools like solo_track or set_track_volume, though it does not explicitly call out those alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage is implied by the action described: use this when you want to mute or unmute a track. However, there is no explicit guidance about when not to use it or which sibling tool might be more appropriate for similar situations.

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

note_name_to_keyA

Convert a note name (e.g. 'C4') to its MIDI key number.

Args: name: Note name like 'C4', 'A#3', 'F#5', 'Bb2'

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are present, so the description carries the full burden. It discloses the core conversion behavior and gives representative note-name formats, but it does not specify the octave convention (e.g., which MIDI number C4 maps to), invalid-input behavior, or case sensitivity. This is adequate for a pure conversion, 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.

Conciseness5/5

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

The definition is a single terse sentence plus an example line, with no filler. The core transformation is front-loaded, and the examples make the expected input format immediately usable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter conversion utility with an output schema available, the description covers the necessary input format and purpose. The main omissions are explicit routing to the inverse sibling and edge-case behavior, which keep it from being fully complete.

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

Parameters4/5

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

Schema description coverage is 0%, and the description compensates by explaining the 'name' parameter and providing examples that include sharps and flats ('A#3', 'Bb2'). It adds significant meaning beyond the bare string type, though it stops short of a complete syntax or validation pattern.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb, 'Convert,' and defines the exact transformation from a note name to a MIDI key number, with concrete examples such as 'C4' and 'A#3'. The directional wording clearly distinguishes it from the inverse sibling tool key_to_note_name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool (when a note name must become a MIDI key number), but it does not explicitly mention alternatives or when to prefer other tools. There is no exclusion guidance such as 'use key_to_note_name for the reverse direction.'

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

place_bb_clipA

Place a beat/bassline clip on a pattern track in the song editor.

This triggers the BB pattern (created via add_pattern_track and filled with notes) to play at the given time.

Args: bb_track_index: Index of the pattern (BB) track pos_bars: Start position in bars length_bars: Clip length in bars (default 4 = one BB cycle of 16 steps)

ParametersJSON Schema
NameRequiredDescriptionDefault
pos_barsNo
length_barsNo
bb_track_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are present, so the description must carry the behavioral burden. It usefully explains that placing the clip triggers the BB pattern at the given time and that the default length is one 16-step BB cycle. However, it does not disclose side effects such as overwriting existing clips, whether placement is reversible, or other mutation consequences.

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

Conciseness5/5

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

The description is compact: two short sentences and a focused Args list with no filler or redundancy. The core purpose is front-loaded, and every line contributes useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 3-parameter tool with an indicated output schema, the description covers the action, prerequisites, parameter semantics, and the BB-pattern relationship. It is complete enough for an agent to call the tool correctly, though it could optionally mention how this differs from place_pattern.

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

Parameters4/5

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

Schema description coverage is 0%, but the Args block compensates by defining bb_track_index, pos_bars in bars, and length_bars with the BB-cycle default meaning. This adds real semantic value beyond the raw schema properties.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence states a concrete action ('Place...') and a specific resource ('beat/bassline clip on a pattern track'), which is clear and unambiguous. It establishes BB-pattern specificity but does not explicitly distinguish itself from sibling tools like place_pattern or place_sample_clip.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a useful prerequisite: the BB pattern should be created via add_pattern_track and filled with notes. This tells the agent when the tool is appropriate, though it does not provide explicit exclusions or direct comparisons to sibling placement tools.

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

place_patternA

Place an empty pattern clip on an instrument track (song arrangement).

The pattern starts empty; add notes with add_note (they go into the first pattern) or use this to sketch the arrangement structure first.

Args: track_index: Index of the instrument track pos_bars: Start position in bars (0 = beginning) name: Optional pattern name (defaults to track name) length_bars: Pattern length in bars

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
pos_barsNo
length_barsNo
track_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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 reveal that the pattern starts empty and that notes added later go into the first pattern. However, it does not describe side effects like overwriting existing clips, error behavior, or whether the clip is appended or inserted, leaving some gaps.

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

Conciseness5/5

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

The description is concise and well-structured: a clear one-sentence summary, a brief workflow note, and a compact Args list. Every sentence adds value, and the structure makes scanning for parameter semantics easy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose, parameter semantics, and its relationship to add_note, which is enough for basic invocation. It does not discuss error cases, validation, or explicit comparisons to similarly named clip-placement tools, but given the output schema and reasonably straightforward behavior, it is largely complete.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate. The Args section explains every parameter with meaningful semantics: track_index identifies the instrument track, pos_bars is in bars with 0 meaning beginning, name defaults to track name, and length_bars is pattern length in bars. This fully makes up for the schema's lack of descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action, resource, and scope: 'Place an empty pattern clip on an instrument track (song arrangement).' This clearly distinguishes it from siblings like place_sample_clip and place_bb_clip, and the 'empty pattern' phrasing further differentiates it from note-adding tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear workflow context: it can be used to sketch the arrangement structure first, and it notes that add_note places notes into the first pattern. It does not explicitly list or exclude alternatives among other placement tools, but the guidance is sufficient to infer appropriate use.

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

place_sample_clipB

Place an audio file clip on a sample track at a given bar.

Args: track_index: Index of the sample track file_path: Audio file path (relative to LMMS samples or absolute) pos_bars: Start position in bars (0 = beginning) length_bars: Clip length in bars

ParametersJSON Schema
NameRequiredDescriptionDefault
pos_barsNo
file_pathYes
length_barsNo
track_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must carry the behavioral disclosure burden, but it only names the operation and parameter meanings. It does not state whether placing a clip overwrites existing content, whether the audio file must exist, what happens if the sample track index is invalid, 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.

Conciseness5/5

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

The description is compact and well-structured: a one-line summary followed by a scannable Args list. Every line adds information, and there is no repetition of schema-level facts like defaults or requirements.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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, important operational context is missing: it does not say that the target track must be a sample track, how to create one, whether the file is validated, or what happens when length_bars exceeds the audio file duration. The presence of an output schema helps with return values, but the precondition and failure-mode gaps remain significant.

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

Parameters4/5

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

Schema description coverage is 0%, so the Args list is essential. It covers all four parameters and adds useful meaning beyond the schema: file_path can be relative to LMMS samples or absolute, pos_bars is in bars with 0 meaning the beginning, and length_bars is the clip length in bars. It could be richer on track_index constraints, but it compensates well for the empty schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action ('Place an audio file clip') and a clear resource ('sample track'), with positional context. It is distinguishable from siblings like add_sample_track because it explicitly targets sample tracks and audio file clips, though it does not explicitly contrast itself with closely related tools like assign_sample_file or place_bb_clip.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to prefer this tool over alternatives such as assign_sample_file, place_pattern, or place_bb_clip. It also omits prerequisites such as the sample track needing to already exist, so the description does not help an agent choose correctly among sibling tools.

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

remove_effectA

Remove an effect from a chain by name or chain position.

Args: target_type: "track" or "mixer" target_index: Track index or mixer channel number effect: Effect name (e.g. "delay") or position (e.g. 0)

ParametersJSON Schema
NameRequiredDescriptionDefault
effectYes
target_typeYes
target_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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 states the removal action but does not disclose possible failure modes, effects on audio routing, whether the operation is reversible, or what happens if the effect name/position is invalid. This is a significant gap 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.

Conciseness5/5

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

The description is compact and efficient: one purpose sentence followed by a structured Args block. The main operation is front-loaded, and every sentence adds value without redundant detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter removal tool, the description covers the essential operation and all argument semantics. An output schema exists, so return values need not be described. The main missing context is error behavior and index-base clarification, but these are not critical for correct invocation in most cases.

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

Parameters4/5

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

The schema has 0% description coverage, but the description compensates by explaining all three parameters: target_type values, target_index meaning, and effect as either name or position with examples. Minor ambiguity remains (e.g., zero-based vs one-based positions, exact string matching rules), but overall the added meaning is substantial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Remove'), resource ('effect from a chain'), and method ('by name or chain position'). This clearly distinguishes it from sibling tools like add_effect, toggle_effect, and get_effect_chain without reference to the function name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied by the description: use it when you want to remove an effect from a track or mixer chain. However, it does not explicitly mention when not to use it, nor does it reference alternatives such as toggle_effect (for enabling/disabling) or add_effect (for insertion), leaving the selection to inference.

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

remove_trackA

Remove a track by its index.

Args: track_index: Zero-based index of the track to remove

ParametersJSON Schema
NameRequiredDescriptionDefault
track_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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 restates the core action. It does not mention that removal is likely permanent, whether associated clips or mixer channels are affected, or whether track indices renumber after removal. No error or edge-case behavior is described.

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

Conciseness5/5

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

The description is two short sentences plus a one-line Args block, with the action front-loaded and no filler. Every sentence earns its place, and the parameter note is compact and directly useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, an output schema exists, and the single parameter is explained, so the missing return-value details are not a concern. However, the description omits usage context and destructive side effects, and with many track-related siblings, an agent gets minimal help deciding this is the right tool or understanding the consequences of calling it.

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

Parameters4/5

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

The schema provides only an integer type with no description (0% coverage), so the description's 'Zero-based index of the track to remove' adds essential semantic meaning. It clarifies the indexing convention and the parameter's referent. While it does not cover ranges or track types, it is substantial for a single-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Remove a track by its index.' It clearly distinguishes the tool from siblings like add_instrument_track, add_sample_track, delete_clip, and remove_effect, since removing a track is a unique operation. The scope is unambiguous enough for an agent to identify this as the removal action for tracks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use remove_track versus alternatives such as delete_clip or remove_effect. The description only states the action, leaving selection entirely to inference from the tool name. No exclusions, prerequisites, or alternative routing are provided.

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

render_projectA

Export the current project to an audio file using the installed LMMS.

This launches LMMS in headless render mode (no GUI). Requires a working LMMS installation. The project is saved first, then rendered.

Args: output_path: Output file path (default: .wav in the same directory) file_format: "wav", "flac", "ogg" or "mp3" samplerate: Sample rate in Hz (44100, 48000, ...) bitrate: Bitrate in kbit/s for lossy formats (ogg/mp3)

ParametersJSON Schema
NameRequiredDescriptionDefault
bitrateNo
samplerateNo
file_formatNowav
output_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden. It discloses that LMMS runs in headless mode without GUI, that the project is saved before rendering, and that an external LMMS installation is required. It could also mention output file overwrite behavior, but the disclosed side effects and prerequisites are already substantive.

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

Conciseness5/5

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

The description is front-loaded with the core purpose in the first sentence, followed by a compact behavioral note and a clear Args list. Every sentence provides useful information, with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with no annotations, the description covers the key contextual needs: external dependency, headless behavior, save-first side effect, and complete parameter semantics. An output schema exists, so return-value details are not required. Minor omissions like overwrite behavior do not undermine usability.

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

Parameters5/5

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

The input schema only provides titles and defaults with no descriptions, so the Args section adds essential meaning: allowed file_format values, samplerate units in Hz, bitrate purpose for lossy formats, and the output_path default behavior of <project>.wav in the same directory. This fully compensates for the 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Export the current project to an audio file.' This clearly distinguishes render_project from siblings like save_project or get_project_info, and there is no other export/render tool in 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use case is clear: export the current project to an audio file via LMMS. It mentions prerequisites ('Requires a working LMMS installation') but does not explicitly name alternatives or exclusion conditions. Since no sibling tool overlaps with rendering to audio, the absence of explicit alternatives is acceptable.

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

save_projectA

Save the current LMMS project to a file.

Args: path: File path to save to. If empty, saves to the default projects directory. If only a filename is given (e.g. "song.mmpz"), it's saved in the default directory. compressed: If True, saves as .mmpz (compressed). If False, saves as .mmp (plain XML). By default (None) the format follows the file extension: ".mmp" is always plain XML, everything else compressed. Writing compressed data into a .mmp breaks LMMS and other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
compressedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and largely succeeds. It discloses default-path behavior, compression format selection, and importantly warns that writing compressed data into a .mmp file breaks LMMS and other tools. It does not mention overwrite behavior or permissions, but the format warning is strong for a write operation.

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

Conciseness4/5

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

The purpose is front-loaded in the first sentence, and the Args section is compact and well-structured. The parameter explanations and warning are all useful, though the two separate default-directory cases in the path description are slightly redundant and could be condensed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers both parameters thoroughly and includes a practical failure warning, while the presence of an output schema handles return value documentation. It omits minor context such as whether existing files are overwritten and whether a project must already be open, but these are largely inferable from the tool name and sibling set.

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

Parameters5/5

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

The schema provides zero parameter descriptions, and the tool description fully compensates. It explains path defaulting to the projects directory, filename-only handling, and the compressed parameter's True/False/None semantics including the extension-based fallback and the .mmp plain-XML rule.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence 'Save the current LMMS project to a file' states a specific verb, resource, and file target, making the tool's purpose immediately clear. It is distinct from sibling tools like load_project, create_project, and render_project because it explicitly refers to saving the project file itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains how the parameters behave but gives no explicit guidance on when to choose save_project over alternatives. It does not mention exclusions, prerequisites, or contrast with related operations like load_project or render_project, leaving the agent to infer usage context.

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

scan_vst_directoryA

Scan a folder for VST plugin DLLs (.dll files).

Args: directory: Path to scan (e.g. "C:/VSTPlugins") recursive: Include subdirectories

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryYes
recursiveNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral burden. The verb 'Scan' clearly indicates a read-only discovery operation, and the explicit reference to .dll files plus the recursive option explains traversal behavior. It does not cover edge cases like invalid paths or permission errors, but the output schema likely covers the result shape and this is a simple non-destructive tool.

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

Conciseness5/5

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

The description is a single clear opening sentence followed by a compact Args list with no filler. The example path earns its place by clarifying the expected path format, making the structure efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read-only scan with an output schema present, the description is nearly sufficient: purpose, target file type, path example, and recursion toggle are all included. It lacks explicit usage conditions or alternative routing, but the simplicity of the tool and the presence of an output schema make that a minor gap.

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

Parameters5/5

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

Schema description coverage is 0%, so the Args block is essential and fully compensates. The directory parameter gets a purpose plus a concrete path example, and recursive is explicitly defined as 'Include subdirectories'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Scan'), a specific resource ('a folder'), and a specific target ('VST plugin DLLs (.dll files)'). This clearly differentiates it from sibling tools such as list_available_plugins or add_vst_track.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used when discovering VST DLLs on disk, but it never explicitly states when to use it instead of plugin-related alternatives or gives exclusions. There is no sibling comparison or contextual routing, so usage guidance is only implicit.

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

set_master_pitchA

Set the master pitch offset.

Args: pitch: Pitch offset in semitones (-12 to +12)

ParametersJSON Schema
NameRequiredDescriptionDefault
pitchYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It reveals the core state-changing operation and the constraint range (-12 to +12 semitones), which is useful, but it does not mention side effects, persistence, or whether this affects playback/rendering immediately.

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

Conciseness5/5

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

The description is minimal and well-structured: a clear one-line purpose statement followed by a single parameter explanation. There is no redundant or unnecessary content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter setter, the description covers the purpose and parameter semantics well. The output schema exists, so return-value details are not needed. The main gap is the lack of usage/side-effect context, but the tool is simple enough that this is a minor omission.

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

Parameters5/5

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

The schema only says 'pitch' is an integer with no description. The description compensates by explaining the parameter meaning ('Pitch offset in semitones') and its valid range (-12 to +12), providing exactly the semantic information an agent needs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Set') and the target resource ('the master pitch offset'), making it easy to distinguish from siblings like set_master_volume or set_tempo. It is specific and uses a verb+resource structure, though it does not explicitly differentiate itself from alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 other setters, no mention of prerequisites, and no stated effect on the current project. The intended usage is only implied by the tool name and the verb in the description.

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

set_master_volumeA

Set the master volume.

Args: volume: Master volume (0-200, 100=normal)

ParametersJSON Schema
NameRequiredDescriptionDefault
volumeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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 communicates that this is a mutation operation on the master volume, but it does not disclose whether out-of-range values are clamped, whether the change is persistent, or what side effects might occur. Basic behavior is clear, but richer behavioral context is absent.

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

Conciseness5/5

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

The description is very short and front-loaded, with no filler. The one-line purpose and one-line parameter explanation are efficient and directly usable by an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has a single required parameter, a documented range, and an output schema, the description is sufficient for correct invocation. However, the lack of sibling differentiation or usage context slightly reduces completeness in the broader toolset.

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

Parameters5/5

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

The schema has 0% description coverage, so the description fully compensates by explaining the parameter: "volume: Master volume (0-200, 100=normal)". This adds a range and a meaningful reference point that the raw schema does not provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: "Set the master volume." This clearly distinguishes the tool from volume-related siblings like set_track_volume and set_mixer_channel_volume because it targets the master volume, not a track or mixer channel.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. The sibling list includes set_track_volume and set_mixer_channel_volume, but the description does not mention these or any conditions that would make one volume control more appropriate than another.

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

set_mixer_channel_nameB

Rename a mixer channel.

Args: channel_num: Channel number (0=Master) name: New channel name

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
channel_numYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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 gives the action and parameter hints ('0=Master'), but does not mention whether the channel must already exist, whether the change is reversible, how errors are handled, or what side effects may occur.

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

Conciseness5/5

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

The description is extremely concise, front-loaded with the action, and uses a clear argument list. Every line serves a purpose, and there is no filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple two-parameter setter with an output schema, so the description is minimally viable. However, it lacks important context such as whether the channel must exist, what happens for invalid channel numbers, and whether renaming affects other references. These gaps are notable for a mutation without annotations.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaningful semantics for both parameters: channel_num is clarified as 0=Master, and name is described as 'New channel name'. This goes beyond the bare schema, though the explanation of 'name' is somewhat tautological.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Rename') and resource ('mixer channel'), which clearly conveys the tool's function. It does not explicitly differentiate from sibling tools like set_mixer_channel_volume, but the action and target are distinct enough for an agent to understand the core purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 add_mixer_channel or get_mixer_channels. It implies usage when renaming is desired, but there is no explicit context, prerequisite, or exclusion.

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

set_mixer_channel_volumeA

Set the volume of a mixer channel.

Args: channel_num: Channel number (0=Master) volume: Volume (0.0-2.0, 1.0=0dB)

ParametersJSON Schema
NameRequiredDescriptionDefault
volumeYes
channel_numYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

The description discloses the core behavior: setting a volume value, with a documented range and 0dB reference. However, there are no annotations, and the description does not mention possible clamping, side effects, or how the operation interacts with the master volume when channel_num is 0.

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

Conciseness5/5

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

The description is extremely compact and front-loaded with the action, followed by a clean Args block. Every sentence and detail earns its place, with no filler or repetition of schema data.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter setter with an output schema, the description provides nearly all necessary calling context: channel semantics, volume range, and decibel reference. It is slightly incomplete in that it does not explain when to prefer this over sibling volume tools or what happens when setting channel 0.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by documenting both parameters: channel_num is defined as 0=Master, and volume is given a numeric range plus the meaningful 1.0=0dB reference. These details add value far beyond the bare input schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: 'Set the volume of a mixer channel.' This is specific enough to distinguish from track-level operations, though it does not explicitly differentiate itself from set_master_volume, especially since channel_num 0=Master overlaps with that sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The resource scope 'mixer channel' implies when the tool should be used, but there is no explicit guidance about when to choose set_mixer_channel_volume over set_track_volume or set_master_volume. The special case of channel_num 0=Master is noted, but no alternatives or exclusions are mentioned.

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

set_tempoA

Set the song tempo (BPM).

Args: bpm: Tempo in beats per minute (10-999)

ParametersJSON Schema
NameRequiredDescriptionDefault
bpmYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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 communicates that the operation sets a value and gives the valid BPM range, but it does not mention side effects, whether the tempo is applied to the current project only, or what the response contains. For a simple setter this is adequate but not fully transparent.

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

Conciseness5/5

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

The description is extremely concise, consisting of one clear sentence and a single parameter definition. Every word earns its place, with no filler or repetition of schema information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter setter with an output schema present, the description is largely complete: it states the action, the target, the parameter's meaning, and its valid range. It lacks explicit usage guidance and behavioral details, but the simplicity of the tool keeps these gaps minor.

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

Parameters5/5

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

Schema description coverage is 0%, but the description fully compensates by explaining that bpm is 'Tempo in beats per minute (10-999)'. This adds unit, meaning, and an explicit validation range that the raw integer schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Set the song tempo (BPM)'. This makes the tool's function immediately clear and distinguishable from sibling tools like set_time_signature, set_master_volume, and set_master_pitch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied by 'Set the song tempo', but there is no explicit guidance about when to choose this over related settings or whether a project must be loaded first. It does not name alternatives or exclusions, so the agent must infer the usage context.

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

set_time_signatureA

Set the time signature.

Args: numerator: Beats per bar (e.g. 4, 3, 6) denominator: Beat unit (e.g. 4 for quarter notes, 8 for eighth notes)

ParametersJSON Schema
NameRequiredDescriptionDefault
numeratorYes
denominatorYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

There are no annotations, so the description carries the full behavioral burden. It only explains the parameter meanings and does not disclose whether the change is global, whether existing notes are affected, what valid ranges are, or what happens on invalid input.

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

Conciseness5/5

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

The description is brief, front-loaded with the purpose, and uses a clean Args section with no redundant filler. Every sentence contributes necessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter setter, the description covers the essential meaning of both parameters and the operation itself. It could be more complete with allowed ranges or global scope, but the low complexity and presence of an output schema make this adequate.

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

Parameters4/5

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

Schema description coverage is 0%, so the parameter explanations in the description are essential. It adds real meaning by defining numerator as 'Beats per bar' with examples and denominator as 'Beat unit' with note-value examples, going beyond the bare integer schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the exact operation with a specific verb and resource: 'Set the time signature.' This is unambiguous and naturally distinguishes it from siblings like set_tempo or set_master_volume, since the resource is uniquely the time signature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool — whenever a time signature needs to be set — but does not explicitly state alternatives, exclusions, or contextual conditions. There is no direct comparison with related set_* tools.

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

set_track_panningA

Set the panning of a track.

Args: track_index: Zero-based track index panning: Pan value (-100=left, 0=center, 100=right)

ParametersJSON Schema
NameRequiredDescriptionDefault
panningYes
track_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must carry disclosure of behavior. It states that the tool sets panning and documents the valid value range, but does not explain side effects, invalid-index handling, persistence, or whether automation may override the value. Adequate for a simple setter, 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.

Conciseness5/5

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

Single clear sentence plus a compact argument list with no filler. The core action is front-loaded, and each line earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter setter, the description covers all input semantics needed to call it correctly, and an output schema exists for the return value. Minor gaps like requiring an existing track or failure behavior do not materially hinder correct invocation.

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

Parameters4/5

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

Schema description coverage is 0%, and the description compensates by defining track_index as zero-based and panning as a scale from -100 to 100 with positional anchors. This adds meaningful context beyond the bare integer schema properties, though it omits behavior for out-of-range values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a specific action—set the panning of a track—with a clear resource and property, distinguishing it from sibling tools like set_track_volume. It is not a tautology and tells the agent exactly 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives, though the action is clear enough to imply its use case. There is no mention of prerequisites, exclusions, or conditions that would make a sibling tool more appropriate.

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

set_track_volumeA

Set the volume of a track.

Args: track_index: Zero-based track index volume: Volume level (0-200, 100=normal)

ParametersJSON Schema
NameRequiredDescriptionDefault
volumeYes
track_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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 the mutation ('Set') and constrains valid input (0-200, 100=normal) and zero-based indexing, but it does not mention failure behavior, out-of-range handling, or whether the change is immediate or audibly applied.

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

Conciseness5/5

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

The description is two compact sentences plus a tight args block with no filler. The core action is front-loaded and each parameter detail earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 2-parameter mutation with an output schema, the essential invocation details are present: action, argument meanings, and range. Missing guidance about when to prefer this over mixer/master volume tools 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.

Parameters4/5

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

Schema coverage is 0% — the schema only gives integer types and titles. The description compensates by defining zero-based track_index and the volume scale with a normal level, which is essential for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Set the volume of a track.' It is clear and distinct from siblings like set_mixer_channel_volume by resource, but it does not explicitly differentiate itself from those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for individual track volume control through its verb and object, but it provides no explicit when-to-use guidance, prerequisites, or comparisons to alternatives such as set_mixer_channel_volume, set_master_volume, or mute_track.

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

set_zyn_paramsA

Set ZynAddSubFX global parameters on a zynaddsubfx track.

All values are 0-127 as in the ZynAddSubFX UI. Only provided parameters are changed.

Args: track_index: Index of the zynaddsubfx track portamento: Portamento amount (0-127) filterfreq: Filter cutoff frequency (0-127) filterq: Filter resonance/Q (0-127) bandwidth: Bandwidth (0-127) fmgain: FM gain (0-127) rescenterfreq: Resonance center frequency (0-127) resbandwidth: Resonance bandwidth (0-127)

ParametersJSON Schema
NameRequiredDescriptionDefault
fmgainNo
filterqNo
bandwidthNo
filterfreqNo
portamentoNo
track_indexYes
resbandwidthNo
rescenterfreqNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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 disclose a key behavior: 'Only provided parameters are changed,' and it states the 0-127 value range. However, it does not describe mutation effects, error behavior, or what happens if the track is not a ZynAddSubFX track.

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

Conciseness5/5

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

The description is well-structured and efficient: a one-sentence purpose, two crucial usage constraints, then a clean parameter list. Nothing is redundant, and the front-loaded purpose makes orientation immediate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter mutation tool with no annotations, the description covers the core requirements: target resource, parameter meaning, value range, and partial-update semantics. It could be more explicit about what 'global parameters' means versus per-note parameters, but the provided information is largely sufficient.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It enumerates all eight parameters with human-readable meanings and value ranges, e.g., 'filterfreq: Filter cutoff frequency (0-127)' and 'track_index: Index of the zynaddsubfx track.' This adds meaning beyond the bare schema titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Set ZynAddSubFX global parameters on a zynaddsubfx track.' This clearly distinguishes the tool from siblings like set_track_volume and load_zyn_preset, and the parameter list makes the scope explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. Usage context is only implied by the tool's purpose; there is no explicit 'use when...' statement.

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

solo_trackA

Solo or unsolo a track.

Args: track_index: Zero-based track index solo: True to solo, False to unsolo

ParametersJSON Schema
NameRequiredDescriptionDefault
soloNo
track_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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 states the action. It does not explain whether soloing one track unsolos others, what happens when the track index is invalid, or what observable effect the tool has on the project/playback.

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

Conciseness5/5

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

The description is extremely concise and front-loaded. The first sentence states the entire purpose, and the Args section adds parameter semantics in a compact, scannable format with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter toggle, the description is minimally adequate, but it leaves out important behavioral context such as whether solo is exclusive, how unsolo interacts with other soloed tracks, and error behavior. The output schema may cover return values, but operational expectations are not fully specified.

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

Parameters4/5

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

The schema provides types and a default but no descriptions, so the description's Args section supplies essential meaning: track_index is zero-based and solo explicitly maps true/false to solo/unsolo. This compensates well for the 0% schema description coverage, though it does not mention default behavior when 'solo' is omitted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Solo or unsolo a track.' This clearly distinguishes the tool's function from sibling tools like mute_track or set_track_volume, since soloing is a distinct mixing action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: call this when you want to change a track's solo state. However, there is no explicit guidance about when to use it instead of related track controls, nor any mention of prerequisites or effects on other tracks.

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

ticks_to_bars_converterA

Convert ticks to bars (192 ticks per bar in 4/4 time).

Args: ticks: Number of ticks

ParametersJSON Schema
NameRequiredDescriptionDefault
ticksYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

There are no annotations, so the description carries the full burden. It discloses the key behavioral detail—that 192 ticks equal one bar in 4/4 time—which fully characterizes the conversion. It does not mention rounding or fractional output, but the presence of an output schema reduces the need for that detail.

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

Conciseness5/5

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

The description is extremely concise: one sentence plus an Args list, with the core operation and conversion factor front-loaded. Every part is relevant and no space is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter utility converter with an output schema, the description is complete. It gives the necessary conversion formula and parameter meaning, and the low complexity means no additional context is needed.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate for the single 'ticks' parameter. It adds only 'Number of ticks', which clarifies the meaning but is largely redundant with the parameter name and title. It provides no constraints such as non-negative values, though for this simple conversion the meaning is reasonably clear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Convert ticks to bars' with the fixed conversion rate of 192 ticks per bar in 4/4 time. This clearly distinguishes it from the sibling bars_to_ticks_converter by making the conversion direction unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use this tool: whenever ticks need to be converted to bars. It does not explicitly name the inverse sibling or provide exclusion rules, but the conversion direction is stated plainly, which is sufficient for such a simple utility.

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

toggle_effectA

Enable or disable an effect without removing it.

Args: target_type: "track" or "mixer" target_index: Track index or mixer channel number effect: Effect name or chain position enabled: True to enable, False to bypass

ParametersJSON Schema
NameRequiredDescriptionDefault
effectYes
enabledYes
target_typeYes
target_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

Because no annotations are provided, the description carries the full behavioral disclosure burden. It discloses the core mutation (enable/disable) and the non-destructive trait ('without removing it'), and explains 'False to bypass'. However, it doesn't mention prerequisites such as the effect already existing or validation/error behavior, leaving some transparency gaps.

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

Conciseness5/5

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

The descction is short and front-loaded with the core purpose, followed by a compact arg list. Every line earns its place without vagueness 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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple four-parameter mutation with no annotations, the description covers all parameter semantics and the key side-effect boundary (doesn't remove the effect). An output schema exists, so not describing the return value is acceptable; a brief nod to validating the effect chain would improve it but isn't essential.

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

Parameters5/5

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

Schema description coverage is 0%, and the description compensates fully by explaining the meaning of every parameter: target_type values ('track' or 'mixer'), target_index semantics, effect name/chain position, and enabled true/false behavior. This adds substantial meaning beyond the raw schema types and titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('enable or disable') and resource ('an effect') and explicitly distinguishes the operation from removal. This separates it clearly from sibling tools like add_effect and remove_effect without needing to open schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'without removing it' supplies clear context that this tool is for toggling the state of an existing effect rather than adding or deleting one. It doesn't explicitly name alternatives or exclusions, but the intended use is clear for an agent operating among the sibling tools.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 52 tool updatesv0.1.0
    • First observedadd_automation
    • First observedadd_automation_track
    • First observedadd_effect
    • First observedadd_instrument_track
    • First observedadd_mixer_channel
    • First observedadd_note
    • First observedadd_note_by_name
    • First observedadd_notes_batch
    • First observedadd_pattern_track
    • First observedadd_sample_track
    • First observedadd_vst_track
    • First observedassign_sample_file
    • First observedbars_to_ticks_converter
    • First observedcreate_project
    • First observeddelete_clip
    • First observedgenerate_scale
    • First observedget_arrangement
    • First observedget_effect_chain
    • First observedget_lmms_info
    • First observedget_mixer_channels
    • First observedget_project_info
    • First observedget_project_xml
    • First observedget_track
    • First observedkey_to_note_name
    • First observedlist_available_plugins
    • First observedlist_tracks
    • First observedlist_zyn_presets
    • First observedload_project
    • First observedload_zyn_preset
    • First observedmove_clip
    • First observedmute_track
    • First observednote_name_to_key
    • First observedplace_bb_clip
    • First observedplace_pattern
    • First observedplace_sample_clip
    • First observedremove_effect
    • First observedremove_track
    • First observedrender_project
    • First observedsave_project
    • First observedscan_vst_directory
    • First observedset_master_pitch
    • First observedset_master_volume
    • First observedset_mixer_channel_name
    • First observedset_mixer_channel_volume
    • First observedset_tempo
    • First observedset_time_signature
    • First observedset_track_panning
    • First observedset_track_volume
    • First observedset_zyn_params
    • First observedsolo_track
    • First observedticks_to_bars_converter
    • First observedtoggle_effect

TDQS

B3.2/5.0

Scored across 52 tools

Disambiguation3/5

Most tools map cleanly to a specific resource (tracks, mixer, effects, clips), but add_note and add_note_by_name are near-duplicates with only input-format differences, and get_project_info overlaps with list_tracks and get_mixer_channels. Descriptions help, but the boundaries are not always crisp.

Naming Consistency4/5

The set overwhelmingly follows a snake_case verb_noun pattern such as add_instrument_track, remove_effect, set_tempo, and list_tracks. Minor deviations exist in the converter utilities (note_name_to_key, bars_to_ticks_converter) and the add_note_by_name / add_notes_batch variants, but the overall convention is predictable.

Tool Count1/5

52 tools is beyond the 50+ extreme threshold in the rubric, making the surface unwieldy for agent selection. Several tools such as add_note_by_name and the standalone converters could be consolidated into more general tools.

Completeness2/5

Creation and arrangement workflows are broadly covered, but note editing is incomplete: there is no way to list, update, or delete notes once added, which creates dead ends for pattern editing. Mixer channels can be added but not removed, and effect parameters cannot be adjusted beyond enabling/disabling.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    Enables AI agents to control a browser-based digital audio workstation (openDAW) for music production, including track creation, effects, MIDI, automation, and rendering.
    100
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to generate, inspect, and micro-tune OpenUtau .ustx project files and DiffSinger neural expression curves.
    MIT
  • F
    license
    B
    quality
    C
    maintenance
    Enables LLM agents to manipulate Synthesizer V Studio 2 Pro projects, including notes, lyrics, phonemes, vocal attributes, parameters, and playback through the official Dreamtonics Scripting API.
    26
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to create, parse, edit, and render MIDI files through standard MCP tools, returning absolute file paths to support iterative music generation and revision.
    -