Skip to main content
Glama

AbletonMCP Extended

PyPI version PyPI downloads Glama MCP server License: MIT Forked from ahujasid/ableton-mcp

PyPI: ableton-mcp-suite · install with uvx ableton-mcp-suite

A heavily extended fork of @ahujasid/ableton-mcp — 45 tools total (22 new + 10 enhanced) for full music production workflows from Claude.

The upstream ableton-mcp exposes 16 mostly-additive tools (create track, create clip, add notes, fire/stop, set tempo). This fork adds device parameter control, track state management, audio import, return/master track support, full Arrangement view operations, device routing (sidechain!), and locator/cue point management — everything you need to take Claude from "writes MIDI notes" to "actually mixes and arranges a song."

Every tool in this fork was added during a real production session (a 12+ hour Afro-deep-house track build), in response to a real blocker. Nothing is speculative.


Why this fork exists

Upstream ableton-mcp is a brilliant bridge — it solves the hard problem of connecting Claude to Ableton via a Remote Script + socket server. But its surface is narrow:

  • No device parameter control → Claude can drop a Reverb on a track but can't set its decay

  • No deletion → Mistakes accumulate; can't say "scratch that, remove the device"

  • No track state → Can't mute, solo, set volume, set pan, set sends

  • No Arrangement view → Clips only land in Session view; you drag every one onto the timeline yourself

  • No return / master tracks → Can't put reverb on a return, can't load a limiter on master

  • No device routing → Can't set sidechain inputs (so no deep-house pumping)

  • No locators / loop region → Can't mark section boundaries or loop a section

  • Audio import is fragile → File path loading isn't direct in Live's Python API

This fork addresses all of the above with 22 new tools plus enhancements to 10 existing tools.


Related MCP server: ableton-mcp

Quickstart

Prerequisites

  • Ableton Live 11 or 12 (tested on Live 12.4 Beta)

  • Python 3.10+

  • uv package manager

  • Either Claude Desktop or Claude Code (CLI)

Install

Easiest (PyPI, recommended): no clone needed — Claude / Cursor / Cline will install on demand via uvx.

# Verify it runs (optional sanity check)
uvx ableton-mcp-suite --help

From source (for development / contributing):

git clone https://github.com/farmhutsoftwareteam/ableton-mcp-extended.git
cd ableton-mcp-extended
uv sync

Install the Remote Script (the side that runs INSIDE Ableton)

⚠️ On Ableton Live 12, install the Remote Script at:

~/Music/Ableton/User Library/Remote Scripts/AbletonMCP/__init__.py

NOT the path the upstream README suggests (User Remote Scripts under Preferences — that's for Instant Mappings, not full Remote Scripts). This is a Live 12 change that the upstream README hasn't been updated for.

mkdir -p "$HOME/Music/Ableton/User Library/Remote Scripts/AbletonMCP"
cp AbletonMCP_Remote_Script/__init__.py "$HOME/Music/Ableton/User Library/Remote Scripts/AbletonMCP/__init__.py"

On Windows, the path is %USERPROFILE%\Documents\Ableton\User Library\Remote Scripts\AbletonMCP\__init__.py.

Wire it up in Ableton

  1. Launch Ableton Live

  2. Settings → Tempo & MIDI

  3. Under Control Surface, pick AbletonMCP

  4. Set Input = None, Output = None

If "AbletonMCP" doesn't appear in the dropdown, fully quit Live (⌘Q / Alt-F4) and reopen — Remote Scripts are only scanned on startup.

Connect Claude to this fork

For Claude Desktop (easiest — uses PyPI package), edit ~/Library/Application Support/Claude/claude_desktop_config.json (Mac) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "ableton-mcp": {
      "command": "uvx",
      "args": ["ableton-mcp-suite"]
    }
  }
}

For Claude Code (CLI):

claude mcp add ableton-mcp -s user -- uvx ableton-mcp-suite

For Cursor / Cline / other MCP clients, use the same uvx ableton-mcp-suite command in your client's MCP config.

From a local clone (for development):

# Claude Desktop config:
"command": "uv", "args": ["run", "--directory", "/absolute/path/to/ableton-mcp-extended", "python", "-m", "MCP_Server.server"]

# Claude Code:
claude mcp add ableton-mcp -s user -- uv run --directory /absolute/path/to/ableton-mcp-extended python -m MCP_Server.server

Restart your Claude client. You should see ableton-mcp connected with 38 tools available.


Tool reference

Legend: 🆕 = new in this fork · ⊕ = enhanced (extra parameters) · ✅ = unchanged from upstream

Session & track inspection

Tool

Notes

get_session_info()

✅ Tempo, signature, track count, master

get_track_info(track_index, track_kind="regular")

track_kind parameter — "regular", "return", "master"

get_master_track_info() 🆕

Convenience — no index needed

get_browser_tree(category_type="all")

✅ Hierarchical browser tree

get_browser_items_at_path(path)

✅ List items at a specific browser path

Track creation & management

Tool

Notes

create_midi_track(index=-1)

✅ Create new MIDI track

create_audio_track(index=-1) 🆕

Create new audio track

set_track_name(track_index, name, track_kind="regular")

⊕ Now supports returns + master

set_track_volume(track_index, volume, track_kind="regular") 🆕

0.0–1.0 (0.85 ≈ unity)

set_track_pan(track_index, pan, track_kind="regular") 🆕

-1.0 (L) to 1.0 (R)

set_track_send(track_index, send_index, value) 🆕

0.0–1.0; sends to return tracks

set_track_mute(track_index, mute, track_kind="regular") 🆕

Bool — works on regulars + returns

set_track_solo(track_index, solo, track_kind="regular") 🆕

Bool

set_track_arm(track_index, arm) 🆕

Bool — regulars only

delete_track(track_index) 🆕

Destructive, no undo on trial license

Clip operations (Session view)

Tool

Notes

create_clip(track_index, clip_index, length=4.0)

✅ Create empty MIDI clip

set_clip_name(track_index, clip_index, name)

✅ Rename clip

add_notes_to_clip(track_index, clip_index, notes)

✅ Write MIDI notes

delete_clip(track_index, clip_index) 🆕

Remove clip from Session slot

import_audio_file(track_index, clip_index, file_path) 🆕

Load audio file. Multiple fallback strategies — direct API, browser refresh, walk all browser attributes. Documents API limitations honestly.

fire_clip(track_index, clip_index)

✅ Fire (play) a Session clip

stop_clip(track_index, clip_index)

✅ Stop a Session clip

Device operations

Tool

Notes

load_instrument_or_effect(track_index, uri, track_kind="regular")

⊕ Load device on regular / return / master

load_drum_kit(track_index, rack_uri, kit_path)

✅ Load drum rack + kit

get_device_parameters(track_index, device_index, track_kind="regular") 🆕

List every parameter with name, current value, min, max, quantized values

set_device_parameter(track_index, device_index, parameter_index, value, track_kind="regular") 🆕

The big one — dial any knob

delete_device(track_index, device_index, track_kind="regular") 🆕

Remove device from chain

get_device_routings(track_index, device_index, track_kind="regular") 🆕

Inspect available input routings (sidechain sources, etc.)

set_device_routing(track_index, device_index, routing_type_name, routing_channel_name, track_kind="regular") 🆕

Set sidechain input / device routing

Arrangement view (entirely new in this fork)

Tool

Notes

place_clip_in_arrangement(track_index, source_slot, position) 🆕

Duplicate a Session MIDI clip onto the timeline at a beat position

clear_arrangement_clips(track_index) 🆕

Delete all arrangement clips on a track

get_arrangement_clips(track_index) 🆕

List arrangement clips with positions/lengths/names

set_locator(position, name) 🆕

Add or update a named locator (cue point)

clear_locators() 🆕

Delete all locators

set_loop(start, length, enabled=True) 🆕

Set Arrangement view loop region

Transport & global

Tool

Notes

start_playback()

✅ Start playback

stop_playback()

✅ Stop playback

set_tempo(tempo)

✅ Set song tempo

Total: 38 tools.


The story — how this fork came to be

This fork was built in a single ~12-hour production session, alongside the actual music it was being used to make ("Mbira Tension Stems" — an Afro-deep-house track combining Suno-generated stems with original Ableton MIDI). Every tool was added in direct response to a real production blocker. The fork evolved across five versions:

v1 — Device parameter control + track state (9 tools)

Blocker: Claude could load a Reverb but couldn't set its decay. Could create tracks but couldn't mute or solo them.

Added: get_device_parameters, set_device_parameter, set_track_volume, set_track_mute, set_track_solo, set_track_arm, delete_track, delete_clip, delete_device.

The single biggest unlock was set_device_parameter — turning Claude from "load default devices" into "dial in actual settings." Suddenly we could specify "set Compressor attack to 0.5ms, ratio to 4:1" and have it happen.

v2 — Audio tracks + pan/send + audio import (4 tools)

Blocker: Couldn't create audio tracks. Couldn't set pan or sends. Couldn't import audio files.

Added: create_audio_track, set_track_pan, set_track_send, import_audio_file.

