Skip to main content
Glama
staminna

ableton-mcp-extended

Ableton MCP Extended

Connect Ableton Live to Claude AI

Prompt-assisted music production, end-to-end track creation, and Live session and arrangement manipulation — driven by AI. This fork adds mixer control.

License: MIT Discord

Setup Video · Discord · Issues


Quickstart

Three steps: install uv, point your MCP client at the server, install the Ableton Remote Script.

1. Install uv

# macOS
brew install uv

Otherwise, install from uv's official website.

Warning: Do not proceed before installing uv.

2. Add the MCP server to your client

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

Paste this as a command:

uvx ableton-mcp

Warning: Only run one instance of the MCP server (either on Cursor or Claude Desktop), not both.

3. Install the Ableton Remote Script

uvx --from ableton-mcp ableton-mcp-install-script
uvx --from ableton-mcp ableton-mcp-install-script --list-targets   # preview target folders first

4. Connect

  1. Launch Ableton Live

  2. Go to Settings/Preferences → Link, Tempo & MIDI

  3. In the Control Surface dropdown, select AbletonMCP

  4. Set Input and Output to None

That's it — ask Claude to build something.


Related MCP server: ableton-mcp

Table of Contents


About this fork

A fork of ahujasid/ableton-mcp by Siddharth Ahuja, MIT licensed, tracking upstream 1.3.8 and adding mixer control — see Mixer control.

Why: you can ask the upstream MCP to build an arrangement, but not to balance it. Mixer levels are readable but not writable — get_track_info returns mixer_device.volume.value, yet nothing can set it, because set_device_parameter resolves through track.devices[...] and the mixer is not a device. Panning and sends are in the same position. This fork adds get_mixer, set_track_volume, set_track_panning and set_send, addressing levels in real decibels rather than raw fader position.

The mixer work is upstreamed as ahujasid/ableton-mcp#122; if it lands, this fork has no reason to exist. Everything else here — including the telemetry and dataset consent flow — is upstream's, unchanged. Set DISABLE_TELEMETRY=true in the server's env to opt out.


Features

Two-way communication

Connect Claude AI to Ableton Live through a socket-based server

Track manipulation

Create, modify, and manipulate MIDI and audio tracks

Instrument and effect selection

Claude can access and load the right instruments, effects and sounds from Ableton's library

Clip creation

Create and edit MIDI clips with notes

Arrangement view composition

Build full songs autonomously in Arrangement View, including sections like intro, buildup, drop, breakdown, and outro

Session control

Start and stop playback, fire clips, and control transport across Session View and Arrangement View

Anonymous telemetry

Usage tracking to help improve the tool (can be disabled)

Components

The system consists of two main components:

  1. Ableton Remote Script (Ableton_Remote_Script/__init__.py) — a MIDI Remote Script for Ableton Live that creates a socket server to receive and execute commands

  2. MCP Server (server.py) — a Python server that implements the Model Context Protocol and connects to the Ableton Remote Script


Installation

Prerequisites

  • Ableton Live 10 or newer

  • Python 3.8 or newer

  • uv package manager

If you're on Mac, please install uv as:

brew install uv

Otherwise, install from uv's official website

Warning: Do not proceed before installing uv.

Claude for Desktop Integration

Follow along with the setup instructions video

Go to Claude → Settings → Developer → Edit Config → claude_desktop_config.json to include the following:

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

Cursor Integration

Run ableton-mcp without installing it permanently through uvx. Go to Cursor Settings → MCP and paste this as a command:

uvx ableton-mcp

Warning: Only run one instance of the MCP server (either on Cursor or Claude Desktop), not both.

Claude Code Integration

In the terminal, run:

claude mcp add AbletonMCP uvx ableton-mcp

Installing the Ableton Remote Script

Follow along with the setup instructions video

Install the Remote Script with:

uvx --from ableton-mcp ableton-mcp-install-script
uvx --from ableton-mcp ableton-mcp-install-script --list-targets   # preview target folders first

If you installed the package with pip or pipx, the command is on your PATH directly — just run ableton-mcp-install-script.

This copies the matching Remote Script into Ableton's User Remote Scripts folder. If a different version of the script is already there, the existing file is backed up to __init__.py.bak before being replaced.

Then restart Ableton (or re-select the AbletonMCP control surface) so Live loads it. Re-run the command after upgrading the package — the server logs a warning when the loaded script version doesn't match what it expects.

Note: The server does not install the script on startup. Writing into Ableton's preferences directory is an explicit action, not a side effect of launching a server.

First-time Ableton setup:

  1. Run uvx --from ableton-mcp ableton-mcp-install-script

  2. Launch Ableton Live

  3. Go to Settings/Preferences → Link, Tempo & MIDI

  4. In the Control Surface dropdown, select AbletonMCP

  5. Set Input and Output to None

  • macOS: /Users/[Username]/Library/Preferences/Ableton/Live XX/User Remote Scripts/AbletonMCP/

  • Windows: C:\Users\[Username]\AppData\Roaming\Ableton\Live x.x.x\Preferences\User Remote Scripts\AbletonMCP\

The MCP server and Remote Script share a version handshake (get_remote_script_info). If they diverge, newer tools degrade gracefully until Live is restarted.


Usage