import_audio_file is the gnarly one. Live's Python API doesn't accept arbitrary file paths directly — files have to be reachable through Live's browser. The implementation walks the browser tree looking for a match, with multiple fallback strategies and honest error messages when it can't find the file. This is documented as a known limitation.

v3 — Return + master track support (1 tool + 10 enhanced)

Blocker: Couldn't put reverb on a return track. Couldn't load a limiter on master.

Realized Live distinguishes _song.tracks, _song.return_tracks, and _song.master_track — three separate collections. Added an optional track_kind parameter ("regular", "return", "master") to 10 existing tools (get_track_info, set_track_name, set_track_volume, set_track_pan, set_track_mute, set_track_solo, load_instrument_or_effect, get_device_parameters, set_device_parameter, delete_device). Plus added get_master_track_info() as a convenience.

v4 — Arrangement view operations (5 tools)

Blocker: All clips landed in Session view. Building a song timeline meant dragging every clip manually onto Arrangement.

Added: place_clip_in_arrangement, clear_arrangement_clips, get_arrangement_clips, set_locator, set_loop.

place_clip_in_arrangement reads notes from a Session MIDI clip (via clip.get_notes_extended()), creates a new clip on the Arrangement timeline via track.create_midi_clip(start, end), then writes the notes into it. This let us programmatically construct a 120-bar song timeline with 186 clip placements in two batches of MCP calls.

v4.1 — Bug fixes + clear_locators (1 tool)

Bugs found in v4:

  1. get_notes_extended() returns tuples, not objects. My first implementation assumed it returned MidiNote objects with .pitch attributes — it actually returns tuples (pitch, time, duration, velocity, mute). Fixed to handle all three shapes (tuples, objects, dicts).

  2. current_song_time can't be set past song length. Live refused to position the playhead at beat 192 when the song was only 0 bars long. The locator API requires moving the playhead first. Fixed with a song-length pre-check + clearer error message. Workaround: place arrangement clips first to extend the song, then add locators.

Added: clear_locators() for redo workflows.

v5 — Device routing (sidechain input) (2 tools)

Blocker: Couldn't set sidechain inputs on Compressors. This is THE deep-house signature — kick triggers bass + pads ducking. Without it, the mix doesn't breathe.

Realized Live distinguishes "parameters" (continuous knob values) from "routings" (channel source selections). set_device_parameter only handles parameters. Sidechain INPUT is a routing.

Added: get_device_routings, set_device_routing. They probe multiple Live API surfaces (available_input_routing_types, input_routing_types, input_routings, audio_inputs) because the property names vary across Live versions, and return diagnostic info on failure.


Implementation notes (the gnarly parts)

Live API gotchas this fork handles

  • get_notes_extended() returns tuples on Live 12.4 Beta, not objects. The implementation handles tuples, objects with .pitch, and dicts.

  • current_song_time can't be set past song length. Locator placement validates against song length first; gives a clear error message pointing to the fix (place clips first).

  • Browser scanning is lazy. Files added to User Library during a Live session aren't indexed until rescanned. import_audio_file tries multiple fallbacks: direct clip_slot.create_audio_clip(path), app.browser.refresh(), walks all browser attributes via dir().

  • Routing vs parameters are different APIs. Sidechain input is a routing, not a parameter. Required a separate tool (set_device_routing) with its own discovery flow (get_device_routings).

  • Track kinds. _song.tracks, _song.return_tracks, _song.master_track are three different collections. The track_kind parameter dispatches correctly.

Threading

All commands that modify Live state are scheduled on Live's main thread via self.schedule_message(0, main_thread_task). Read-only commands (get_session_info, browser inspection) run directly. This matches the upstream pattern.

Error handling philosophy

Every tool returns rich diagnostic info on failure — what was tried, what was available, what the Live API surfaced. Production sessions hit unfamiliar API surfaces constantly; clear errors save hours.


Limitations & known issues

  • Automation envelopes are not yet supported. Filter sweeps over time, volume rides per section, reverb send automation — these all require clip.envelopes API which isn't exposed in this fork. Coming in a future version.

  • Audio import requires browser-reachable files. Files must be in ~/Music/Ableton/User Library/ or a folder added as a Place in Live's browser sidebar. The browser-walk implementation can find them only after Live has indexed them.

  • Sidechain input routing depends on Live version. The implementation probes multiple attribute names but Live 12.4 Beta exposes a different API surface than Live 11. Manual routing dropdown click may still be needed in some setups.

  • Trial Ableton licenses block save and export. Production work is in-session only on the trial.

  • No vocal sample generation / no audio synthesis. This is a Live control bridge, not an audio generator. Bring your own samples or use Live's stock instruments.


Keywords / discoverability

ableton, ableton live, ableton 12, ableton 11, ableton mcp, ableton remote script, ableton python api, live object model, model context protocol, mcp, claude, claude code, claude desktop, anthropic, anthropic mcp, ai music, ai music production, ai daw, ai assisted music, generative music, prompt music production, deep house, afro house, deep house production, midi, midi automation, ableton automation, ableton sidechain, ableton arrangement, ableton routing, daw automation, mbira, zimbabwean music, kalimba, claude ableton, ableton plugin, ableton extension, music ai tools, mixing, mastering, ableton scripting, live api python, max for live alternative, ableton remote control, ableton tooling, ableton developer


Credits

Built on top of @ahujasid/ableton-mcp by Siddharth Ahuja. All credit for the original Remote Script framework + socket bridge + initial tool set goes there.

Extensions in this fork by farmhutsoftwareteam (Munya Makosa), built during production of the Mbira Tension Stems project. Pull requests welcome.


License

MIT (same as upstream).


Contributing

Found a Live API quirk this fork doesn't handle? Want to add automation envelopes, vocal-chop importing, M4L device control, or any of the other missing pieces? PRs welcome. Open an issue first if it's a big change.

The codebase is small and well-documented — AbletonMCP_Remote_Script/__init__.py is the Remote Script (lives inside Live), MCP_Server/server.py is the MCP server (talks to Claude). Each tool follows a simple pattern: add the command_type to the dispatch list, add an elif handler, add an implementation method, add a matching @mcp.tool() in the server.

Disclaimer

This is an unofficial third-party integration. Not affiliated with or endorsed by Ableton.

Available Tools

38 tools
add_notes_to_clipA

Add MIDI notes to a clip.

Parameters:

  • track_index: The index of the track containing the clip

  • clip_index: The index of the clip slot containing the clip

  • notes: List of note dictionaries, each with pitch, start_time, duration, velocity, and mute

ParametersJSON Schema
NameRequiredDescriptionDefault
notesYes
clip_indexYes
track_indexYes

TDQS

A3.6/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 burden of disclosing side effects. It indicates a mutation ('Add') but does not explain whether notes are appended to existing ones, whether there is validation, or how errors are handled. This minimal disclosure leaves significant behavioral ambiguity.

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 and well-structured: a single-sentence purpose followed by a concise parameter list. Every sentence adds value, and there is no redundancy or filler.

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

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 operation and parameter semantics, but omits important context such as whether notes replace or append, time unit expectations, and error conditions. Given the moderate complexity and absence of output schema, the description is adequate but not fully comprehensive.

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 no descriptions for the parameters, so the description compensates fully by explicitly defining track_index, clip_index, and notes. Particularly, it specifies the note dictionary fields (pitch, start_time, duration, velocity, mute), which is crucial missing meaning beyond the schema's generic array of objects.

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 begins with 'Add MIDI notes to a clip' which is a clear, specific verb plus resource. It clearly distinguishes itself from siblings like create_clip or delete_clip by focusing on note addition rather than clip creation or deletion.

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 this tool versus alternatives, nor any prerequisites such as the clip being a MIDI clip or already existing. The description only states what it does, not the contexts or exclusions.

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

clear_arrangement_clipsA

Delete ALL arrangement clips from a track. Destructive — for redoing arrangement.

Parameters:

  • track_index: Track whose arrangement clips should be cleared

ParametersJSON Schema
NameRequiredDescriptionDefault
track_indexYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the safety-disclosure burden. It explicitly labels itself 'Destructive', which is a critical behavioral trait. It could add more detail about undo or automation side effects, but the core destructive nature is clearly stated.

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 concise sentences plus a parameter list. The most important information (purpose and destructive warning) is front-loaded, and there is no wasted text.

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 destructive tool with one parameter and no output schema, the description is largely sufficient. It covers the action, the destructive nature, the use case, and the parameter. It might benefit from an explicit 'no undo' note, but that is not a major gap.

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?

The schema only defines track_index as an integer. The description adds the clarifying phrase 'Track whose arrangement clips should be cleared', which ties the parameter to the tool's function. This is helpful but minimal – it doesn't specify indexing or validation.

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 ('Delete'), a clear resource ('arrangement clips'), and a scope ('ALL' from a track). This distinguishes it from sibling tools like delete_clip (single clip) or place_clip_in_arrangement.

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 'Destructive — for redoing arrangement' provides a clear use case. However, it does not explicitly list exclusions or alternative tools for similar tasks, so it falls short of a top score.

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

clear_locatorsA