Starting the Connection

  1. Ensure the Ableton Remote Script is loaded in Ableton Live

  2. Make sure the MCP server is configured in Claude Desktop or Cursor

  3. The connection should be established automatically when you interact with Claude

Using with Claude

Once the config file has been set on Claude, and the remote script is running in Ableton, you will see a hammer icon with tools for the Ableton MCP.

Capabilities

  • Get session and track information

  • Create and modify MIDI and audio tracks

  • Create full song arrangements from start to finish in Arrangement View

  • Create, edit, and trigger clips

  • Control playback

  • Load instruments and effects from Ableton's browser

  • Add notes to MIDI clips

  • Change tempo and other session parameters

  • Read and set mixer levels — volume, panning and sends

  • Mute, solo and arm tracks

  • Measure levels and gain-stage per track or group to a master target

  • Measure real loudness (LUFS and true peak) and balance tracks against it

Mixer control

get_mixer, set_track_volume, set_track_panning and set_send work on regular tracks, return tracks and the master (track_type is "track", "return" or "master").

Levels are set in decibels:

set_track_volume(track_index=0, db=-4)
set_send(track_index=0, send_index=0, db=-12)

Prefer db over the raw value. Live's fader position is not proportional to level — 0.85 is 0 dB and 1.0 is +6 dB — and the taper has no published closed form, so approximating it drifts away from unity gain. Passing db resolves the exact fader position by bisecting against DeviceParameter.str_for_value(), i.e. asking Live what a position actually reads as. Accuracy is bounded by Live's own 0.01 dB display resolution. Targets beyond the fader range clamp to its ends.

get_mixer reports each parameter three ways — the raw value, the dB, and the string Live displays:

{
  "name": "1-Drums",
  "volume": { "value": 0.85, "db": 0.0, "display": "0.0 dB" },
  "panning": { "value": 0.0, "db": null, "display": "C" },
  "sends": [ { "index": 0, "name": "A Reverb", "db": -12.0, "display": "-12.0 dB" } ]
}

Headroom and push

Three tools turn measured levels into gain moves, so you can ask for a mix that hits a target instead of nudging faders by hand.

measure_mix(start_beats=0, length_beats=16)
set_master_headroom(target_db=-6)
push_track(track_index=2, db=3)

measure_mix plays a stretch of the Arrangement, samples every track, group, return and the master, then restores the playhead and play state. Omit start_beats to measure whatever is already playing, which is how to read Session-view clips — the transport has to be running in that case.

set_master_headroom gain-stages the whole mix to a master peak target. scope="tracks" (the default) moves every top-level track and group by the same amount, so the balance of the mix is untouched and the master fader stays where it is; scope="master" moves only the master fader instead. Group children are deliberately left alone — their group fader already carries them, so trimming both would apply the change twice.

It only turns things down. Sampling meters at ~10 Hz can miss a peak but never invent one, so a measured level is a floor on the real one: trimming to a target lands at or below it, while boosting to a target can clip on the transients the sampling never saw. A mix already under the target is reported and left alone. allow_boost=True overrides that — expect to want a limiter.

push_track brings one track or group forward: db for a relative move, or to_peak_db to land its own measured peak on a level. Pointed at a group it moves the whole group together. With keep_headroom it re-measures afterwards and trims the master back to the ceiling, which keeps every relative balance including the push you just made.

Each tool measures, moves, and then measures again, reporting what actually landed rather than what it predicted. Five things are worth knowing about the numbers, all of them measured on Live 12.4.3 rather than assumed:

  • Peak, not loudness. Live's API exposes meters, not LUFS, so every target is peak dBFS. There is no loudness reading to aim at.

  • ~10 Hz sampling. Meters can only be read on Live's main thread, so transients shorter than a tick can be missed. Each result reports its sample count. This is gain staging, not true-peak compliance — keep a limiter for that.

  • The meter scale is linear in decibels, spanning ~74 dB across its 0..1 range with 1.0 at 0 dBFS. That was established by moving a fader in exact steps — Live states the dB itself — and fitting the meter's response over a 40 dB sweep; it recovers known moves to within about 1 dB. It is not the volume fader's taper, and it is not linear amplitude; assuming either gets the level wrong by roughly a factor of two.

  • Peak readings repeat to about 2 dB. Five reads of an unchanged mix spanned 2.04 dB (0.72 dB stdev), which is why the default tolerance is 2 dB: the tools stop once the master is inside the noise floor of its own measurement instead of moving faders to chase a reading. Measure over more beats if you want a steadier peak. set_master_headroom also learns from each pass — if a fader move of X dB doesn't shift the master by X, the next correction is scaled by the response actually observed.

  • Silence is refused, rather than treated as a level to push up, and a track whose output is MIDI is reported as having no meter rather than as a silent audio track.

Real loudness: LUFS and true peak

Everything above reads Live's peak meters. These four tools measure the audio itself, which is what balancing actually needs — peak says nothing about how loud something sounds.

measure_master_loudness(start_beats=0, length_beats=16)
set_master_loudness(target_lufs=-14)
measure_track_loudness()
balance_tracks(targets={"0": -12.0, "1": -18.0})

Live's API exposes no loudness reading, so the audio is captured from a loopback device and scanned with ffmpeg's ebur128 — proper ITU-R BS.1770: gated integrated LUFS, loudness range, and true peak.

Setup (one-time). You need ffmpeg and BlackHole, then a copy of Live's output going to BlackHole: in Audio MIDI Setup, create or open a Multi-Output Device, tick both your speakers and BlackHole 2ch (speakers as clock master, drift correction on BlackHole), and select that device in Live's Preferences → Audio. You keep hearing everything; BlackHole just carries a copy. Without it the tools say so, and say which of the two possible causes it is — they check Live's own meters to tell "not routed" apart from "nothing is playing".

set_master_loudness is the tool for "get me to −14 LUFS for streaming". Loudness scales exactly with gain — add 3 dB and the reading rises 3.0 — so one move lands it, unlike the peak-meter tools which can only iterate. Turning up is safe here, because a real true-peak figure exists: if the move would push true peak past ceiling_dbtp (−1 dBTP by default), it is capped there and the result says so.

measure_track_loudness solos each track in turn, measures it, and puts every solo back exactly as it was. balance_tracks then moves each fader to the target you give it and restores the master loudness afterwards. It executes a balance; it does not invent one — measure first, then decide the numbers.

Two costs to know: measuring needs real-time playback, so a per-track pass over eight tracks at 16 beats and 120 BPM is about 80 seconds of your mix soloing past, and the capture picks up anything else routed to BlackHole, so quit other audio apps before trusting a reading.

Example Commands

Here are some examples of what you can ask Claude to do:

Prompt

Demo

"Create an 80s synthwave track"

Watch

"Create a Metro Boomin style hip-hop beat"

"Create a full arrangement with an intro, buildup, drop, breakdown, and outro"

"Create a new MIDI track with a synth bass instrument"

"Add reverb to my drums"

"Create a 4-bar MIDI clip with a simple melody"

"Get information about the current Ableton session"

"Load a 808 drum rack into the selected track"

"Add a jazz chord progression to the clip in track 1"

"Set the tempo to 120 BPM"

"Play the clip in track 2"

"Set every track to -4 dB"

"Pan the hats 30% left and send them to the reverb at -12 dB"

"Measure bars 1-8 and tell me what's eating the headroom"

"Gain-stage the mix so the master peaks at -6 dB"

"Push the drum group 3 dB without breaking the ceiling"

"How loud is this master in LUFS?"

"Get the master to -14 LUFS for streaming"

"Measure each track and put the bass 6 LU under the drums"


Troubleshooting

Problem

Fix

Connection issues

Make sure the Ableton Remote Script is loaded, and the MCP server is configured on Claude

Timeout errors

Try simplifying your requests or breaking them into smaller steps

Have you tried turning it off and on again?

If you're still having connection errors, try restarting both Claude and Ableton Live

Technical Details

Communication Protocol

The system uses a simple JSON-based protocol over TCP sockets:

  • Commands are sent as JSON objects with a type and optional params

  • Responses are JSON objects with a status and result or message

Limitations & Security Considerations

  • Creating complex musical arrangements might need to be broken down into smaller steps

  • The tool is designed to work with Ableton's default devices and browser items

  • Always save your work before extensive experimentation


Telemetry

AbletonMCP collects usage data to help improve the tool. This includes:

  • Anonymous tool usage statistics (which features are used)

  • Anonymous session start information (for daily/monthly active user counts)

  • Anonymous rates and performance metrics

  • Prompts, MIDI notes, track and clip names, and device settings

Telemetry is on by default. To see exactly what data is collected, see the Terms & Data Use.

Opting Out

To disable telemetry, set one of these environment variables before starting the MCP server:

export ABLETON_MCP_DISABLE_TELEMETRY=true

Or use any of these alternatives:

  • DISABLE_TELEMETRY=true

  • MCP_DISABLE_TELEMETRY=true

For Claude Desktop, add the environment variable to your config:

{
    "mcpServers": {
        "AbletonMCP": {
            "command": "uvx",
            "args": ["ableton-mcp"],
            "env": {
                "ABLETON_MCP_DISABLE_TELEMETRY": "true"
            }
        }
    }
}

Join the Community

Give feedback, get inspired, and build on top of the MCP: Discord

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Disclaimer

This is a third-party integration and not made by Ableton. Made by Siddharth.


If Ableton MCP is useful to you, consider starring the repo

Available Tools

20 tools
add_notes_to_clipB

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

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states what the tool does without explaining side effects, whether notes are appended or replace existing ones, whether the clip is modified in place, or any error conditions. This leaves significant ambiguity for an agent invoking the 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 and front-loaded. It opens with a one-sentence purpose, then lists parameters with short explanations. Every sentence adds value and there is no redundancy or wasted words. This is an efficient structure.

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 tool with no annotations and no output schema, the description is incomplete. It does not explain what happens after notes are added (e.g., return value, visual undo), any limitations (e.g., only applies to MIDI clips), or how the notes array is processed (append vs replace). Given the complexity of a MIDI editing tool, more behavioral context is needed.

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 description coverage is 0%, so the description must compensate. It does so by explaining each parameter: track_index and clip_index refer to the containing track and clip slot, and notes are described as a list of dictionaries with pitch, start_time, duration, velocity, and mute. This adds meaning beyond the schema, which only provides types. However, it lacks units or value ranges, which would further improve clarity.

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: 'Add MIDI notes to a clip.' This is a specific verb+resource pair that distinguishes it from siblings like create_clip (creating a clip) or fire_clip (triggering playback). It is unambiguous and immediately understandable.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as create_clip or fire_clip. It does not state prerequisites (e.g., the target clip must exist and be a MIDI clip) or situations where it should be avoided. The usage context is only implied by the tool's name and description.

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.8/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for disclosing behavior. It only states the basic creation action and parameters, but does not address side effects (e.g., whether an existing clip in the slot is overwritten), required permissions, undo behavior, or any other behavioral traits. The description adds no context beyond the obvious.

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: one sentence defining the purpose followed by a short, well-organized parameter list. Every line contributes useful information, with no redundancy or filler. The key action 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 simple creation tool with no output schema and no annotations, the description covers the what and how, including the default for length. However, it omits context such as whether the clip is empty, whether it overwrites an existing clip in the slot, or any track prerequisites. Minor gaps, but overall adequate for the tool's simplicity.

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