Delete ALL locators (cue points) from the song. Destructive — for redoing locator placement.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden. It explicitly labels the operation as 'Destructive' and confirms it removes 'ALL locators,' clearly conveying the safety profile and scope of the action.

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 consists of two short, purposeful sentences: the first states the action and scope, the second adds the destructive caution and use case. There is 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 parameterless destructive tool with no output schema, the description covers all essential aspects: what it does, the scope, the destructive nature, and the intended use case. This is sufficient for an agent to select and 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 0 parameters and the schema is trivially complete. The description adds the 'ALL' qualifier, reinforcing that no targeting is possible, which aligns with the empty parameter list. Baseline for no parameters is 4.

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 'Delete ALL locators (cue points) from the song.' This is a specific verb+resource with a clear scope ('ALL') and directly distinguishes itself from sibling tools like set_locator (which sets a single locator) and clear_arrangement_clips (which clears clips, not locators).

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 a clear context for use: 'for redoing locator placement.' It implies this is the wholesale reset before re-adding locators, but it does not explicitly mention alternatives or when not to use this tool.

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

create_audio_trackA

Create a new audio track in the session.

Parameters:

  • index: Position to insert the track. -1 = append at end (default).

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNo

TDQS

A4.3/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 burden. It explains the insertion behavior of the index parameter but does not disclose return values, error handling, or whether the track is added to the session view. For a simple create operation, this is adequate but not thorough.

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 plus a parameter bullet. It is front-loaded with the purpose and provides necessary details without 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?

For a one-parameter creation tool with no output schema, the description covers the core function and parameter semantics. It omits potential return values and error scenarios, but these are less critical given the simplicity of the operation.

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 lists 'index' with a default value and no description. The description adds critical semantics: 'Position to insert the track. -1 = append at end (default)', fully compensating 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 clearly states 'Create a new audio track in the session', using a specific verb and resource. This distinguishes it from sibling tools like create_midi_track by explicitly specifying 'audio'.

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 implies use when an audio track is needed, especially contrasted with create_midi_track, but does not explicitly mention alternatives or exclusion criteria. The context is clear enough for an agent to select this tool appropriately.

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

create_clipA

Create a new MIDI clip in the specified track and clip slot.

Parameters:

  • track_index: The index of the track to create the clip in

  • clip_index: The index of the clip slot to create the clip in

  • length: The length of the clip in beats (default: 4.0)

ParametersJSON Schema
NameRequiredDescriptionDefault
lengthNo
clip_indexYes
track_indexYes

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 should disclose behavioral traits but only states the basic action. It does not explain what happens if the clip slot already contains a clip, whether the track must exist, or any side effects like stopping playback. For a mutation tool this is a significant gap.

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

Conciseness5/5

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

The description is compact and front-loaded: a one-sentence purpose followed by a clear parameter list. Every sentence earns its place with no redundant information.

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 purpose and parameters, but given no annotations and no output schema, it leaves important context unaddressed, such as prerequisites (track existence), overwrite behavior, and return value. It is adequate but has clear gaps for a create operation.

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 provides useful explanations for each parameter: track_index identifies the track, clip_index identifies the slot, and length is in beats with a default of 4.0. This adds meaning beyond the bare schema property 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?

The description clearly states the tool creates a new MIDI clip in a specified track and clip slot, using a specific verb and resource. This distinguishes it from siblings like create_midi_track 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 Guidelines2/5

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

No when-to-use or when-not-to-use guidance is provided. It does not mention alternatives like create_midi_track for creating a track first or add_notes_to_clip for populating the clip, nor prerequisites such as the track existing.

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

create_midi_trackA

Create a new MIDI track in the Ableton session.

Parameters:

  • index: The index to insert the track at (-1 = end of list)

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNo

TDQS

A4/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 states the action and the index parameter but does not disclose side effects (e.g., does it select the new track, what defaults are used, returns of the call). This is minimal disclosure 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 concise: one sentence for the main action and one bullet for the parameter. It front-loads the purpose and avoids extraneous content, with every word earning 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?

For a simple tool with one optional parameter and no output schema, the core action and parameter are covered. However, it lacks information about return value, whether the track is selected, or any default behavioral aspects, which would make it more 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?

The input schema provides no description for the 'index' parameter (0% coverage). The description compensates fully by explaining 'The index to insert the track at (-1 = end of list)', giving clear semantic meaning beyond the default value and type.

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 'Create a new MIDI track in the Ableton session', using a specific verb (create) and resource (MIDI track). It distinguishes from sibling 'create_audio_track' by explicitly specifying 'MIDI'.

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 that this tool is for creating a MIDI track, which implicitly differentiates it from create_audio_track. However, it does not explicitly mention alternatives or when-not-to-use cases, so it misses the highest score for explicit guidance.

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 from a Session-view clip slot. No-op if the slot is empty.

ParametersJSON Schema
NameRequiredDescriptionDefault
clip_indexYes
track_indexYes

TDQS

A3.9/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 behavioral disclosure. It transparently states the destructive nature ('Delete') and the no-op behavior on empty slots. It also scopes the operation to Session view, but does not cover reversibility or error handling for invalid indices. Adds meaningful behavioral context beyond the bare action.

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: 'Delete a clip from a Session-view clip slot. No-op if the slot is empty.' Every word earns its place, with the action and key edge case stated upfront. No fluff 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?

Given the simplicity of the tool (2 integer params, no output schema, no annotations), the description covers the core operation, the scope (Session view), and an important edge case (empty slot). It does not detail return values or error conditions, but these are less critical for a simple mutation. Overall sufficient but not exhaustive.

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 must compensate for the lack of parameter documentation. Unfortunately, the description does not mention track_index or clip_index beyond the implicit reference to a 'clip slot'. It does not explain which index corresponds to what or how they are used, leaving the agent to infer from the property names alone.

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), the resource (clip), and the scope (Session-view clip slot). It distinguishes from sibling tools like delete_track and delete_device by specifying the exact target. The phrase 'No-op if the slot is empty' further clarifies behavior, making the purpose unmistakable.

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 deleting clips from Session view slots, which indirectly differentiates from tools like clear_arrangement_clips or delete_track. However, it does not explicitly state when to use this tool over alternatives or provide any exclusions. The context is clear but not elaborated.

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

delete_deviceA

Delete a device from a track's device chain.

Parameters:

  • track_index: Track containing the device (ignored for master)

  • device_index: Position in the chain

  • track_kind: 'regular' (default), 'return', or 'master'

ParametersJSON Schema
NameRequiredDescriptionDefault
track_kindNoregular
track_indexYes
device_indexYes

TDQS

A3.6/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 does not mention that deletion is destructive or irreversible, nor any side effects on device parameters, routings, or undo history. 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 appropriately concise and well-structured: a single clear action sentence followed by a compact parameter list. Every element earns its place with no redundancy.

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 core purpose and parameters are clear, but the description omits important contextual details such as valid index ranges, behavior on invalid input, return values, or error handling. Given no annotations and no output schema, more context would be needed for a fully complete description.

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 all three parameters: track_index (track containing the device, ignored for master), device_index (position in chain), and track_kind (regular/return/master). These explanations add significant meaning beyond the bare schema types.

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 it deletes a device from a track's device chain, which is specific and distinct from sibling tools like delete_track or delete_clip. The verb 'delete' and resource 'device' are unambiguous.

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, no prerequisites, and no exclusions. It only explains parameters, which is not enough to decide between deleting a device, a clip, or a track.

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

delete_trackA

Delete a track from the session. DESTRUCTIVE — cannot be undone via MCP. On a trial license with save disabled, the track cannot be recovered.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_indexYes

TDQS

A3.9/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 burden of behavioral disclosure. It explicitly warns that the operation is destructive, cannot be undone via MCP, and adds the trial-license recovery nuance, which is valuable. It does not detail side effects on clips or return value, but the core risk is well communicated.

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 two short sentences that front-load the action and then add critical warnings. No unnecessary words 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?

For a simple deletion tool with one parameter and no output schema, the description adequately covers the main context: what it does, destructive nature, and a specific caveat about trial licenses. It does not explain error handling or success responses, but those are not expected given the lack of output schema and the tool's simplicity.

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?

The schema has one parameter (track_index) with 0% description coverage, and the description does not explain its meaning, indexing base, or valid range. The parameter name is self-explanatory, but the description fails to add any semantics beyond the schema, leaving ambiguity (e.g., zero-based vs one-based).

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 track from the session') with a specific verb and resource, and it distinguishes itself from sibling tools like delete_clip and delete_device by targeting tracks specifically.

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 (to delete a track) but does not explicitly mention alternatives or exclusions. It does provide context about destructive consequences, which helps with caution, but no clear guidance on when to choose this over other delete tools.

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

fire_clipC

Start playing a clip.

Parameters:

  • track_index: The index of the track containing the clip

  • clip_index: The index of the clip slot containing the clip

ParametersJSON Schema
NameRequiredDescriptionDefault
clip_indexYes
track_indexYes

TDQS