Parameters4/5

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

The schema provides only types and defaults (0% schema_description_coverage). The description compensates by clearly explaining each parameter: track_index is the track index, clip_index is the slot index, and length is in beats with a default value. This adds meaningful semantics beyond the schema's bare properties, though it could be even more detailed (e.g., 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 action ('Create'), the resource ('a new MIDI clip'), and the target ('in the specified track and clip slot'). This verb+resource+location phrasing is specific and distinguishes it from sibling tools like fire_clip or stop_clip.

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

Usage Guidelines3/5

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

The description implies usage ('when you want to create a new clip') but does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites. No sibling differentiation or when-not-to-use guidance is provided.

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

create_midi_trackB

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

B3.4/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'create a new MIDI track' without explaining side effects, undo behavior, permissions, or what happens to existing tracks. This is a significant lack of 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 concise, front-loaded with the main purpose, and includes a clear parameter explanation. Every sentence earns its place; there is no fluff.

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

Completeness3/5

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

The tool is simple with only one parameter, and the description covers its purpose and parameter semantics. However, it lacks usage guidelines and behavioral context (e.g., what happens on creation), so it is not fully complete for an agent operating autonomously.

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 only a title and default for the 'index' parameter with no description, so the description's explanation ('The index to insert the track at (-1 = end of list)') adds crucial semantic meaning. This fully compensates for the 0% schema description coverage.

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

Purpose5/5

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

The description starts with a clear verb+resource combination: 'Create a new MIDI track in the Ableton session.' It unambiguously states the tool's function and is distinct from sibling tools like create_clip, which creates clips rather than tracks.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives, nor any exclusions. While it is implicit that this is for creating MIDI tracks, the description does not mention prerequisites, typical scenarios, or contrast with related tools like create_clip.

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

fire_clipA

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

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 fully disclose behavior. It only states the action without contextual details such as whether it stops other clips, requires a running transport, or what happens on invalid indices. This is minimal transparency.

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

Conciseness5/5

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

The description is extremely concise and front-loaded with the purpose, followed by a clear parameter list. Every sentence earns its place with 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?

For a simple two-parameter tool, the description covers the basics: what it does and what the indices mean. However, it lacks any mention of side effects, error conditions, or how it interacts with overall playback state. Given no output schema, some extra context would be warranted.

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 parameters are explained in the description ('The index of the track containing the clip' and 'The index of the clip slot containing the clip'), adding significant meaning beyond the schema's bare integer definitions. Both required parameters are covered.

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: 'Start playing a clip.' This is a specific verb+resource combination that distinguishes it from siblings like stop_clip (which stops a clip) and start_playback (which likely starts general transport).

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. It does not mention conditions, prerequisites, or exclusions relative to siblings. The status quo is clear but unstated.

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_pathA

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

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'gets' items, implying read-only, but does not describe potential error behavior, return format, or any side effects. Given the lack of annotations, 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 concise and well-structured: one clear sentence plus a short parameter explanation. Every word earns its place, and the front-loaded purpose makes it immediately clear what the tool does.

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 getter with one parameter and no output schema, the description is mostly adequate. It explains the path format, which is the key input. However, it lacks information about return structure, error handling, and how it relates to sibling tools, leaving some context missing.

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 only defines `path` as a string with no description. The description compensates by specifying the required format 'category/folder/subfolder' and clarifying that `category` must be one of Ableton's browser categories. This adds meaningful meaning beyond the raw schema.

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

Purpose5/5

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

The description clearly states the tool's function: 'Get browser items at a specific path in Ableton's browser.' The verb 'Get' is specific, the resource is the browser, and the scope is a specific path. This distinguishes it from the sibling tool `get_browser_tree`, which retrieves the entire tree.

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 usage guidance is provided. The description does not say when to use this tool versus alternatives like `get_browser_tree`, nor does it mention any prerequisites or edge cases. The path format is explained, but the 'when' is only implicit.

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.5/5.0
Behavior2/5

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

No annotations are provided. The description only states what it returns (a hierarchical tree) but does not disclose whether it is read-only, any permissions needed, or how the tree is structured. It adds no behavioral details beyond the basic operation.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the purpose, and includes a clean parameter listing. No unnecessary 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?

For a simple one-parameter getter, the description covers the purpose and parameter values. It does not mention the default 'all' or what the tree nodes look like, but given the simplicity, it is mostly complete. However, it could state that it is a read-only operation or return format, which would help.

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 explicitly lists the category_type parameter, explains its meaning ('Type of categories to get'), and enumerates allowed values ('all', 'instruments', etc.). This significantly adds to the schema, which only has the property name and default with no description.

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 it gets a hierarchical tree of browser categories from Ableton, using specific verb 'get' and resource. It does not explicitly contrast with the sibling get_browser_items_at_path, but the 'hierarchical tree' phrasing implies a structural overview.

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 over alternatives, such as get_browser_items_at_path, nor 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_mixerA

Get the mixer state (volume, panning and sends) for a track.

Each value is reported three ways: the raw 0..1 parameter value, the dB it corresponds to, and the string Live itself displays.

Parameters:

  • track_index: The index of the track (ignored when track_type is "master")

  • track_type: "track" (default), "return", or "master"

ParametersJSON Schema
NameRequiredDescriptionDefault
track_typeNotrack
track_indexNo

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that each value is reported in three formats (raw 0..1, dB, and Live's display string), which is useful behavioral context. It also notes that track_index is ignored for 'master', showing edge-case behavior. It does not mention error handling or side-effect safety, but the getter nature is clear from the name and description.

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 one-sentence purpose, a one-sentence return-format explanation, and a clear parameter list. No filler or redundancy; every sentence adds value.

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 tool has no output schema, so the description should explain return values. It explains each value is reported three ways, but does not specify the exact JSON structure (e.g., object shape or key names), potential error cases, or how many sends are included. Despite these gaps, the description provides enough for a simple getter with two optional params, so it's slightly above adequate.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate. It does so thoroughly: track_type is explained with its allowed values and default, and track_index is described with its behavior (ignored for master). This gives the agent full understanding of parameter meanings and special cases beyond the raw schema.

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

Purpose5/5

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

The description clearly states 'Get the mixer state (volume, panning and sends) for a track' – a specific verb and resource. It distinguishes itself from sibling tools like set_track_volume or set_track_panning by being the read/get variant, and from get_track_info by focusing on mixer state.

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 as a read-only getter for mixer values, but does not explicitly state when to use this tool vs alternatives, nor does it mention exclusions (e.g., 'not for setting values'). The parameter explanations give practical context, but no direct comparison to sibling getters/setters is provided.

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 alone must disclose behavioral traits. It only restates the tool's name with slightly more words and does not mention that the operation is read-only, what information is returned, or any potential side effects.

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

Conciseness5/5

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

The description is a single concise sentence that front-loads the primary verb and resource. It contains no redundant phrasing or filler.

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?

Despite the tool's simplicity (no parameters, no output schema), the description fails to specify what 'detailed information' includes or how it relates to other getter tools. The agent is left without a clear picture of the return value or the scope of 'session info'.

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, which gives a baseline score of 4. The description neither contradicts the schema nor needs to explain parameter meanings since there are none.

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

Purpose5/5

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

The description uses a specific verb 'get' and identifies the resource as 'detailed information about the current Ableton session', clearly distinguishing it from sibling tools like set_tempo or fire_clip. It is unambiguous about what the tool does.

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

Usage 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 versus alternatives such as get_track_info or get_mixer. There is no mention of appropriate contexts, 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_infoC

Get detailed information about a specific track in Ableton.

Parameters:

  • track_index: The index of the track to get information about

ParametersJSON Schema
NameRequiredDescriptionDefault
track_indexYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full behavioral burden. It only says 'Get detailed information' without disclosing whether the operation is read-only, what side effects might occur, or how errors like an invalid track_index are handled. This is a significant gap for a data-retrieval tool.

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

Conciseness4/5

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

The description is concise and front-loaded with the primary purpose. The parameter explanation is somewhat redundant with the parameter name, but it does not add unnecessary length, making it appropriately sized.

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 the absence of an output schema, the description needs to explain what 'detailed information' includes. It does not mention the return structure, possible fields, or any behavior, leaving the agent to guess. Even for a simple getter, this is incomplete.

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 description explains track_index as 'the index of the track', which adds a basic role but not critical details such as range, base (0 or 1), or ordering. Since schema description coverage is 0%, the description is the only source of parameter meaning but fails to provide enough context for confident usage.

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

Purpose4/5

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

The description uses the specific verb 'Get' and names the resource 'a specific track in Ableton', which clearly differentiates from siblings like get_mixer or get_session_info. However, 'detailed information' is vague about what exactly is included, preventing a perfect score.

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 get_mixer or get_session_info. There is also no mention of track indexing conventions (e.g., zero-based vs one-based) or prerequisites, leaving the agent without explicit usage direction.

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.2/5.0
Behavior2/5

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

With no annotations, the description must disclose side effects and behavior. It states a two-step process (load rack then kit) but does not describe what happens if the track already contains a rack, whether the operation is destructive, or what errors may occur. The lack of output schema also leaves return behavior unspecified.

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: one sentence for the action and three bullet-like parameter explanations with examples. No redundant information is present, and the structure is easy to scan.

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

Completeness3/5

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

The description covers the core action and parameter meanings, but it lacks contextual details such as when to use the tool and behavioral side effects. It is adequate for a simple loading operation but incomplete for robust agent decision-making, especially with no annotations or 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 description compensates for the 0% schema coverage by documenting each parameter: track_index, rack_uri (with example 'Drums/Drum Rack'), and kit_path (with example 'drums/acoustic/kit1'). This provides meaningful context beyond the bare schema, though it could further clarify indexing and path conventions.

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 specific action: 'Load a drum rack and then load a specific drum kit into it.' This distinguishes it from the sibling tool 'load_instrument_or_effect' by focusing on drum kits. However, it does not explicitly contrast it with that sibling.

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

Usage Guidelines2/5

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

No usage guidance is provided. The description does not specify when to use this tool versus 'load_instrument_or_effect' or other loading tools, nor does it mention prerequisites like existing tracks or whether it replaces existing racks. This leaves the agent without clear selection criteria.

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

load_instrument_or_effectC

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

Parameters:

  • track_index: The index of the track to load the instrument on

  • uri: The URI of the instrument or effect to load (e.g., 'query:Synths#Instrument%20Rack:Bass:FileId_5116')

ParametersJSON Schema
NameRequiredDescriptionDefault
uriYes
track_indexYes

TDQS

C2.9/5.0
Behavior1/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It only states the action without any details on side effects (e.g., whether the load replaces existing devices), prerequisites (e.g., track must exist, URI valid), or failure modes. 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 highly concise: one sentence stating the purpose, followed by a clear parameter list. No filler or redundancy. The structure front-loads the main action and then details the inputs.

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 description is incomplete for safe and correct invocation. It lacks information about return values, error conditions, what happens to existing track content, and whether any prerequisites exist. Given the absence of annotations and output schema, the tool description should be more thorough. It is minimally adequate for a simple load operation but leaves many operational questions unanswered.

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 schema by explaining the purpose of each parameter. The track_index is described as 'the index of the track to load the instrument on', and uri is described with an example 'query:Synths#Instrument%20Rack:Bass:FileId_5116', which helps clarify the expected input format. Schema descriptions are 0%, so this compensates well.

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

Purpose4/5

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

The description clearly states the verb and resource: 'Load an instrument or effect onto a track'. It distinguishes from most siblings (playback, tempo, mixer tools), though it doesn't explicitly differentiate from the very similar 'load_drum_kit'. The resource is specific enough for basic identification.

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 like load_drum_kit or other track-modification tools. The usage scenario is implied by the name and description, but there are no explicit when/when-not conditions or alternative recommendations.

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

set_clip_nameB

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

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full responsibility for disclosing behavior. It only states the action 'set name' without mentioning side effects, whether the operation overwrites the existing name, potential errors, or any safety considerations. This is minimal and could mislead an agent about reversibility or failure modes.

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

Conciseness5/5

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

The description is extremely concise: a one-line purpose followed by a bullet list of parameters. Every sentence is necessary and information-dense. It front-loads the core action and then lists parameters, making it easy to scan.

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 under-specified. It does not disclose expected return behavior, failure conditions, or whether the clip must exist. The description is adequate only for the most basic understanding but lacks critical context for safe operation.

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 provides only titles with 0% description coverage, so the description must add meaning. It does give brief explanations for each parameter (e.g., 'track_index: The index of the track containing the clip'), which clarifies their role. However, it does not go beyond obvious semantics and lacks constraints like valid ranges or format.

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 the name of a clip' which is a specific verb + resource. It distinguishes from sibling tools like set_track_name by explicitly targeting clips, and from fire_clip/stop_clip by the action being a rename.

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. It does not mention that set_track_name should be used for tracks, nor does it provide any context about prerequisites or exclusions. The usage is only implied by the name and description.

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

set_sendA

Set one of a track's send levels.

As with volume, prefer db over the raw value. The master track has no sends.

Parameters:

  • track_index: The index of the track

  • send_index: Which send to set (0 is the first return track, A)

  • db: Target send level in decibels, e.g. -12.0

  • value: Raw send position 0.0-1.0, as an alternative to db

  • track_type: "track" (default) or "return"

ParametersJSON Schema
NameRequiredDescriptionDefault
dbNo
valueNo
send_indexYes
track_typeNotrack
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 full transparency burden. It discloses the db/value preference and the master track limitation, but does not explain what happens if both db and value are null, or if both are provided. It also doesn't mention whether the operation is reversible or if it affects playback.

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

Conciseness5/5

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

The description is concise and well-structured: an intro sentence, a usage tip, a limitation note, and a bullet-point parameter list. Every line earns its place with no 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 setting tool with 5 parameters and no output schema, the description covers the essentials: purpose, parameter meaning, and a key constraint. However, it omits edge cases like how db and value interact (e.g., which takes precedence) and the effect of calling with both null, which could leave an agent uncertain.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate—and it does. Each parameter is explained: track_index, send_index (including that 0 maps to return track A), db, value (with examples), and track_type (with default). This exceeds the schema's bare type information, providing crucial semantic context.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb+resource: 'Set one of a track's send levels.' This distinguishes it from sibling tools like set_track_volume and set_track_panning, which handle other mixer parameters.

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 useful usage context: it advises preferring `db` over raw `value` (similar to volume tools) and explicitly warns that the master track has no sends. It does not explicitly name alternative tools, but the sibling list makes the distinction clear. However, it doesn't state when not to use the tool beyond the master track limitation.

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

set_tempoA

Set the tempo of the Ableton session.

Parameters:

  • tempo: The new tempo in BPM

ParametersJSON Schema
NameRequiredDescriptionDefault
tempoYes

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'Set the tempo' without mentioning side effects, constraints (e.g., Ableton tempo range), or whether changes apply immediately to live playback. This leaves significant behavioral ambiguity for a mutating operation.

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

Conciseness5/5

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

The description is extremely concise, consisting of one sentence plus a parameter listing. Every word earns its place, with no redundant information. This is a model of minimalism.

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 setter with a single parameter, the description covers the core meaning and parameter, but it lacks behavioral context such as side effects, error conditions, or return behavior. The absence of annotations and output schema means the description alone is not fully complete, though it is serviceable for basic invocation.

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

Parameters4/5

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

The description supplies the crucial semantic that the tempo is 'in BPM', which is absent from the schema (which only provides type and title). This adds real value beyond the structured data. However, it does not specify allowed ranges or default values, which would be even more helpful, but for a single parameter this is adequate.

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 'Set the tempo of the Ableton session', which is a specific verb + resource. It clearly distinguishes from sibling tools (e.g., set_track_volume, start_playback) as none of them handle tempo manipulation.

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 when-to-use or alternative guidance is provided. The usage context is implied by the tool name and description, but the description does not state any exclusions or mention when to prefer this tool over others. Since no tempo-related sibling exists, the ambiguity is low, but clear guidance is still missing.

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

set_track_nameC

Set the name of a track.

Parameters:

  • track_index: The index of the track to rename

  • name: The new name for the track

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
track_indexYes

TDQS

C2.9/5.0
Behavior2/5

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

The description only states the basic operation and lists parameters. There is no disclosure of side effects, error handling, index base (0-based vs 1-based), or return behavior. Since no annotations exist, the description carries this burden but fails to address it.

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 with one sentence and two parameter bullets. Every word serves a purpose, and it is front-loaded with the core action. No extraneous information is present.

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 simple setter with no annotations and no output schema, the description is minimal. It omits critical context such as whether the track index is zero-based, what happens on invalid input, and whether the change is immediately reflected. The agent may need to guess these details, making the description incomplete for safe usage.

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 description adds meaning to both parameters by specifying that track_index is 'the index of the track to rename' and name is 'the new name for the track'. This compensates for the schema's lack of property descriptions, but it does not clarify constraints like valid index ranges or name formatting.

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

Purpose4/5

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

The description states a clear action ('Set the name') on a specific resource ('a track'), which distinguishes it from sibling tools like set_track_volume or set_clip_name. However, it lacks additional context or scope, making it clear but not exceptionally helpful.

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 simply describes the action without any exclusions, prerequisites, or contextual advice for an AI agent deciding between related setter tools.

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

set_track_panningA

Set a track's pan position.

Parameters:

  • track_index: The index of the track (ignored when track_type is "master")

  • value: -1.0 is hard left, 0.0 is centre, 1.0 is hard right

  • track_type: "track" (default), "return", or "master"

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYes
track_typeNotrack
track_indexYes

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are present, so the description carries the burden. It reveals that track_index is ignored for master and explains the value mapping (-1.0 to 1.0). However, it does not disclose potential side effects, error conditions, or behavior on invalid track types.

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, front-loaded with the main purpose, and uses a clear 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 with no output schema, the description covers all parameters and special cases (master ignoring index). It lacks information about return values or error handling, but those are not critical for this tool's basic usage.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by explaining each parameter: track_index semantics, value scale with left/center/right mapping, and track_type options and default. This goes well 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 uses a specific verb ('Set') and resource ('a track's pan position'), clearly distinguishing it from sibling tools like set_track_volume and set_send.

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 (to set pan) but does not explicitly state when to use it over alternatives or provide exclusions. No mention of e.g., 'use set_send for aux sends' or 'only for stereo tracks'.

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 fader.