C2.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 must disclose behavioral traits. It only says 'Start playing a clip' and gives parameter semantics; it does not mention side effects like stopping other clips, quantization behavior, or whether the clip plays once or loops. This is minimal disclosure for a session-launch action.

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 direct, with a single-sentence action followed by the two parameter explanations. It is appropriately sized, though the parameter explanations are slightly redundant.

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 a mutation with no annotations and no output schema. The description lacks any context about return values, error conditions, or preconditions (e.g., the clip must exist). For a real-time audio action, this is insufficient to fully understand its behavior.

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 must compensate. The parameter list repeats the property names with near-tautological explanations ('track_index: The index of the track containing the clip'), adding little beyond the schema. It does clarify that clip_index refers to a 'clip slot,' but lacks details like zero-based indexing or valid ranges.

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 action: 'Start playing a clip.' This distinguishes it from siblings like start_playback, which operates on the global transport, and stop_clip, which stops a clip. The resource is specific to a clip slot.

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 fire_clip versus alternatives such as start_playback or stop_clip. It simply states the action without any contextual cues or exclusions.

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

get_arrangement_clipsA

List all clips currently on a track's Arrangement timeline, with positions, lengths, and names.

Use this to verify arrangement work, find gaps, or confirm placements.

Parameters:

  • track_index: Track to inspect

ParametersJSON Schema
NameRequiredDescriptionDefault
track_indexYes

TDQS

A3.9/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 revealing behavior. It implies a read-only listing operation and mentions the returned fields (positions, lengths, names). However, it does not explain error behavior, track indexing, or how missing tracks are handled, so transparency is moderate.

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

Conciseness5/5

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

The description is concise and front-loaded: the first sentence states the action, the second gives use cases, and the third lists the parameter. No unnecessary words 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?

For a simple one-parameter tool with no output schema, the description covers the core behavior, use cases, and parameter meaning. It lacks a detailed return structure, but the mention of 'positions, lengths, and names' provides enough context for an agent to invoke and interpret the result.

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 coverage is 0%, so the description must compensate for the parameter. The 'Parameters' section says 'track_index: Track to inspect', which essentially restates the schema property 'Track Index' and adds little meaning. It does not clarify zero-based indexing or how to resolve a track index.

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 a specific action: 'List all clips currently on a track's Arrangement timeline, with positions, lengths, and names.' It names the resource (arrangement clips) and the output data, distinguishing it from sibling tools like get_session_info or get_track_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 description provides clear usage context: 'Use this to verify arrangement work, find gaps, or confirm placements.' It does not explicitly mention when not to use or name alternative tools, but the intended scenarios are well-defined.

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

get_browser_items_at_pathB

Get browser items at a specific path in Ableton's browser.

Parameters:

  • path: Path in the format "category/folder/subfolder" where category is one of the available browser categories in Ableton

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It explains the path format but does not state whether the operation is read-only, what the response structure is, or how invalid paths are handled. This is a significant gap for a tool with no annotation support.

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

Conciseness5/5

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

The description is brief and front-loaded, with one bullet for the parameter. It avoids unnecessary fluff and directly states the function and path format.

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 with one parameter, but there is no output schema or return value documentation. The description explains the input but not what the returned browser items look like or how errors are reported. For a tool with no annotations, this leaves important contextual gaps.

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 provides only the parameter name with no description. The description compensates by specifying the required format 'category/folder/subfolder' and clarifying the category component, which adds meaning beyond the schema. However, it remains vague about what constitutes a valid category and does not provide examples.

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 browser items at a specified path in Ableton's browser, matching the tool name. It identifies the resource and scope, but it does not explicitly differentiate from sibling tools like get_browser_tree.

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 such as get_browser_tree. Usage is implied by the path parameter, but no exclusions or preference conditions are given.

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

get_browser_treeA

Get a hierarchical tree of browser categories from Ableton.

Parameters:

  • category_type: Type of categories to get ('all', 'instruments', 'sounds', 'drums', 'audio_effects', 'midi_effects')

ParametersJSON Schema
NameRequiredDescriptionDefault
category_typeNoall

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description is the sole source of behavioral disclosure. It indicates a read/get operation and states the result is a hierarchical tree, but does not mention performance characteristics, response structure details, or potential limitations. For a simple getter, this is acceptable 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 description is concise and front-loaded with the primary action. It includes exactly one line of purpose plus a one-line parameter explanation, with no unnecessary words 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?

For a single-parameter tool with no output schema, the description covers the essentials: purpose, parameter meaning, and allowed values. It does not describe the shape of the returned tree, but the term 'hierarchical tree' implies nesting. Minor gap: no return format details, though the tool is simple.

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 has zero description coverage, but the description fully compensates by explaining the parameter 'category_type' and enumerating all valid values ('all', 'instruments', 'sounds', 'drums', 'audio_effects', 'midi_effects'). This gives the agent complete understanding of how to invoke the tool correctly.

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 explicitly states 'Get a hierarchical tree of browser categories from Ableton', which is a specific verb, resource, and scope. It naturally distinguishes from the sibling get_browser_items_at_path by focusing on categories/tree rather than items at a specific path.

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 alternatives like get_browser_items_at_path. No context for when to prefer this over other browser-related operations. The description only states the function, leaving usage decisions entirely to the agent.

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

get_device_parametersA

List every tunable parameter on a device.

Returns each parameter's index, name, current value, min, max, and (for quantized parameters like enums) the available value items. Use this BEFORE set_device_parameter so you know which index to address and what range is valid.

Parameters:

  • track_index: Track containing the device (ignored for master)

  • device_index: Position of the device in the track's device chain (0 = first)

  • track_kind: 'regular' (default), 'return', or 'master'

ParametersJSON Schema
NameRequiredDescriptionDefault
track_kindNoregular
track_indexYes
device_indexYes

TDQS

A4.8/5.0
Behavior4/5

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

While no annotations are present, the description discloses important behavior by specifying the returned fields (index, name, current value, min, max, quantized items) and clearly implies a read-only listing operation. It could be slightly more explicit about side-effect absence, but the 'List' wording sufficiently conveys read-only intent.

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 with the core purpose, followed by return-value summary, usage guidance, and parameter details. Every sentence earns its place without excessive fluff.

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?

With no output schema and no annotations, the description still gives a complete picture: what the tool does, what it returns, when to use it, and how to interpret parameters. It is sufficient for an agent to invoke the tool correctly in context.

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 fully compensates by explaining each parameter: track_index is 'Track containing the device (ignored for master)', device_index is 'Position ... in the track's device chain (0 = first)', and track_kind lists allowed values 'regular' (default), 'return', or 'master'. This adds far more meaning 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 starts with a specific verb+resource: 'List every tunable parameter on a device.' It clearly defines scope (all tunable parameters) and distinguishes from the sibling set_device_parameter by explicitly tying it to reading parameters before modification.

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

Usage Guidelines5/5

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

Provides explicit when-to-use instruction: 'Use this BEFORE set_device_parameter so you know which index to address and what range is valid.' This gives concrete guidance relative to an alternative tool.

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

get_device_routingsA

Inspect available input routings for a device (used to discover sidechain sources).

Returns the available routing types and channels for the device, plus current selections. Use this BEFORE set_device_routing so you know what type/channel names are valid.

Parameters:

  • track_index: Track containing the device

  • device_index: Position in the chain

  • track_kind: 'regular' (default), 'return', or 'master'

ParametersJSON Schema
NameRequiredDescriptionDefault
track_kindNoregular
track_indexYes
device_indexYes

TDQS

A4.4/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 responsibility for disclosing behavior. It states that the tool returns available routing types and channels plus current selections, which clarifies the read-only nature and output. However, it does not mention potential errors, side effects (though likely none), or permissions. For a getter, this is sufficient but not exceptional, hence a middle score.

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: it opens with the core purpose, then states the return value, provides usage guidance, and lists parameters. Every sentence adds value; there is no fluff or repetition. The parameter list is necessary given the lack of schema descriptions.

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 gadget with no output schema, the description provides sufficient context: what it does, what it returns, when to use it, and param definitions. It lacks details on error behavior or exact output structure, but these are not critical for a discovery tool. The explanation of return content ('available routing types and channels... plus current selections') is 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%, but the description fully compensates by explaining each parameter: track_index ('Track containing the device'), device_index ('Position in the chain'), and track_kind with allowed values and default. This adds meaningful semantics beyond the bare schema, though it could be more detailed (e.g., zero-based indexing), it's effective.

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 inspects available input routings for a device, specifically for discovering sidechain sources. The verb 'Inspect' combined with the resource 'input routings' makes the purpose unambiguous. It also distinguishes itself from the sibling tool set_device_routing by being the getter counterpart.

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

Usage Guidelines5/5

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

Explicit guidance is given: 'Use this BEFORE set_device_routing so you know what type/channel names are valid.' This directly tells the agent when to invoke this tool and provides an alternative (set_device_routing) for the subsequent operation. This is clear, actionable usage direction.

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

get_master_track_infoA