Prefer db — Live's fader taper is non-linear, so the raw 0..1 value is not proportional to level (0.85 is 0 dB, 1.0 is +6 dB). Passing db resolves the exact fader position for that level using Live's own readout.

Parameters:

  • track_index: The index of the track (ignored when track_type is "master")

  • db: Target level in decibels, e.g. -4.0. Clamped to the fader range.

  • value: Raw fader position 0.0-1.0, as an alternative to db

  • track_type: "track" (default), "return", or "master"

ParametersJSON Schema
NameRequiredDescriptionDefault
dbNo
valueNo
track_typeNotrack
track_indexYes

TDQS

A4.7/5.0
Behavior5/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 explains the non-linear taper, the reason to prefer db, that the value is clamped to the fader range, and the special-case behavior for master (ignoring track_index). This goes well beyond a generic 'set volume' statement and gives the agent concrete expectations about how the tool behaves.

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 front-loaded: a one-sentence summary, a brief but high-value paragraph explaining the db preference, and a bullet-point parameter list. Every sentence adds relevant information, and the format makes it easy for an agent to parse both the core purpose and the parameter details.

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 essential behavior, parameter semantics, and usage guidance. It explains clamping, the master special case, and the db/value relationship. However, it does not specify what happens if both db and value are provided, nor does it mention error behavior or return values (though no output schema exists). This is a minor gap but does not hinder basic invocation.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate. It does this thoroughly with a dedicated Parameters section that explains each parameter's meaning and usage: track_index (ignored for master), db (target level in dB, clamped), value (raw fader position alternative), and track_type (track/return/master). This adds crucial semantic context that the raw schema lacks.

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

Purpose5/5

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

The description opens with a clear, specific verb+resource: 'Set a track's volume fader.' It immediately distinguishes itself from sibling tools (e.g., set_track_panning, set_send) by naming the target resource (track volume) and the operation (set). The mention of track_type options (track, return, master) further clarifies 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 usage context by advising to prefer `db` over `value` due to Live's non-linear fader taper, with a concrete example (0.85 = 0 dB, 1.0 = +6 dB). It also clarifies that track_index is ignored for master, which is an implicit exclusion. However, it does not explicitly mention when to use this tool over alternatives, though sibling tools are different enough that no conflict arises.

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?

With no annotations, the description carries the full burden of disclosing behavior, but it only states the action. It does not mention side effects (e.g., whether it resumes from current position), preconditions (e.g., an open session), or behavior if already playing. 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 a single, short sentence that is immediately informative. Every word earns its place, and it is front-loaded with the action and target. No redundant or extraneous text.

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 transport control, the description gives the core function, but it lacks context about session state or how it differs from 'fire_clip'. Since there are no annotations and no output schema, the description should provide more behavioral context to be fully sufficient, yet the tool's simplicity keeps it from being inadequate.

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 there is nothing to explain. According to rubric, a 0-parameter tool gets a baseline of 4. The description adds no parameter-specific information, but it doesn't need to.

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 ('Start') and a clear resource ('Ableton session'), making the tool's function unambiguous. It naturally distinguishes itself from siblings like 'stop_playback' and 'fire_clip' by referring to the session-level transport.

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 instead of related tools such as 'fire_clip' or 'stop_playback'. The expected context is implied by the name but not explicitly stated, offering no exclusions or alternative recommendations.

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.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 for behavioral disclosure. It only states the action without revealing side effects, idempotency, whether the clip must be currently playing, or how it interacts with clip slot state.

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, with a single clear sentence and a simple parameter list. No unnecessary fluff, though the parameter descriptions could be integrated more naturally.

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 stop operation, the purpose and parameters are covered. However, with no annotations, it lacks guidance on when to use it versus stop_playback and any behavioral context. Acceptable but incomplete for an agent.

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