Convenience: get the master track's info (devices, volume, panning).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/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 convey the tool's behavior. The verb 'get' implies a read-only operation, and listing the returned info adds some clarity. However, it does not explicitly state that there are no side effects, nor does it mention any potential errors or prerequisites.

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 that front-loads the tool's purpose with 'Convenience: get...' and includes a parenthetical list of relevant info. No unnecessary words are present.

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 getter with no output schema, the description is reasonably complete. It specifies the subject (master track) and the kind of data returned (devices, volume, panning), which is sufficient for a simple read operation. A small gap is the lack of return structure details, but that is not essential for such a simple tool.

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 the baseline is 4. The description adds value by explaining what information is retrieved, even though there are no parameters to document.

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 a specific verb ('get') and resource ('master track's info'), and enumerates the contents (devices, volume, panning). This distinguishes it from sibling tools like get_track_info by explicitly targeting the master track.

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 on when to use this tool versus alternatives. The word 'Convenience' hints that it is a shortcut, but it does not name the alternative (e.g., get_track_info) or clarify when this should be preferred.

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

get_session_infoB

Get detailed information about the current Ableton session

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/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. It only says 'Get detailed information', which implies a read operation, but does not describe return format, potential side effects, permissions needed, or what specific data is included. Given no output schema, the agent has little idea what 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 a single, clear, front-loaded sentence. Every word contributes to identifying the tool's purpose, with no unnecessary filler or repetition of the name.

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 tool with no parameters and no output schema, the description is minimally adequate. However, it leaves a significant gap: the agent does not know what 'detailed information' encompasses, nor what the return structure looks like. This is a clear omission given the lack of an output schema.

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% (vacuously). The baseline for no params is 4, and the description adds slight meaning by specifying 'current' session, clarifying that it operates on the active session without requiring arguments.

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 ('Get') and resource ('detailed information about the current Ableton session'), distinguishing it from sibling tools like get_track_info or get_master_track_info which operate at track level. However, 'detailed information' is somewhat vague, leaving what exactly is returned unspecified.

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 this tool is for session-level information rather than track or device details, which is understandable from the name and sibling context. However, it provides no explicit guidance on when to use this tool versus alternatives, 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_track_infoB

Get detailed information about a track.

Parameters:

  • track_index: Index of the track. For master, ignored (use track_kind='master').

  • track_kind: 'regular' (default), 'return' (return tracks A/B/...), or 'master'.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_kindNoregular
track_indexYes

TDQS

B3.3/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 transparency burden. It discloses one behavioral nuance (track_index is ignored for master), but it omits what 'detailed information' actually includes, how errors are handled, or whether the tool has side effects. For a read tool without annotations or output schema, this is a significant gap.

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

Conciseness5/5

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

The description is two short paragraphs, front-loaded with the purpose sentence followed by a concise parameter list. Every sentence adds value, and the structure is scannable and 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?

Given that there is no output schema and no annotations, the description is incomplete. It does not describe the return format or content ('detailed information' is vague), nor does it address how this tool relates to get_master_track_info. This leaves the agent without critical execution context.

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 adds meaning beyond the bare schema by explaining the track_kind options ('regular', 'return', 'master') and the special behavior of track_index for master. However, it does not specify whether indices are 0-based or 1-based, leaving some semantic ambiguity.

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 'gets detailed information about a track', which is a specific verb+resource. It distinguishes itself from session/master tools by explaining track_kind options, but it doesn't explicitly differentiate from the sibling get_master_track_info, leaving potential ambiguity about which tool to use for master tracks.

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 provides context for when to use different parameters (e.g., 'for master, use track_kind='master'') but doesn't present alternatives or exclusions relative to sibling tools like get_master_track_info. Usage is implied through parameter explanations rather than explicit guidance on choosing this tool over others.

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

import_audio_fileA

Load an audio file from disk into a Session-view clip slot on an audio track.

LIMITATION: Live's Python API cannot load arbitrary file paths directly. The file must be reachable through Live's browser — i.e., either under ~/Music/Ableton/User Library/ (always reachable) or inside a folder that's been added as a Place in Live's browser sidebar (the '+ Add Folder' button).

If the file isn't in a browser-reachable location, this returns a clear error explaining what to do. The fallback is always to drag the file into the slot manually from Finder.

Parameters:

  • track_index: Audio track to load into (must be an audio track)

  • clip_index: Empty Session-view clip slot index

  • file_path: Absolute path to the audio file (.wav, .aif, .mp3, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
clip_indexYes
track_indexYes

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 burden. It discloses a major limitation (Live's API cannot load arbitrary paths) and specifies that a clear error is returned if the file isn't reachable. It also clarifies that track_index must be an audio track and clip_index must be empty. This adds meaningful behavioral context, though it doesn't cover all edge cases like overwriting 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?

The description is well-structured: a clear lead sentence, a highlighted limitation callout, a fallback statement, and a parameter list. Every sentence adds necessary information with no fluff.

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 3-parameter tool with no annotations and no output schema, the description is complete. It covers purpose, limitations, error handling, and parameter semantics, giving an agent sufficient guidance to select and invoke the 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 has no descriptions (coverage 0%), so the description must compensate. It does so thoroughly: track_index is described as 'Audio track to load into (must be an audio track)', clip_index as 'Empty Session-view clip slot index', and file_path with supported formats (.wav, .aif, .mp3, etc.). This fully covers parameter meaning.

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 function: 'Load an audio file from disk into a Session-view clip slot on an audio track.' This uses a specific verb ('Load') and identifies the resource and target, distinguishing it from siblings like load_instrument_or_effect and create_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?

It provides clear context for when the tool works: the file must be in a browser-reachable location, and it explains the error/fallback behavior. No explicit alternatives are named, but no sibling tool directly replaces this functionality, so exclusions are not essential.

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

load_drum_kitB

Load a drum rack and then load a specific drum kit into it.

Parameters:

  • track_index: The index of the track to load on

  • rack_uri: The URI of the drum rack to load (e.g., 'Drums/Drum Rack')

  • kit_path: Path to the drum kit inside the browser (e.g., 'drums/acoustic/kit1')

ParametersJSON Schema
NameRequiredDescriptionDefault
kit_pathYes
rack_uriYes
track_indexYes

TDQS

B3.4/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 discloses the two-step order (rack then kit) but omits side effects (e.g., replacing existing devices), prerequisites (valid track, browser content), or what the result looks like. Minimal behavioral disclosure.

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

Conciseness5/5

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

The description is concise: one purpose sentence followed by a clean parameter list. Every sentence earns its place, and the structure is front-loaded with the main purpose.

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 3-parameter mutation tool with no annotations and no output schema, the description is incomplete. It covers purpose and parameters but lacks usage context, preconditions, side effects, and return behavior. A load operation could have important implications (e.g., overwriting existing devices) that are not addressed.

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?

Despite 0% schema description coverage, the description defines all three parameters with meaningful purpose and concrete examples (e.g., rack_uri as 'Drums/Drum Rack', kit_path as 'drums/acoustic/kit1'). This adds value beyond the schema, though not exhaustive (e.g., no indexing convention for track_index).

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 a specific action: 'Load a drum rack and then load a specific drum kit into it.' This distinguishes it from sibling tools like load_instrument_or_effect by focusing on drum kits specifically.

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 on when to use this tool vs. alternatives or any preconditions. It only describes the action, leaving usage inference up to the agent.

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

load_instrument_or_effectA

Load an instrument or effect onto a track using its URI.

Parameters:

  • track_index: Index of the destination track (ignored for master)

  • uri: Browser URI of the device/instrument (from get_browser_tree / get_browser_items_at_path)

  • track_kind: 'regular' (default), 'return' (for return effects), or 'master' (for master chain)

ParametersJSON Schema
NameRequiredDescriptionDefault
uriYes
track_kindNoregular
track_indexYes

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 full burden. It discloses useful behavioral nuances (track_index ignored for master, track_kind semantics) but does not mention side effects, whether the operation replaces existing devices, or any permissions/error behavior. This is a mutation tool, so more transparency would be expected for a higher score.

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 focused parameter list. Every line adds meaningful information—no fluff, repetition, or irrelevant details. It is well-structured and appropriately sized for the tool's complexity.

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 load operation with no output schema and no annotations, the description covers the core purpose, all parameter semantics, and special cases (master/return). It lacks details on return values or error behavior, but for this tool's simplicity and given the rich parameter documentation, it is sufficiently complete. A minor gap is the lack of any prerequisite mention.

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 parameter names with no descriptions (0% schema coverage). The description compensates fully by explaining each parameter: track_index as the destination track and its master exception, uri as a browser URI from specific tools, and track_kind with its default and allowed values. This adds substantial value 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 verb ('load'), the resource ('instrument or effect'), and the target ('onto a track'). It clearly distinguishes itself from siblings like load_drum_kit by covering generic instruments/effects, and it references the browser URI source tools (get_browser_tree / get_browser_items_at_path), making its scope unambiguous.

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

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 to use the tool, including that track_index is ignored for master and the track_kind options ('regular', 'return', 'master'). However, it does not explicitly mention when to prefer this over alternatives like load_drum_kit or exclude other tools, so it stops short of full guidance.

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

place_clip_in_arrangementA

Drop a Session-view MIDI clip onto the Arrangement timeline at a specific beat position.

The source Session clip is copied (not moved) — it remains in its slot and the new arrangement clip is an independent copy. Beat positions: position=0 is bar 1 beat 1, position=16 is bar 5 beat 1 (16 beats = 4 bars in 4/4), etc.

Currently MIDI tracks only. Audio tracks will raise an error.

Parameters:

  • track_index: Track to place the clip on (MIDI track only)

  • source_slot: Source Session clip slot index on the SAME track

  • position: Beat position on the Arrangement timeline (0 = start)

ParametersJSON Schema
NameRequiredDescriptionDefault
positionYes
source_slotYes
track_indexYes

TDQS

A4.4/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 discloses key behaviors: the source clip is copied (not moved), the new clip is independent, beat positions follow a defined reference (0=bar 1 beat 1, 16=bar 5 beat 1), and audio tracks error. It does not mention return values or edge cases like empty slots, but the major behavioral traits are transparent.

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

Conciseness5/5

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

The description is efficient and well-structured: a one-sentence purpose, two short behavioral clauses, and a compact parameter list. Each sentence provides necessary information without redundancy, and the text is front-loaded with the core action.

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

Completeness4/5

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

For a tool with no annotations and no output schema, the description covers the operation, track-type limitation, parameter meanings, and copy semantics. It does not explain what happens on success (e.g., return value) or error types beyond audio tracks, but the essential information for correct invocation is present.

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, and it does by adding per-parameter explanations: track_index identifies the MIDI track, source_slot is on the same track, and position is a beat position with a clarified zero point. These definitions go beyond the bare schema names and types, though they could specify indexing base for source_slot or ranges.

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 with a specific action ('Drop... onto the Arrangement timeline') and resource ('Session-view MIDI clip'), and distinguishes it from siblings like create_clip or fire_clip by clarifying it copies from Session to Arrangement. The behavioral note about copying versus moving adds further specificity.

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 states that only MIDI tracks are supported and audio tracks raise an error, providing a clear when-to-use constraint. It does not explicitly name alternative tools or broader when-not-to-use cases, but the track-type restriction and the copy-non-destructive nature imply the intended usage well enough.

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

set_clip_nameA

Set the name of a clip.

Parameters:

  • track_index: The index of the track containing the clip

  • clip_index: The index of the clip slot containing the clip

  • name: The new name for the clip

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
clip_indexYes
track_indexYes

TDQS

A3.8/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 burden of behavioral disclosure. It accurately states the primary behavior (renaming), but does not mention side effects, error conditions, or whether the operation is reversible. Since this is a simple setter, the basic behavior is adequately conveyed, but additional context would improve transparency.

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

Conciseness4/5

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

The description is concise, consisting of one clear sentence followed by a parameter list. The parameter list slightly duplicates the schema, but the added explanatory text for each parameter earns its place. Structure is clean and scannable.

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 setter with three required parameters, the description is largely complete: it names the operation and defines all parameters. It lacks discussion of return values or error cases, but these are likely unnecessary for such a straightforward tool. The absence of an output schema and annotations raises the burden slightly, yet the description meets it adequately.

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 adds meaningful definitions for each parameter that are absent from the schema: it explains that track_index and clip_index identify the location of the clip, and name is the new name. This goes beyond the schema's bare titles and provides essential context for correct invocation.

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 ('Set') and the target resource ('the name of a clip'), making it unambiguous. It distinguishes itself from the sibling tool 'set_track_name' by specifically referring to a clip rather than a track.

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. It does not mention any preconditions (e.g., clip must exist) or situations where a different tool would be more appropriate.

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

set_device_parameterA

Set a parameter on a device to a specific value.

Value is clipped to the parameter's min..max if out of range. Call get_device_parameters first to discover the parameter index and valid range.

Parameters:

  • track_index: Track containing the device (ignored for master)

  • device_index: Position of the device in the track's device chain

  • parameter_index: Index of the parameter (from get_device_parameters)

  • value: New value (will be clipped to min..max)

  • track_kind: 'regular' (default), 'return', or 'master'

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYes
track_kindNoregular
track_indexYes
device_indexYes
parameter_indexYes

TDQS

A4.4/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 of disclosing behavioral traits. It adds important context about value clipping ('Value is clipped to the parameter's min..max if out of range') and the need to discover parameter indices beforehand. It does not disclose error behavior or side effects beyond the mutation, but for a setter tool, the provided information is substantial and not redundant.

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

Conciseness4/5

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

The description is front-loaded with the primary action and the critical clipping constraint, followed by a structured parameter list. It is slightly longer due to the parameter explanations, but each sentence earns its place, and there is no fluff. The structure aids quick scanning.

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

Completeness4/5

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

Given the tool's complexity (5 parameters, no annotations, no output schema, and multiple siblings), the description covers all necessary information: parameter semantics, the prerequisite discovery tool, and the clipping behavior. It omits return value details, but for a setter tool, that is acceptable. It also does not discuss error handling for invalid indices, but the prerequisite mitigates this 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?

With 0% schema description coverage, the description must fully compensate for parameter meaning. It does so by explaining each parameter: track_index (track containing device, ignored for master), device_index (position in chain), parameter_index (from get_device_parameters), value (clipped), and track_kind (default, alternatives). This provides clear semantic value beyond the schema's bare 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 clearly states the action: 'Set a parameter on a device to a specific value.' This is a specific verb+resource formulation that distinguishes it from sibling tools like get_device_parameters (reading) and set_device_routing (routing parameters). It also specifies the required parameters in the context, making the tool's purpose unambiguous.

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

Usage Guidelines4/5

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

The instruction to 'Call get_device_parameters first to discover the parameter index and valid range' provides an explicit prerequisite and a direct alternative tool, guiding the agent on proper usage context. However, it does not explicitly state when not to use this tool or mention alternative mutation tools, so it falls slightly short of a 5.

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

set_device_routingA

Set a device's input routing (e.g., select a sidechain audio source).

For sidechain on Compressor/Gate: typical usage is to set the routing channel to another track's name (e.g., "5-Kick"). Names are matched case-insensitively via substring.

Call get_device_routings first to discover the exact type/channel names available.

Parameters:

  • track_index: Track containing the device

  • device_index: Position in the chain

  • routing_type_name: Routing TYPE name to match (e.g., "External Input"). Empty to skip.

  • routing_channel_name: Routing CHANNEL name to match (e.g., "5-Kick"). Empty to skip.

  • track_kind: 'regular' (default), 'return', or 'master'

ParametersJSON Schema
NameRequiredDescriptionDefault
track_kindNoregular
track_indexYes
device_indexYes
routing_type_nameNo
routing_channel_nameNo

TDQS

A4.4/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 disclosure. It reveals key behavioral details: case-insensitive substring matching for names, the ability to skip routing type/channel by leaving them empty, and the default/possible values for track_kind. These details go beyond a simple 'set' and help the agent anticipate behavior.

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 well-structured: it opens with the core purpose, then adds a usage note, prerequisite instruction, and a parameter list. While not overly long, it is slightly more verbose than necessary because the parameter explanations duplicate what would normally appear in the schema. However, given the missing schema descriptions, this structure is justified.

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, usage workflow, parameter details, and behavioral matching rules, making it quite complete for a mutation tool with no output schema. It lacks explicit error/return information, but the instruction to call get_device_routings first mitigates common errors. Overall, it provides enough context for an agent to select and invoke the 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 description includes a dedicated 'Parameters' section that explains each of the 5 parameters in plain language with concrete examples (e.g., '5-Kick' for routing_channel_name). Since schema description coverage is 0%, this section is essential and fully compensates for the schema's lack of descriptive text.

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 purpose with a specific verb and resource: 'Set a device's input routing,' and gives a concrete sidechain example. It distinguishes itself from sibling tools like set_device_parameter by focusing specifically on routing. The scope and action are 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 explicitly instructs users to 'Call get_device_routings first' to discover available names, establishing a clear prerequisite and workflow. It also provides a typical usage scenario (sidechain on Compressor/Gate) and notes the substring matching behavior. It does not explicitly state when not to use the tool, but the prerequisite implies a proper usage pattern.

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

set_locatorA

Add or update a named locator (section marker) at a specific beat position on the Arrangement timeline.

Use for section labels: "Intro", "Build 1", "Drop 1", "Break", "Drop 2", "Outro". If a locator already exists at this position, its name is updated.

Parameters:

  • position: Beat position (0 = start of song)

  • name: Label for the locator (e.g. "Drop 1")

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
positionYes

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 burden. It discloses the idempotent update behavior ('If a locator already exists at this position, its name is updated.') and implies mutability. It lacks details on permissions or side effects, but for a simple tool this covers essential 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?

The description is well-structured and appropriately sized: a clear opening sentence, a usage hint, a behavioral note, and a brief parameter list. Every sentence adds value without redundancy.

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 simplicity (2 required parameters) and absence of output schema, the description covers all essential aspects: purpose, parameter meanings, a concrete usage rule, and update semantics. It is sufficiently complete for an agent to invoke confidently.

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 no descriptions for the parameters, so the description steps in with meaningful semantics: position is defined as 'Beat position (0 = start of song)' and name as 'Label for the locator (e.g. "Drop 1")'. This fully compensates for the schema's lack of annotations.

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 ('Add or update a named locator') and specifies the exact resource ('at a specific beat position on the Arrangement timeline'). It distinguishes itself from sibling tools like clear_locators by describing the inverse operation.

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 explicit use cases with section label examples ('Intro', 'Drop 1', etc.) and states what happens when a locator already exists. It does not mention alternatives or when not to use it, but the context is clear enough for an agent to select it appropriately.

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

set_loopA

Set the Arrangement view loop region and toggle whether it's active.

Useful for previewing specific sections of the arrangement (e.g. just the drop, just the build).

Parameters:

  • start: Loop start position in beats

  • length: Loop length in beats

  • enabled: True to enable looping, False to disable

ParametersJSON Schema
NameRequiredDescriptionDefault
startYes
lengthYes
enabledNo

TDQS

A4.2/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 burden of behavioral disclosure. It explains the core behavior (set loop region and toggle active state) but does not disclose potential side effects or constraints, such as whether the loop is relative to song position or if it affects playback. This is adequate for a simple setter but lacks depth.

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 purpose sentence, a usage sentence, then a parameter list. Every sentence adds value and there is no unnecessary verbiage. The key 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 relatively simple tool with only three parameters and no output schema, the description covers the essential aspects: purpose, typical use case, and parameter semantics. It is complete for the complexity level, though it could mention edge cases or prerequisites. Overall, it provides sufficient context for an agent to invoke 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?

The schema has no descriptions, so the tool description compensates by explaining each parameter: 'start: Loop start position in beats', 'length: Loop length in beats', 'enabled: True to enable looping, False to disable.' This adds essential meaning beyond the schema's type information, though it could be more detailed (e.g., absolute vs relative start).

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 function: 'Set the Arrangement view loop region and toggle whether it's active.' This is a specific verb-resource pairing that distinguishes it from sibling tools like set_locator or clear_arrangement_clips. The additional context about previewing sections reinforces its unique role.

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 a clear use case: 'Useful for previewing specific sections of the arrangement (e.g. just the drop, just the build).' It implies when to use the tool but does not explicitly mention alternatives or exclusions, which would warrant a 5.

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

set_tempoB

Set the tempo of the Ableton session.

Parameters:

  • tempo: The new tempo in BPM

ParametersJSON Schema
NameRequiredDescriptionDefault
tempoYes

TDQS

B3.3/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 disclosing behavior. It only states that the tempo is set, but does not mention whether the change is immediate, whether it affects playback, or any side effects. The BPM unit is mentioned, but beyond that there is no behavioral 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 extremely concise, using two short sentences. It front-loads the core purpose and adds a minimal parameter note. No unnecessary words or repeated schema information.

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 one-parameter setter, the description is adequate but minimal. It explains what the tool does and what the parameter means, but lacks any context about expected outcomes, return values, or potential errors. Given that there is no output schema and no annotations, a bit more detail (e.g., whether tempo is set instantly, if there are bounds) would improve completeness.

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?

The input schema only defines 'tempo' as a number with no description. The description adds the unit 'BPM', which is useful. However, it does not provide any additional constraints, such as allowed range or format, beyond the schema's type requirement.

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 ('Set') and the resource ('tempo of the Ableton session'). It is specific and unambiguous, and none of the sibling tools overlap with this functionality, so it effectively distinguishes 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 provides no guidance on when to use this tool versus alternatives, nor does it mention any preconditions or usage context. There are no siblings for tempo control, but the description still lacks any explicit usage direction.

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

set_track_armA

Arm or un-arm a track for recording. Fails on tracks that cannot be armed (e.g. group tracks).

ParametersJSON Schema
NameRequiredDescriptionDefault
armYes
track_indexYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the failure behavior on non-armable tracks, which is useful. However, it does not mention whether arming one track disarms others, possible side effects, or permission requirements. The description adds some transparency but leaves notable 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 a single, front-loaded sentence that is both concise and informative. It states the action, the purpose, and a key exception without wasted words.

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 (two clear parameters, no output schema), the description covers the essential purpose and a major edge case. However, it omits potential common behaviors like automatic disarming of other tracks, which could be relevant in a DAW context. Overall, it is mostly complete for a simple setter.

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 coverage is 0%, so the description must compensate. The phrase 'arm or un-arm' directly implies the boolean `arm` parameter's meaning, and `track_index` is self-explanatory. The description adds some semantic context beyond the schema, but it does not explicitly define each parameter's format or edge cases.

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 action: 'Arm or un-arm a track for recording.' The verb is specific, the resource is identified, and it distinguishes from sibling track tools like mute, solo, and volume. It also notes a key limitation (fails on group tracks), further clarifying its scope.

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: this is for enabling/disabling recording on a track. It also includes an exclusion by noting it fails on tracks that cannot be armed, such as group tracks. However, it does not explicitly name alternatives or provide 'when to use vs. not use' guidance beyond this limitation.

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

set_track_muteA

Mute or un-mute a track. track_kind: 'regular' (default) or 'return'. Master cannot be muted.

ParametersJSON Schema
NameRequiredDescriptionDefault
muteYes
track_kindNoregular
track_indexYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It adds the important limitation that Master cannot be muted and clarifies track_kind options. However, it does not disclose other potential behavioral traits such as side effects, permissions, or reversibility, making it adequate but not thorough.

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, front-loaded sentences with no redundant information. It states the action, parameter kind values, and a key limitation, all in concise form.

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 setter tool, the description covers the main action, the track_kind options, and the Master limitation. It is largely complete for the tool's complexity, though the lack of track_index semantics remains a minor gap.

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?

The schema description coverage is 0%, so the description must compensate. It adds meaning for track_kind by enumerating allowed values and default. However, track_index is left unspecified (e.g., zero-based or one-based) and mute is left to its name. This partial compensation does not fully address the parameters, resulting in a low score.

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 ('Mute or un-mute a track') and resource. It also distinguishes itself from sibling track-setter tools by specifying track_kind ('regular' or 'return') and the Master limitation, making the purpose 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 provides clear context for when to use the tool (muting/unmuting tracks) and includes an explicit exclusion ('Master cannot be muted'). However, it does not mention any alternatives like set_track_solo or set_track_arm, so it falls short of a 5.

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

set_track_nameA

Set the name of a track.

Parameters:

  • track_index: Index of the track to rename (ignored for master)

  • name: New name

  • track_kind: 'regular' (default), 'return', or 'master'

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
track_kindNoregular
track_indexYes

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations available, the description bears full responsibility for disclosing behavioral traits. It only notes that track_index is 'ignored for master' and lists parameter options. It does not disclose that the operation overwrites an existing name, what happens on invalid indices, or any permissions/error behavior. This is minimal transparency 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 short and front-loaded with the core action, followed by a compact parameter list. Every sentence provides useful information without redundancy or 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 setter with three parameters, the description covers the operation, parameter meanings, and track_kind variants. It does not mention return values or error handling, but for a setter this is acceptable. The main gap is the lack of any statement about overwriting or no-op scenarios beyond 'ignored for master'.

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 adds meaningful parameter semantics beyond the bare schema: track_index is 'Index of the track to rename (ignored for master)', name is 'New name', and track_kind specifies defaults and allowed values. Since schema coverage is 0%, this is valuable, though it leaves index base (zero- vs one-based) implicit.

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 function with a specific verb+resource: 'Set the name of a track.' It differentiates from sibling tools like set_track_volume or set_track_mute by uniquely targeting the track name, and it also clarifies the track_kind variants (regular, return, master).

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 this tool versus alternatives. It does not mention prerequisites like obtaining a track index via get_track_info, or when one would choose a different setter tool. The description simply states the action without context or exclusions.

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

set_track_panA

Set a track's stereo pan position.

Parameters:

  • track_index: Track to adjust (ignored for master)

  • pan: -1.0 = hard left, 0.0 = center, 1.0 = hard right. Clipped to range.

  • track_kind: 'regular' (default), 'return', or 'master'

ParametersJSON Schema
NameRequiredDescriptionDefault
panYes
track_kindNoregular
track_indexYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description must disclose behavioral traits, and it does so effectively. It reveals that pan values are clipped to range and that track_index is ignored for master tracks. These are valuable runtime behaviors not captured by the schema. However, it doesn't mention what happens when an invalid track_index is provided 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 concise and well-structured. It opens with a clear one-sentence purpose, followed by a parameter list with meaningful explanations. Every sentence adds value and there is no redundant information.

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 low complexity of this simple setter tool, the description covers all necessary aspects: purpose, parameter semantics, and key behavioral details like clipping and master track handling. No output schema is present, but the return value is not critical for a set operation.

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 alone carries the burden of explaining parameters. It thoroughly describes each parameter: pan's range and clipping behavior, track_kind's allowed values and default, and track_index's special behavior for master tracks. This fully compensates for the schema's lack of descriptions.

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

Purpose5/5

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

The description clearly states 'Set a track's stereo pan position' with a specific verb and resource. It distinguishes itself from sibling tools like set_track_volume and set_track_mute by focusing on pan, making the purpose unambiguous.

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 does not explicitly state when to use this tool versus alternatives like set_track_volume or set_track_solo. However, the parameter details (especially track_kind) imply usage contexts such as adjusting master vs. regular tracks. No exclusions or alternative guidance is provided.

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

set_track_sendA

Set how much of a track's signal is sent to a return track.

Send indices match the order of return tracks in the session (A=0, B=1, ...). Use get_session_info to see how many return tracks exist.

Parameters:

  • track_index: Source track

  • send_index: Which return to send to (A=0, B=1, etc.)

  • value: 0.0 (no send) to 1.0 (full send). Clipped to range.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYes
send_indexYes
track_indexYes

TDQS

A4.5/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 burden of behavioral disclosure. It adds valuable context by explaining the send index order, the value range (0.0 to 1.0), and that values are clipped to range. This goes beyond the schema, though it does not mention potential out-of-bounds errors or side effects, which prevents a perfect score.

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 succinct and well-structured. It opens with a clear purpose, then provides necessary context about send indices, recommends a supporting tool, and ends with an organized parameter list. Every sentence adds value with no 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?

For a simple setter tool with three parameters and no output schema, the description covers the essential aspects: what it does, how to interpret parameters, and how to verify the number of return tracks. It does not cover edge-case behavior (e.g., invalid track_index), but that is a minor omission for this tool's simplicity.

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, but the tool description includes a dedicated Parameters section that explains each parameter: track_index as 'Source track', send_index with the A=0/B=1 mapping, and value with range and clipping behavior. This fully compensates for the bare schema and adds significant meaning.

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 function: "Set how much of a track's signal is sent to a return track." This uses a specific verb and resource, and it distinguishes itself from sibling tools like set_track_volume or set_track_mute by specifically targeting sends to return 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 for usage, particularly by explaining that send indices match the order of return tracks and recommending get_session_info to determine how many return tracks exist. However, it does not explicitly discuss when not to use this tool or name alternatives, so it falls short of a 5.

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

set_track_soloA

Solo or un-solo a track. track_kind: 'regular' (default) or 'return'. Master cannot be soloed.

ParametersJSON Schema
NameRequiredDescriptionDefault
soloYes
track_kindNoregular
track_indexYes

TDQS

A3.8/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 burden. It adds useful behavioral context beyond the schema (track_kind values, master cannot be soloed), but does not disclose side effects, return values, or error behavior. This is adequate for a simple setter but not comprehensive.

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

Conciseness5/5

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

Two concise sentences, front-loaded with the core action. Every word adds value, and the structure is highly efficient.

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 low complexity and simple schema (3 params, no output schema), the description covers the essential purpose, parameter nuance for track_kind, and a key constraint (master). It lacks some details like return values or index validity, but is reasonably complete for this action.

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. It explains track_kind values ('regular' default, 'return') and notes master cannot be soloed, which adds meaning. However, track_index and solo are left to the schema, which only provides basic types. Partial compensation for parameter semantics.

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 uses specific verb 'Solo or un-solo a track' and identifies the resource (track). It also distinguishes from sibling tools by specifying the action and adding track_kind details, making its purpose unmistakable.

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 setting solo state, and gives clear context about track_kind values and the master restriction. However, it does not explicitly state when to use this tool versus alternatives like mute or arm, nor does it provide exclusions beyond master.

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 a track's volume. Live uses a 0.0-1.0 normalized scale (0.85 ≈ 0 dB / unity).

Parameters:

  • track_index: Track to adjust (ignored for master)

  • volume: 0.0 (silence) to 1.0 (max). 0.85 is unity gain. Clipped to range.

  • track_kind: 'regular' (default), 'return', or 'master'

ParametersJSON Schema
NameRequiredDescriptionDefault
volumeYes
track_kindNoregular
track_indexYes

TDQS

A4.5/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 burden. It discloses important behavioral details: the 0.0-1.0 scale, 0.85 unity, clipping to range, and track_kind behavior. It does not mention return values or error handling, but covers the essential mutation semantics.

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 action, followed by a well-organized parameter list. Every sentence provides useful information without fluff 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?

For a setter tool with no output schema and no annotations, the description covers the key semantics: scale, clipping, and track kind distinctions. It could be more complete by stating what happens on errors or what the return value is, but the provided details are sufficient 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 compensates fully. It explains each parameter's meaning, including the default track_kind, the unity gain value, and that track_index is ignored for master. This adds significant context beyond the schema's bare 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 clearly states 'Set a track's volume' with a specific verb and resource. It distinguishes this tool from siblings like set_track_pan, set_track_solo, and set_track_mute by focusing solely on volume adjustment.

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 by explaining the normalized scale and noting that track_index is ignored for master. While it doesn't explicitly mention alternatives or when-not-to-use, the volume-specific purpose makes the intended use obvious.

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

start_playbackA

Start playing the Ableton session.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 must carry the behavioral burden. It only restates the core action without disclosing edge cases such as behavior when already playing, whether playback restarts from the current position or the beginning, or what happens if the session is not loaded.

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 with no filler, front-loading the verb and resource. It earns every word.

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 zero-parameter, no-output-schema tool, the description covers the basic action but lacks important contextual details such as the expected return type, transport behavior, or error conditions. This is adequate but leaves gaps for an autonomous 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?

The input schema has zero parameters, so the baseline for parameter semantics is 4. The description adds no parameter information because none is needed.

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 uses specific verb 'Start playing' with a clear resource ('the Ableton session'). It is immediately distinguishable from the sibling 'stop_playback' and accurately names the action.

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 explicit guidance on when to use this tool versus alternatives. The context is somewhat implied by the name and sibling 'stop_playback', but the description does not state prerequisites, whether the session must be loaded, or any contrast with similar tools like 'fire_clip'.

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

stop_clipB

Stop playing a clip.

Parameters:

  • track_index: The index of the track containing the clip

  • clip_index: The index of the clip slot containing the clip

ParametersJSON Schema
NameRequiredDescriptionDefault
clip_indexYes
track_indexYes

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 disclose behavioral nuances but only states 'Stop playing a clip.' It does not explain whether the clip is reset to start, whether it only affects a playing clip, or what side effects might occur. This is minimal and lacks depth expected for a control action.

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 very short and front-loaded with the main action, making it easy to parse. The parameter list is somewhat redundant with the schema, but it adds minimal clarification without excessive length.

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 sufficient for a simple action, providing the essential operation and parameter meanings. However, it lacks context about when to choose this over stop_playback, and there is no information about return values or side effects. Given the simplicity of the tool, this is adequate but with clear gaps.

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 includes parameter explanations that add meaning beyond the schema's bare integer types. It clarifies that track_index is the track containing the clip and clip_index is the clip slot, which helps the agent correctly identify the target. Although the schema itself has no descriptions, the tool description compensates effectively.

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 'Stop playing a clip' with a specific verb and resource, which identifies the tool's core function. It does not explicitly differentiate from sibling tools like stop_playback, but the clip-specific wording makes the scope reasonably clear.

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 this tool versus alternatives such as stop_playback or fire_clip. There are no usage scenarios, prerequisites, or exclusions mentioned, leaving the agent without context for tool selection.

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

stop_playbackA

Stop playing the Ableton session.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It states the core behavior (stopping playback) but does not disclose potential side effects like playhead reset, whether it applies to both session and arrangement view, or any prerequisites. For a simple non-destructive action, this level is acceptable but not thorough.

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, front-loaded sentence with no filler. Every word contributes to clarifying the tool's purpose, making it extremely concise and well-structured.

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 (no parameters, no output schema, no annotations), the description is sufficiently complete. It covers the action and scope clearly, and the lack of return-value documentation is acceptable for an operation whose primary effect is the side effect.

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 the baseline for parameter semantics is 4. The description correctly implies no arguments are needed, and there is nothing additional to explain about parameter usage.

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 ('stop') and resource ('playing the Ableton session'), clearly distinguishing it from sibling tools like start_playback and stop_clip. It precisely states the tool's action without ambiguity.

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 context ('when you want to stop session playback') but does not explicitly mention alternatives or exclusions. The sibling list is present, but the description itself lacks direct guidance on when to choose this over stop_clip or others.

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

TDQS

A3.5/5.0
Disambiguation4/5

Most tools clearly target distinct resources and actions (tracks, clips, devices, transport, arrangement). A few overlaps exist, such as get_master_track_info duplicating get_track_info with track_kind='master', and load_drum_kit being a specialized version of load_instrument_or_effect, but descriptions help clarify the intended usage.

Naming Consistency4/5

The naming is largely consistent with a verb_noun pattern (get_*, set_*, create_*, delete_*). Minor deviations include 'fire_clip' instead of 'play_clip' or 'start_clip', and 'add_notes_to_clip' uses 'add' instead of 'create'. These are readable but not perfectly uniform.

Tool Count2/5

With 38 tools, the server exceeds the typical MCP scope and falls into the 'too many' category (>25). While the domain of DAW control is broad, many tools could be consolidated or omitted (e.g., get_master_track_info is redundant). This number may overwhelm agents and increase selection difficulty.

Completeness4/5

The tool surface covers core Ableton workflows well: session transport, track management, clip creation and editing, device control, browser navigation, and arrangement placement. Minor gaps exist, such as no way to delete a single arrangement clip (only clear all), no scene management, and no undo/redo, but agents can work around these.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/farmhutsoftwareteam/ableton-mcp-extended'

If you have feedback or need assistance with the MCP directory API, please join our Discord server