Parameters4/5

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

The schema provides no descriptions for the parameters, but the description clarifies that track_index is 'the index of the track containing the clip' and clip_index is 'the index of the clip slot containing the clip'. This adds meaningful context beyond the raw schema.

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

Purpose5/5

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

The description 'Stop playing a clip' clearly specifies the action (stop) and the resource (a clip). It distinguishes from sibling tools like fire_clip (which starts a clip) and stop_playback (which stops global playback).

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives like stop_playback or fire_clip. The description does not mention relevant contexts or exclusions.

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

A3.6/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 convey behavior; it only states the stop action without disclosing side effects like whether the playhead resets or all clips are stopped.

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

Conciseness5/5

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

A single, concise sentence directly states the tool's function with no unnecessary 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?

For a zero-parameter tool with no output schema, the description is sufficient, though it could benefit from a note distinguishing session stop from clip stop.

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?

With zero parameters, the description cannot add param semantics; baseline 4 applies.

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

Purpose5/5

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

The description clearly identifies the verb 'stop' and the resource 'playing the Ableton session,' differentiating it from sibling tools like start_playback and stop_clip.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus stop_clip or other playback controls; it only states the action.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 20 tool updatesv1.1.0
    • First observedadd_notes_to_clip
    • First observedcreate_clip
    • First observedcreate_midi_track
    • First observedfire_clip
    • First observedget_browser_items_at_path
    • First observedget_browser_tree
    • First observedget_mixer
    • First observedget_session_info
    • First observedget_track_info
    • First observedload_drum_kit
    • First observedload_instrument_or_effect
    • First observedset_clip_name
    • First observedset_send
    • First observedset_tempo
    • First observedset_track_name
    • First observedset_track_panning
    • First observedset_track_volume
    • First observedstart_playback
    • First observedstop_clip
    • First observedstop_playback

TDQS

A3.5/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, but load_instrument_or_effect and load_drum_kit both load devices, and get_mixer vs get_track_info could cause initial confusion. Descriptions clarify these boundaries, so ambiguity is low.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case, such as set_tempo, get_mixer, create_clip, and add_notes_to_clip. Even special cases like fire_clip fit the pattern. No mixed conventions or inconsistent naming styles.

Tool Count4/5

At 20 tools, the server is on the heavier side of the typical range, but the scope justifies the count. Each tool addresses a distinct aspect of Ableton control, from transport and mixing to clip editing and browser navigation, so the number feels appropriate rather than bloated.

Completeness4/5

The tool set covers core workflows: creating tracks, loading devices, creating and editing clips, controlling playback, and adjusting mixer settings. Missing operations like deleting tracks/clips or retrieving detailed clip info are minor gaps that agents can work around or that may be outside the server's intended scope.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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/staminna/ableton-mcp-extended'

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