ableton-mcp-lofifren
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ableton-mcp-lofifrenCreate a lofi hip-hop beat using J Dilla style"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AbletonMCP - Ableton Live Model Context Protocol Integration
Fork notice: This is a fork of
ahujasid/ableton-mcpextending it with a 33-personality style system and ~35 additional MCP tools. The original project is by Siddharth Ahuja and remains MIT-licensed. This fork is published to PyPI asableton-mcp-lofifren.
AbletonMCP connects Ableton Live to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Ableton Live. This integration enables prompt-assisted music production, track creation, and Live session manipulation.
Join the Community
Give feedback, get inspired, and build on top of the MCP: Discord. Made by Siddharth
What's New in This Fork
This fork extends the upstream ahujasid/ableton-mcp with significantly more capability — the goal is a full song in one prompt. The original PR #84 changes (clip editing, mixer controls, scene firing, audio-track creation, undo) are still present and proposed upstream as ahujasid/ableton-mcp#84. On top of that, this fork now adds ~35 additional MCP tools across six tiers, plus a 33-personality rule-based style system spanning jazz, fusion, R&B, hip-hop, and modern trap — from Coltrane and Bill Evans to Timbaland and Metro Boomin.
Tier 1 — Composite "song scaffold" tools (one call, many steps)
setup_session(tempo, time_signature, tracks=[…])— Bootstrap an entire session in a single round-trip: tempo, time signature, plus N tracks each with optional name, instrument, volume, and pan.create_clip_with_notes(track, clip, length, notes, name?)— Fusescreate_clip+add_notes_to_clip+set_clip_name.create_clips_with_notes(clips=[…])— Bulk form ofcreate_clip_with_notes, creating and naming multiple MIDI clips in one remote batch for multi-part song sketches.generate_personality_clip(track, clip, personality, chord_progression, ...)— One-shot personality workflow: create the clip, generate the part, write notes, and optionally name the clip.create_track(type, name?, instrument_uri?, volume?, pan?, index?)— Single-call replacement for the create → name → load chain.duplicate_clip(src_track, src_slot, dst_track, dst_slot)— Cross-track clip duplication. (Upstream'sduplicate_clip_toonly works within a single track.)
Tier 2 — Missing primitives
Time signature —
set_time_signature(numerator, denominator)Clip editing —
set_clip_loop,set_clip_lengthMixer state —
set_track_arm,set_track_mute,set_track_solo,set_master_volumeTrack lifecycle —
delete_trackDevices —
set_device_parameter(raw Live values, clamped to the parameter's min/max)Scenes —
create_scene,set_scene_name,set_scene_tempo
Tier 3 — Browser improvements
search_browser(query, category?)— Walk Ableton's browser tree by name (case-insensitive). Returns up to 50 matches with URIs ready to load.load_instrument_by_name(track_index, name, category?)— Server-side composite: search + load in one call. No more URI hunting.get_track_devices(track_index)— List the devices on a track plus every device's parameters with their value, min, and max — needed before callingset_device_parameter.
Tier 4 — Musical helpers (pure server-side, no remote round-trips for note math)
add_chord_progression(track, clip, chords, rhythm?, octave?)— Write a progression like["Cm","Fm","G7","Cm"]straight into a clip. Supports triads, 7ths, sus, dim, aug, 9ths, 11ths, 13ths.add_scale_run(track, clip, scale, start_beat, end_beat, direction?)— Generate scalar runs in any of major / minor / harmonic_minor / dorian / phrygian / lydian / mixolydian / locrian / pentatonic / blues / chromatic.add_drum_pattern(track, clip, pattern, length, kit_map?)— Preset patterns:four_on_floor,trap,breakbeat,boom_bap. Defaults to GM drum mapping.quantize_clip(track, clip, grid?)— Snap notes to 1/4, 1/8, 1/16, or 1/32.transpose_clip(track, clip, semitones)— Shift every note by a fixed interval.
Tier 4 Plus — Personality system (27 named players, 4 roles, BPM-aware)
A personality is a rule-based profile capturing the surface stylistic features of a real-world player: note density, swing, register, scale pool, chromatic usage, dynamics, articulation. Generators combine those rules with a chord progression to produce a coherent MIDI part that reads as "in the style of" that player. Not ML — deterministic, rule-based, fast, extensible (a new personality is one dict entry).
Each personality declares a tempo_sweet_spot and a comfortable tempo_min/tempo_max range. Generators auto-pull the current session tempo and scale density / swing to compensate when the song tempo is outside the personality's range — and emit a warning so you know.
Tools
add_personality(track, clip, personality, chord_progression, bars_per_chord?, tempo?, octave_offset?, seed?)— Generate a part in the named personality's style and write it into an existing MIDI clip. Auto-dispatches by role (solo / comp / bass / drums). Tempo defaults to the live session tempo.add_blended_personality_solo(track, clip, personality_a, personality_b, ratio, chord_progression, ...)— Generate a solo from a profile that's interpolated between two personalities (e.g. 70% Coltrane + 30% Kenny G). Numeric fields are linearly blended; categorical pools take from A when ratio<0.5, from B otherwise.list_personalities()— Returns every personality grouped by role with name, sweet-spot tempo, and one-line description.add_personality_solo(...)— Legacy alias foradd_personalityrestricted tosolopersonalities.
Personality reference (33 total)
Solo (9) — melodic / lead lines
Key | Player | Sweet spot | Surface style |
| John Coltrane | 200 BPM | Sheets of sound, modal scalar runs with chromatic approach |
| Kenny G | 95 BPM | Sparse high-register sustained chord tones, lots of space |
| Oscar Peterson | 160 BPM | Swung bebop with octave doublings, blues turns, dramatic dynamics |
| Miles Davis | 120 BPM | Cool / modal — half the bar is silence, target chord tones |
| Charlie Parker | 230 BPM | Bebop dense — chromatic approach into every chord tone |
| Wayne Shorter | 140 BPM | Modern angular — wide intervallic leaps, modal/altered |
| Pat Metheny | 130 BPM | Lyrical guitar — long phrases over lydian/dorian, mostly straight |
| Stan Getz | 100 BPM | Cool / bossa — smooth long melodic phrases, mostly chord tones |
| Dizzy Gillespie | 240 BPM | Bebop trumpet — fast chromatic runs in the screaming register |
Comp (6) — chord voicings / comping
Key | Player | Sweet spot | Surface style |
| Bill Evans | 110 BPM | Sustained rootless 3-7 voicings, half-note pulses, soft romantic |
| McCoy Tyner | 180 BPM | Quartal stacks (chords in 4ths) with 16th-note percussive stabs |
| Herbie Hancock | 140 BPM | Rootless voicings on every offbeat — Miles 60s polyrhythmic |
| Red Garland | 130 BPM | Locked-hands block chords in 4/4 quarters — hard bop |
| Chick Corea | 150 BPM | Modern fusion — dense 5-voice rootless polychords, syncopated |
| Wynton Kelly | 140 BPM | Hard bop bluesy shell voicings with anticipated comping |
Bass (6) — bass lines
Key | Player | Sweet spot | Surface style |
| James Jamerson | 105 BPM | Motown busy syncopated 8ths, ghost notes, mid P-bass register |
| Jaco Pastorius | 120 BPM | Melodic fretless in upper register — chord tones, big leaps, slides |
| Pino Palladino | 90 BPM | Smooth R&B — root and 5th in the lowest register, soft pocket |
| Marcus Miller | 100 BPM | Slap funk — hugely percussive 16ths with massive thumb/pop dynamics |
| Ray Brown | 140 BPM | Straight quarter-note jazz walking, low register, locked-in |
| Charles Mingus | 130 BPM | Expressive upright walking — dramatic dynamics, chromatic, slides |
Drums (12) — drum kit patterns
Acoustic / live drummers
Key | Player | Sweet spot | Surface style |
| Questlove | 88 BPM | Deep behind-the-beat pocket, ghost notes between backbeats |
| Tony Williams | 220 BPM | Canonical jazz ride pattern, feathered kick, hard swing, ahead |
| Vinnie Colaiuta | 130 BPM | Polyrhythmic 16th hats, syncopated kicks, ghost-note carpet, fills |
| J Dilla | 85 BPM | Drunk hip-hop — way behind the beat, irregular kicks, sloppy on purpose |
| Elvin Jones | 220 BPM | Triplet-feel polyrhythmic ride pattern, dense triplet ghosts, ahead |
| Stewart Copeland | 130 BPM | Reggae-rock — sparse kicks, busy 16th hats with frequent open hat |
Hip-hop producer kits (MPC / sampler)
Key | Player | Sweet spot | Surface style |
| Timbaland | 96 BPM | Off-grid syncopated kicks, stuttering 16th hats, vocal-percussion ghosts |
| Dr. Dre | 94 BPM | G-funk tight live-feel pocket, sparse kicks on 1 and 'and-of-3', hard-hitting |
| DJ Premier | 92 BPM | Classic boom bap — hard kicks on 1 and 3, hard snares on 2 and 4, no fills |
| Pete Rock | 88 BPM | Jazzy boom bap with ghost-snare rolls and slight behind-the-beat feel |
| Metro Boomin | 75 BPM | Modern half-time trap — kick on 1 + and-of-3, snare on 3 only, dense hat rolls |
| Madlib | 92 BPM | Dusty MPC off-kilter — irregular kicks, behind the beat, lo-fi looseness |
Examples
"Replace the lead in clip 0 of track 7 with a Coltrane solo over Cm Ab Eb Bb"
"Write a Bill Evans rootless comp into the chord track for the chorus"
"Generate a Jaco-style bassline for Cm Fm G7 Cm"
"Add a Questlove drum pattern to track 4, scene 3"
"Blend Coltrane and Kenny G 70/30 into a lead solo over the bridge"
"Write a Charles Mingus walking bass at the current session tempo"Tier 5 — Arrangement view (BETA)
get_arrangement_info— Reports capability detection, song length, loop region, locators, and per-track arrangement clips.add_clip_to_arrangement(track, slot, time)— BETA. Drops a session clip onto the arrangement timeline. Capability-probed: returns a structured "unsupported" error on Live versions that don't exposeTrack.duplicate_clip_to_arrangement. Verified working on Live 12.2.7.arrange_clips(placements=[…], loop_start?, loop_end?, loop_on?)— Bulk form ofadd_clip_to_arrangement, with optional arrangement-loop setup for placing a whole section map in one remote batch.set_arrangement_loop(start, end, on)— Stable across Live 11+.add_arrangement_locator(time, name)— Verse / chorus / bridge markers. ⚠ KNOWN ISSUE — partially working: the rename path (when a cue already exists at the target time) is reliable, but creating a brand-new cue at an arbitrary timeline position is flaky due to a Live API quirk whereSong.current_song_time = Xwrites don't always commit beforeSong.set_or_delete_cue()reads the play head, even with chainedschedule_messagecallbacks. Workaround: use⌘Lin Ableton to add locators manually at the play head position (Live's native shortcut bypasses the API).clear_all_arrangement_locators— Tries to delete every cue point. Same caveat asadd_arrangement_locator— works for cues that the play head actually lands on, doesn't reliably delete every cue.bounce_session_to_arrangement(scene_order, bar_length?)— BETA. Renders a sequence of scenes onto the arrangement timeline as a one-call session-sketch → arrangement workflow. Requirescan_duplicate_to_arrangement: trueinget_arrangement_info.render_arrangement_to_wav(track_index, start_beat, end_beat, out_path?, tail_seconds?)— Headless bounce-to-disk: renders an Arrangement region straight to a.wavwith no manual Export Audio/Video step. Live's LOM has no export-to-file call, so this arms an audio track on the built-in Resampling input (master bus, post-fader, no feedback loop) and records a real-time Arrangement pass, then reads the resulting clip's file path and restores the track's prior input/arm state. Blocks server-side for roughly the real-time duration of the region plustail_seconds.
Tier 6 — Infrastructure & quality of life
batch_commands(commands)— Send N remote primitive commands in one socket round-trip. The whole batch executes inside a single main-thread closure on Live's side, so it's atomic from Live's perspective and a single subsequentundoreverts the entire sequence. Stops on the first failure and returns partial results. Server-side composite tools such ascreate_clip_with_notesandgenerate_personality_clipare not valid insidebatch_commands; use their bulk forms instead.Warm-path auto-reconnect —
send_commandretries once onBrokenPipeError/ConnectionResetErrorso a brief Ableton restart no longer breaks the session.Auto-extending clips —
add_notes_to_clipnow extends the clip'send_markerif any of the supplied notes would otherwise be truncated. This is a behavior change vs upstream, which silently dropped notes past the clip end.Extended
get_session_info— Now also reportsscene_count,scene_names,is_playing,current_song_time, andarrangement_length.Internal dispatch refactor — The remote script's command if/elif chain has been replaced with two dispatch dicts, making future tool additions a one-line change instead of a 30-line edit. Also dropped three dead-code branches that referenced non-existent methods.
Stability fixes (still included from PR #84)
Fixed a timeout race that could affect destructive commands;
get_clip_notesruns via direct execution.load_browser_itemis correctly recognized as a modifying command.load_browser_itemcorrectly resolves plugin URIs by walking plugins / Max for Live / user library / packs / samples in_find_browser_item_by_uri, so URIs returned byget_browser_items_at_pathactually load.The browser URI cache now stores a soft 5-minute TTL per entry and validates the cached item before returning it, so a stale reference after a browser rescan is evicted instead of silently breaking
load_item.
Related MCP server: AbletonMCP
Features
Two-way communication: Connect Claude AI to Ableton Live through a socket-based server
One-call session bootstrap:
setup_sessioncreates a whole project (tempo, time sig, tracks, instruments, mix) in a single round-tripBulk song sketching:
create_clips_with_notes,generate_personality_clip, andarrange_clipsreduce multi-track song-building to a few callsBatched commands: send N commands at once with atomic undo via
batch_commands33 personalities, 4 roles: solo / comp / bass / drums in the style of Coltrane, Bill Evans, Jaco, Questlove, Timbaland, Dr. Dre, Metro Boomin, etc. — BPM-aware, blendable
Track manipulation: Create, name, mute, solo, arm, delete, and mix MIDI/audio tracks
Devices: Read every device's parameter list with min/max values; set parameters by raw Live value
Instrument and effect selection: Search the browser by name, or load with a single composite call
Clip creation and editing: Create, edit, read, duplicate (cross-track), resize, loop, and delete MIDI clips and notes (with auto-extending clip length)
Music theory primitives: Chord progressions, scale runs, drum patterns, quantize, transpose
Mixer control: Track and master volume, pan, and return-track sends
Session control: Start/stop playback, fire individual clips or whole scenes, create scenes
Arrangement view (BETA): Capability-probed support for dropping clips onto the timeline, setting the arrangement loop, adding locators, and bouncing a scene order to a full arrangement
Headless bounce-to-disk: Render an Arrangement region straight to a
.wavfile with no manual Export Audio/Video stepUndo support: Revert the last action — including a whole batch as one step
Components
The system consists of two main components:
Ableton Remote Script (
Ableton_Remote_Script/__init__.py): A MIDI Remote Script for Ableton Live that creates a socket server to receive and execute commandsMCP Server (
server.py): A Python server that implements the Model Context Protocol and connects to the Ableton Remote Script
Installation
Note: the upstream
ableton-mcpPyPI package and@ahujasid/ableton-mcpSmithery listing install the original project — they will not include the personality system or the ~35 additional tools in this fork. To get this fork, installableton-mcp-lofifrenfrom PyPI as shown below.
Prerequisites
Ableton Live 10 or newer
Python 3.8 or newer
If you're on Mac, please install uv as:
brew install uvOtherwise, install from [uv's official website][https://docs.astral.sh/uv/getting-started/installation/]
⚠️ 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": {
"ableton-mcp-lofifren": {
"command": "uvx",
"args": ["ableton-mcp-lofifren"]
}
}
}uvx will fetch ableton-mcp-lofifren from PyPI on first launch and cache it. To install from a development branch instead, replace the args with ["--from", "git+https://github.com/LofiFren/ableton-mcp-lofifren.git", "ableton-mcp-lofifren"].
Cursor Integration
One-click: use the Add MCP server to Cursor badge at the top of this README — it pre-fills the config and opens Cursor.
Manual: go to Cursor Settings → MCP and paste this as a command:
uvx ableton-mcp-lofifrenVS Code Integration
One-click: use the Install in VS Code badge at the top of this README. Requires the MCP extension for VS Code.
Manual: open the command palette → MCP: Add Server → Stdio → command uvx, args ableton-mcp-lofifren.
⚠️ Only run one instance of the MCP server (either on Cursor or Claude Desktop), not both
Installing the Ableton Remote Script
Follow along with the setup instructions video
Download the
AbletonMCP_Remote_Script/__init__.pyfile from this repoCopy the folder to Ableton's MIDI Remote Scripts directory. Different OS and versions have different locations. One of these should work, you might have to look:
For macOS:
Method 1: Go to Applications > Right-click on Ableton Live app → Show Package Contents → Navigate to:
Contents/App-Resources/MIDI Remote Scripts/Method 2: If it's not there in the first method, use the direct path (replace XX with your version number):
/Users/[Username]/Library/Preferences/Ableton/Live XX/User Remote Scripts
For Windows:
Method 1: C:\Users[Username]\AppData\Roaming\Ableton\Live x.x.x\Preferences\User Remote Scripts
Method 2:
C:\ProgramData\Ableton\Live XX\Resources\MIDI Remote Scripts\Method 3:
C:\Program Files\Ableton\Live XX\Resources\MIDI Remote Scripts\Note: Replace XX with your Ableton version number (e.g., 10, 11, 12)
Create a folder called 'AbletonMCP' in the Remote Scripts directory and paste the downloaded '__init__.py' file
Launch Ableton Live
Go to Settings/Preferences → Link, Tempo & MIDI
In the Control Surface dropdown, select "AbletonMCP"
Set Input and Output to "None"
Usage
Starting the Connection
Ensure the Ableton Remote Script is loaded in Ableton Live
Make sure the MCP server is configured in Claude Desktop or Cursor
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, track, and arrangement information
Bootstrap a whole session in one call (
setup_session)Batch any sequence of commands as a single atomic, single-undo operation
Create / name / arm / mute / solo / delete MIDI and audio tracks
Create, edit, read, duplicate (cross-track), resize, and loop clips
Add, remove, transpose, and quantize MIDI notes
Auto-extending clips when notes overflow the current length
Read every device's parameters (with min/max) and set them by raw Live value
Search the Ableton browser by name and load by URI or by name
Set track volume / pan / return-track sends and master volume
Control tempo, time signature, playback, individual clips, and entire scenes
Create scenes and set per-scene name / tempo
Generate chord progressions, scale runs, and preset drum patterns
Generate parts in the style of named players — 9 solo personalities (Coltrane, Kenny G, Oscar Peterson, Miles, Parker, Wayne Shorter, Metheny, Getz, Dizzy), 6 comp (Bill Evans, McCoy Tyner, Hancock, Red Garland, Chick Corea, Wynton Kelly), 6 bass (Jamerson, Jaco, Pino, Marcus Miller, Ray Brown, Mingus), 12 drums (Questlove, Tony Williams, Vinnie, J Dilla, Elvin Jones, Stewart Copeland, Timbaland, Dr. Dre, DJ Premier, Pete Rock, Metro Boomin, Madlib) — all BPM-aware
Blend two solo personalities (e.g. 70% Coltrane + 30% Kenny G) into a synthetic profile
Drop session clips onto the arrangement timeline (BETA), set the arrangement loop, and bounce a scene order to a full arrangement (BETA)
Undo the last action — including a whole batch as one step
Example Commands
Here are some examples of what you can ask Claude to do:
"Create an 80s synthwave track" Demo
"Create a Metro Boomin style hip-hop beat"
"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"
"Read the notes in clip 1 of track 3 and harmonize them a third up"
"Clear all the notes from the bass clip and write a new pattern"
"Duplicate the drum clip in slot 1 to slot 2"
"Add an audio track and set its volume to -6 dB"
"Pan the hi-hats slightly to the right"
"Send 30% of the lead vocal to Return A"
"Fire scene 2"
"Undo that"
"Set up a session at 90 BPM in 6/8 with four MIDI tracks: Drums, Bass, Lead, Pad" (
setup_session)"Search the browser for Operator and load it on track 0" (
load_instrument_by_name)"Write a Cm-Fm-G7-Cm progression into clip 0 of the chord track" (
add_chord_progression)"Add a four-on-the-floor beat to track 0" (
add_drum_pattern)"Quantize the lead clip to 1/16" (
quantize_clip)"Transpose the bass clip up by 7 semitones" (
transpose_clip)"Mute track 1 and arm track 2 for recording"
"Show me the parameters of the device on track 3" (
get_track_devices)"Set parameter 4 of the first device on track 3 to 8000" (
set_device_parameter)"Set the time signature to 3/4"
"Create a new scene named 'Bridge'"
"Bounce scenes [0, 0, 1, 2, 1, 3] onto the arrangement" (
bounce_session_to_arrangement, BETA)"Add a locator at beat 32 named 'Drop'" (
add_arrangement_locator)"Replace the lead with a Coltrane solo over Cm Ab Eb Bb" (
add_personality)"Write a Bill Evans rootless comp for the chorus chords" (
add_personality)"Make the bass play like James Jamerson" (
add_personality)"Use a Questlove drum pattern for the verse" (
add_personality)"Blend Coltrane and Kenny G 70/30 into the lead" (
add_blended_personality_solo)"Show me which personalities I can use" (
list_personalities)
Troubleshooting
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
typeand optionalparamsResponses are JSON objects with a
statusandresultormessage
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
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Disclaimer
This is a third-party integration and not made by Ableton.
Available Tools
62 toolsadd_arrangement_locatorA
Add a named locator (cue point) at the given arrangement time. Useful for marking verse / chorus / bridge boundaries.
If a locator already exists at that exact time, this only renames it.
| Name | Required | Description | Default |
|---|---|---|---|
| time | Yes | ||
| name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that if a locator already exists at the exact time, it renames it rather than adding a duplicate. This is a key behavioral trait not captured by annotations (which are absent).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first clearly states the action, and the second adds important behavioral nuance. No extraneous information, and it is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and no output schema, the description covers purpose, usage scenario, and edge case behavior. It is sufficient for an agent to understand and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds context that 'time' is arrangement time and 'name' is the locator name, but does not specify units or constraints. With 0% schema coverage, more detail would be beneficial, but the description provides basic clarification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds a named locator (cue point) at arrangement time, and specifies it is useful for marking boundaries like verse/chorus. This distinguishes it from other sibling tools as no other tool adds locators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for marking musical sections but does not explicitly state when to use this tool versus alternatives. No guidance on when not to use or comparison to other tools is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_blended_personality_soloA
Generate a solo from a blended personality — interpolated between two real personalities. Currently solo-only.
Parameters:
personality_a, personality_b: keys of two
solopersonalitiesratio: 0.0 = all A, 1.0 = all B, 0.5 = perfectly mixed
all other arguments: same as
add_personality
Numeric profile fields (density, swing, range bounds, velocity range, chord-tone emphasis, etc.) are linearly interpolated. Categorical pools (scale modes, phrase arc) take from A when ratio < 0.5 and B otherwise.
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| clip_index | Yes | ||
| personality_a | Yes | ||
| personality_b | Yes | ||
| ratio | Yes | ||
| chord_progression | Yes | ||
| bars_per_chord | No | ||
| tempo | No | ||
| octave_offset | No | ||
| seed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses behavioral details: it explains how numeric fields are linearly interpolated and categorical pools are selected based on ratio. It also clarifies that the tool is currently solo-only, providing essential transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the main purpose. It could be more structured (e.g., bullet points), but it avoids unnecessary verbosity and effectively communicates key information in a few sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 params, no output schema), the description explains the blending logic well but leaves gaps: it doesn't specify what the generated solo contains or how it integrates with the session (though implicit from track/clip indices). The reference to add_personality is helpful but incomplete without that tool's description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the three unique parameters (personality_a, personality_b, ratio) well, but for the remaining 7 common parameters it only references 'same as add_personality', which is insufficient standalone guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a solo from a blended personality interpolated between two real personalities. It distinguishes itself from siblings like 'add_personality' and 'add_personality_solo' by specifying the blending aspect and referencing 'same as add_personality' for common arguments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a blended solo personality is desired, but lacks explicit when-to-use or when-not-to-use guidance. It does not mention alternatives or exclusion criteria, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_chord_progressionA
Write a chord progression into an existing MIDI clip in one call.
Parameters:
track_index, clip_index: target clip (must already exist; use
create_clip_with_notesto create the clip in the same call)chords: list of chord symbols, e.g. ["Cm", "Fm", "G7", "Cm"] or ["Fmaj7", "Em7", "Dm7", "Cmaj7"]
rhythm: how long each chord lasts — "whole" (4 beats), "half", "quarter", "eighth", "sixteenth"
octave: middle octave for the chord roots (4 = middle C area)
velocity: 0-127 MIDI velocity for every note
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| clip_index | Yes | ||
| chords | Yes | ||
| rhythm | No | whole | |
| octave | No | ||
| velocity | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose whether the tool overwrites existing notes, what happens if the clip doesn't exist, or any error behavior. It only states it writes chords into the clip, leaving behavioral expectations unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-line purpose followed by a clear bullet list of parameters. Every sentence adds value with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's 6 parameters and no output schema, the description covers input details well but lacks information on return value, error handling, and whether the operation is additive or destructive. This is adequate but leaves gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description fully compensates by explaining each parameter: target clip, chords with examples (e.g., ['Cm', 'Fm', 'G7']), rhythm with possible values, and defaults for octave and velocity. This adds significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it writes a chord progression into an existing MIDI clip, with specific parameter examples like chord symbols and rhythm values. This distinguishes it from sibling tools like add_notes_to_clip, which is more general.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies that the clip must already exist and explicitly recommends using create_clip_with_notes in the same call, providing clear prerequisite guidance. However, it does not compare with alternatives like add_notes_to_clip or mention 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.
add_clip_to_arrangementA
BETA: Copy a session clip onto the arrangement timeline at the given
time (in beats). Requires a Live version that exposes
Track.duplicate_clip_to_arrangement. Use get_arrangement_info
first to confirm support.
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| clip_slot_index | Yes | ||
| arrangement_time | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Although no annotations are provided, the description explains the operation is a copy (non-destructive), specifies arrangement_time in beats, and mentions the BETA state and API requirement. It does not detail return values or error handling but is fairly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with four sentences, each adding value: purpose, beta context, API requirement, and recommended prerequisite. It is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations or output schema, the description covers purpose, one parameter, and a prerequisite. However, it lacks details on return value, error cases, and indexing conventions, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate. It clarifies that arrangement_time is in beats, but track_index and clip_slot_index receive no additional context (e.g., indexing convention). This adds value for one parameter but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it copies a session clip onto the arrangement timeline at a specified time in beats, using a specific verb and resource. It distinguishes itself from sibling tools like duplicate_clip and bounce_session_to_arrangement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a prerequisite (use get_arrangement_info to confirm support) and notes the feature is in BETA. It implies usage for moving clips to arrangement but does not explicitly list when not to use it or compare to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_drum_patternA
Write a preset drum pattern into an existing clip. Patterns are defined
in 1-bar (4 beats) building blocks and tile to fill length.
Parameters:
pattern: "four_on_floor" | "trap" | "breakbeat" | "boom_bap"
length: clip length in beats (pattern tiles to fill this)
kit_map: optional override mapping drum names ("kick", "snare", "hat", "open_hat", "clap", "tom") to MIDI pitches. Defaults to General MIDI drum mapping (kick=36, snare=38, hat=42, open_hat=46).
velocity: 0-127
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| clip_index | Yes | ||
| pattern | No | four_on_floor | |
| length | No | ||
| kit_map | No | ||
| velocity | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains pattern tiling over length and kit mapping, but lacks disclosure of whether notes overwrite existing content in the clip, what happens with invalid indexes, or error handling. No annotations exist to offset this lack.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with a clear opening statement and bulleted parameter list. It could be slightly more compact but is efficient for the information provided.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers pattern logic, parameter details, and default mappings. However, it omits prerequisites (e.g., clip must exist, track and clip indexes must be valid) and does not clarify if the clip should be empty. No output schema to supplement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description adds meaning for pattern (enumerates values), kit_map (structure and defaults), velocity (range), and length (tiling). However, it does not explain track_index or clip_index beyond listing them in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Write a preset drum pattern into an existing clip' and enumerates specific preset patterns (four_on_floor, trap, etc.), making the tool's purpose unambiguous. It distinguishes from siblings like add_notes_to_clip and load_drum_kit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for preset drum patterns via parameter values, but does not explicitly provide when-to-use or when-not-to-use guidance compared to alternatives like add_notes_to_clip. Usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| clip_index | Yes | ||
| notes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only 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.
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.
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.
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.
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.
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.
add_personalityA
Generate a part in the style of a named personality and write it into an
existing MIDI clip. The personality's role (solo / comp / bass / drums)
determines what kind of part is generated — see list_personalities.
Parameters:
track_index, clip_index: target clip (must already exist)
personality: one of the keys returned by
list_personalitieschord_progression: list of chord symbols, e.g. ["Cm","Ab","Eb","Bb"]. Drum personalities ignore chord content but still use the length.
bars_per_chord: how many 4/4 bars each chord lasts (default 1)
tempo: BPM for tempo-aware generation. If omitted, the current session tempo is queried via
get_session_info. The personality's profile will warn (but still produce output) if this is outside its comfortable range, and generators will scale density / swing to compensate.octave_offset: shift the personality's natural register up/down N octaves
seed: optional RNG seed for reproducible output. Default
None= a different solo every call.
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| clip_index | Yes | ||
| personality | Yes | ||
| chord_progression | Yes | ||
| bars_per_chord | No | ||
| tempo | No | ||
| octave_offset | No | ||
| seed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behaviors: writing into an existing MIDI clip (mutation), drum personalities ignoring chord content, tempo range warnings but still producing output, compensation for density/swing, and default seed randomness. Without annotations, this provides comprehensive transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a clear introductory sentence followed by a bullet list of parameters. Each sentence adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers core functionality, parameter meanings, and edge cases. However, it does not mention the return value (since no output schema exists) and does not explicitly confirm that the clip is modified in place. These gaps slightly reduce completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description fully compensates by explaining all 8 parameters: track_index and clip_index target clip, personality from list_personalities, chord_progression as list of chord symbols, bars_per_chord default, tempo with conditional query, octave_offset for register shift, and seed for reproducibility.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Generate a part in the style of a named personality and write it into an existing MIDI clip') and specifies the resource (existing MIDI clip). It distinguishes from siblings by noting that the personality's role determines the part type and references list_personalities for available personalities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for parameter usage (e.g., tempo can be omitted and will be queried via get_session_info, drum personalities ignore chord content) but does not explicitly compare to sibling tools like add_personality_solo or state 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.
add_personality_soloA
Legacy alias for add_personality restricted to solo personalities.
Prefer add_personality (which auto-dispatches by role). Kept so older
callers don't break.
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| clip_index | Yes | ||
| personality | Yes | ||
| chord_progression | Yes | ||
| bars_per_chord | No | ||
| tempo | No | ||
| octave_offset | No | ||
| seed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only mentions it's an alias, not detailing any behavioral traits like mutation, permissions, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with key information, no extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters and no output schema, the description provides insufficient context for correct usage; relies heavily on familiarity with add_personality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but description adds no information about any of the 8 parameters, leaving them entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it is a legacy alias for add_personality restricted to solo personalities, distinguishing it from the general add_personality tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to prefer add_personality because it auto-dispatches by role, and explains this tool is kept for backward compatibility.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_scale_runA
Write a scalar run (sequence of notes from a scale) into an existing clip.
Parameters:
scale: e.g. "C minor", "F# dorian", "Eb major pentatonic"
start_beat, end_beat: time range in the clip
direction: "up", "down", or "updown"
note_duration: length of each note in beats (default 1/16)
octave: starting octave (4 = middle C)
velocity: 0-127
Generates ascending/descending notes from the chosen scale, packed into
the [start_beat, end_beat) range with note_duration per note.
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| clip_index | Yes | ||
| scale | Yes | ||
| start_beat | No | ||
| end_beat | No | ||
| direction | No | up | |
| note_duration | No | ||
| octave | No | ||
| velocity | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It explains the generation process: 'Generates ascending/descending notes from the chosen scale, packed into the [start_beat, end_beat) range with note_duration per note.' It discloses the mutation behavior (writing into an existing clip) and parameter interactions, though side effects like overwriting are not mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the purpose. The parameter list is clear, but slight redundancy exists (e.g., listing defaults already in schema). The structure is good but could be streamlined further.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters (3 required), no output schema, and no annotations, the description covers the key aspects: purpose, parameter roles, and generation behavior. It does not address edge cases like exceeding clip length or overwriting notes, but overall it provides sufficient context for correct tool usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by adding meaning: examples for scale ('C minor'), explanation of direction options, note_duration default, octave meaning, velocity range, and how parameters combine to fill the time range. This adds high value beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Write a scalar run (sequence of notes from a scale) into an existing clip.' It specifies the action, resource, and distinguishes from siblings like add_notes_to_clip or add_chord_progression by focusing on scale-based runs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for adding a scale run, and the examples like 'C minor' help clarify. It does not explicitly state when not to use or compare to alternatives, but the context from sibling tools suggests appropriate scenarios. Minor improvement would be adding conditional guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_commandsA
Execute a list of commands in a single round-trip to Ableton.
The whole batch runs atomically inside one main-thread closure, so a
single subsequent undo reverts the entire sequence. Execution stops
at the first failure and partial results are returned.
Parameters:
commands: list of {"type": str, "params": dict}. Allowed types are any modifying or read-only command (e.g.
create_midi_track,add_notes_to_clip,set_track_volume). Nestedbatch_commandsis not allowed.
Returns a JSON object with:
results: list of per-command {"status", "result" or "message"}executed: how many ran (including the failing one if any)total: how many were submittedfailed_at: index of the failure or nullerror: failure message or null
| Name | Required | Description | Default |
|---|---|---|---|
| commands | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description fully covers behavior: atomicity, undo behavior, failure handling, and return structure. It clearly states the batch runs atomically and stops at first failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: purpose first, then atomicity, failure, parameter details, and return shape. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description explains the return object fully with fields like results, executed, total, failed_at, error. It covers all relevant aspects for a batch execution tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% but the description provides detailed parameter semantics: 'commands: list of {"type": str, "params": dict}' with allowed types and prohibition of nesting. This adds significant meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Execute a list of commands in a single round-trip to Ableton.' It specifies atomic execution and distinguishes from sibling tools which are individual commands.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use (batch with atomic undo) and constraints (stops on first failure, no nesting). It implies alternatives by listing sibling tools but does not explicitly state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bounce_session_to_arrangementA
BETA: Render a sequence of scenes onto the arrangement timeline. For
each scene in scene_order (in order), every clip in that scene's
row is dropped onto the arrangement at the running time cursor. The
cursor advances by bar_length beats after each scene.
This is the closest thing to a one-call "session sketch → arrangement"
flow. Requires a Live version that supports
Track.duplicate_clip_to_arrangement.
Parameters:
scene_order: list of scene indices in playback order, e.g. [0, 0, 1, 2, 1, 3]
bar_length: how many beats each scene occupies on the timeline (default 4)
| Name | Required | Description | Default |
|---|---|---|---|
| scene_order | Yes | ||
| bar_length | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the step-by-step behavior: clips are dropped onto arrangement starting at the running time cursor and advancing by bar_length. It notes the tool is BETA. However, it does not disclose whether existing arrangement clips are overwritten or if the tool is destructive, and no annotations provide additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, well-structured with a clear first-line purpose, followed by a brief behavioral explanation and bullet-pointed parameter details. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description covers the core functionality, parameters, and a requirement. It could be more complete by explaining the result (arrangement timeline updated) and potential side effects, but it is sufficient for a tool of moderate complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully explains both parameters: scene_order as a list of scene indices with an example, and bar_length with a default value. This adds crucial meaning beyond the schema property names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose: "Render a sequence of scenes onto the arrangement timeline." It explains the process for each scene in order and distinguishes itself from siblings like fire_scene or add_clip_to_arrangement by focusing on a multi-scene bounce to arrangement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description positions the tool as "the closest thing to a one-call 'session sketch → arrangement' flow" and mentions a Live version requirement. However, it does not explicitly state when to avoid using this tool or suggest alternatives for single-clip placement, though the sibling list implies alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browse_for_roleA
Walk Ableton's browser for instruments suited to a specific role and return quality-ranked candidates.
Roles:
drums — searches drum racks and drum kits
bass — bass instruments (electric, fretless, upright, slap)
lead — synth leads
keys — pianos / Rhodes / Wurlis / organs / electric pianos
pad — pads / atmospheres
brass — trumpet / sax / horn
guitar — clean guitar / jazz guitar
Each item is scored — Instrument Racks (.adg) > Device Presets (.adv) >
bare devices > raw samples (.wav). One-shot junk and FX-only items are
filtered out. Results are sorted best-first so results[0] is the
smartest pick.
Use this when you don't know what's in the user's library and want a quick menu of options for a given track role.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | ||
| max_results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It details scoring (Instrument Racks > Device Presets > bare devices > raw samples), filtering of one-shot junk and FX-only items, and best-first sorting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise with no redundancy. Uses bullet points for roles and clear explanation of scoring. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While no output schema, the description explains scoring and sorting, but could briefly mention the output format (e.g., list of candidate names or paths). Still, it provides sufficient context for the tool's purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but description adds full meaning by listing allowed roles for 'role' and explaining 'max_results' controls number of results. This compensates for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool walks Ableton's browser for instruments suited to a specific role and returns quality-ranked candidates. It distinguishes from siblings like search_browser by specifying the role-based selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use this when you don't know what's in the user's library and want a quick menu of options for a given track role. While it doesn't explicitly state when not to use, the context of sibling tools suggests alternatives.
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 Ableton session.
Parameters:
index: The index to insert the track at (-1 = end of list)
| Name | Required | Description | Default |
|---|---|---|---|
| index | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explains the index parameter's semantics (-1 = end of list), which is useful. However, it does not disclose other behavioral traits such as whether the new track is selected, any return value, or error handling, leaving the agent with incomplete information for a create operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the purpose sentence, and includes a clear parameter explanation. Every line serves a purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter create operation, the description covers the parameter well but omits any mention of return values or side effects. Since there is no output schema, the description should have indicated what the agent can expect after creation, leaving a gap in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description fully explains the only parameter 'index' with the meaning 'The index to insert the track at (-1 = end of list)', adding value beyond the schema which only specifies a default. This is complete and precise for the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new audio track in the Ableton session', which is a specific verb+resource. The 'audio' qualifier distinguishes it from sibling tools like create_midi_track, create_return_track, and create_group_track.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied by the name and description: to add an audio track to the session. However, there is no explicit guidance on when to use this tool over create_midi_track or other track creation tools, nor any prerequisites or exclusions mentioned.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| clip_index | Yes | ||
| length | No |
TDQS
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.
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.
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.
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.
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.
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_clip_with_notesA
Create a MIDI clip and populate it with notes in a single batched call.
Parameters:
track_index, clip_index: where to put the clip
length: clip length in beats
notes: list of note dicts {pitch, start_time, duration, velocity?, mute?}
name: optional clip name
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| clip_index | Yes | ||
| length | Yes | ||
| notes | Yes | ||
| name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states it is a 'single batched call,' implying atomicity, but does not disclose error handling, behavior if clip index already occupied, limits on notes, or return value. Basic behavior is covered but lacks depth beyond what is inferred.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and a parameter list, clearly front-loaded with the main purpose. Every sentence and parameter is necessary, with no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema or annotations, the description covers what the tool does and its required parameters. It could mention return behavior (success/failure) or whether it overwrites existing clips, but overall it is fairly complete for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description lists parameters with brief explanations. For 'notes,' it provides the dict format {pitch, start_time, duration, velocity?, mute?}, adding significant meaning beyond the schema's generic array of objects. Other params are minimally described but sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a MIDI clip and populate it with notes in a single batched call,' specifying the verb (create), resource (MIDI clip), and action (populate with notes), which distinguishes it from siblings like 'create_clip' (likely empty) and 'add_notes_to_clip' (adds to existing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. For example, it doesn't mention that for adding notes to an existing clip, one should use 'add_notes_to_clip', or that for an empty clip, use 'create_clip'. The name implies batching but the description lacks usage context.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| index | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden 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.
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.
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.
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.
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.
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.
create_sceneB
Create a new scene at the given index (-1 = end of list).
| Name | Required | Description | Default |
|---|---|---|---|
| index | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It only reveals that index -1 means end of list. There is no mention of side effects, undoability, or required permissions for this mutation operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the main action and parameter. Every word is necessary, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool without output schema or annotations, the description is adequate but could be improved by mentioning the return value or any consequences. It feels minimal given potential context (e.g., what happens to existing scenes).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add value. It explains the meaning of the 'index' parameter and its default value (-1). This is helpful but minimal; more could be said about valid range or behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'create' and the resource 'scene', and explains the index parameter. It distinguishes from siblings like 'fire_scene' and 'set_scene_name' by focusing on creation. However, it does not explicitly differentiate from other creation tools like 'create_clip' or 'create_audio_track'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use, or any suggestions for typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_trackB
Create a track with optional name, instrument, volume, and pan in a single round-trip.
Parameters:
type: "midi" or "audio"
name: optional track name
instrument_uri: optional browser URI to load (use
search_browserfirst)volume: optional 0.0-1.0 mixer volume
pan: optional -1.0 to 1.0 panning
index: insert position (-1 = end)
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | midi | |
| name | No | ||
| instrument_uri | No | ||
| volume | No | ||
| pan | No | ||
| index | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only covers basic functionality and parameters. It lacks disclosure of side effects, return values, error handling, or prerequisites such as required session state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a clear opening sentence followed by a bullet list of parameters with defaults and ranges. No superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and output schema, the description omits crucial context such as what the tool returns, potential errors, and how it compares to sibling tools with similar functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds valuable meaning beyond the schema, e.g., specifying volume range 0.0-1.0, pan range -1.0 to 1.0, and recommending use of search_browser for instrument_uri. However, it could be more explicit about constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a track with optional parameters, but it does not differentiate from sibling tools like create_audio_track and create_midi_track, which have more specific purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as create_audio_track or create_midi_track. There are no when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_clipB
Delete a clip from a clip slot, leaving the slot empty.
Parameters:
track_index: The index of the track containing the clip
clip_index: The index of the clip slot to clear
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| clip_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states 'leaving the slot empty' which adds some behavioral context, but does not disclose side effects, required permissions, or confirm if the action is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with one clear sentence and a list of parameters. It avoids redundancy but could be slightly more efficient by integrating parameter explanations into the sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a simple deletion with two integer params and no output schema, the description provides the basic action and parameter meanings. However, it lacks error handling context, prerequisites (e.g., clip must exist), and behavioral details like undo support.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must define parameters. It explains track_index and clip_index as indices, but does not specify valid ranges, data types in context, or potential errors, leaving the agent to guess constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete a clip from a clip slot, leaving the slot empty' uses a specific verb (delete) and resource (clip from clip slot). It clearly distinguishes from siblings like 'remove_notes_from_clip' or 'create_clip'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention prerequisites, limitations, or when not to use it, such as whether the clip slot must exist or if there are undo considerations.
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. NOTE: deleting a track shifts the indices of every track after it down by one. When deleting multiple tracks in a batch, delete in descending index order to avoid index drift.
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the side effect of index shifting and offers best-practice guidance, compensating for the absence of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple deletion but lacks mention of index base (0 or 1), error conditions, or undo capability, leaving gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter track_index is not described; schema coverage is 0%, and the description adds no detail about indexing base or range, leaving ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Delete a track' with a specific verb and resource, and distinguishes from sibling tools like create_track or duplicate_clip.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance to delete in descending index order when batch deleting to avoid index drift, but does not cover when or when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duplicate_clipA
Duplicate a MIDI clip to any other track + slot. Unlike the upstream
duplicate_clip_to, this works across tracks. Both tracks must be
MIDI tracks; the destination slot must be empty.
| Name | Required | Description | Default |
|---|---|---|---|
| src_track | Yes | ||
| src_slot | Yes | ||
| dst_track | Yes | ||
| dst_slot | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. Adds constraints but lacks details on operation behavior (e.g., whether source is modified, error handling, or result).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action, distinguishes from sibling, and lists constraints. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers prerequisites and differentiation but misses outcome details (e.g., return value, success indicator) and error handling. Adequate for a simple tool but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Four parameters with 0% schema coverage. Description does not explain parameter semantics beyond naming, leaving interpretation of indexing or ranges to the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Duplicate a MIDI clip to any other track + slot' with a specific verb and resource, and explicitly distinguishes itself from the sibling 'duplicate_clip_to' by noting cross-track capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use (cross-track duplication) and constraints (both tracks must be MIDI, destination slot empty). Does not explicitly state when not to use, but the alternative is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duplicate_clip_toA
Duplicate a clip to another clip slot on the same track.
Parameters:
track_index: The index of the track containing the clip
clip_index: The source clip slot index
target_clip_index: The destination clip slot index (must be empty)
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| clip_index | Yes | ||
| target_clip_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must compensate. It mentions the target slot must be empty, a behavioral constraint, but does not elaborate on side effects, permissions, or whether source clip is affected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences plus a bullet list. Each sentence serves a purpose, no filler. The structure front-loads the purpose and lists parameters clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three simple integer parameters and no output schema, the description covers purpose, parameters, and a key constraint. However, it lacks information on return values, error conditions, and what happens to the source clip.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds meaning for all three parameters: track_index, clip_index, and target_clip_index with brief explanations. However, descriptions are minimal and could be more detailed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool duplicates a clip to another clip slot on the same track, with specific verb and resource. It distinguishes from sibling 'duplicate_clip' by specifying the target slot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'duplicate_clip'. The only usage hint is that the target slot must be empty, but no context on prerequisites or conditions.
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
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| clip_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It 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.
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.
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.
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.
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.
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.
fire_sceneB
Fire (launch) a scene, triggering all clips in that row across all tracks.
Parameters:
scene_index: The index of the scene to fire (0-based)
| Name | Required | Description | Default |
|---|---|---|---|
| scene_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It states the action 'fire' (launch) but does not specify side effects, error conditions (e.g., invalid index), or prerequisites. This is minimal for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with a parameter list. It is front-loaded with the core action and contains no fluff. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description should cover behavioral aspects, error handling, and return values. It only states the basic effect, leaving the agent without guidance on prerequisites or failure modes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%. The description adds that scene_index is 0-based, which is a slight improvement over the schema's title and type. However, it does not explain valid range or behavior for out-of-range values, offering minimal added meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'fire' (launch) and the resource 'scene', and explains the effect: 'triggering all clips in that row across all tracks'. This is specific and distinguishes it from siblings like fire_clip or create_scene.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as fire_clip or create_scene. It lacks context for appropriate usage 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_infoA
BETA: Report arrangement-view state — capabilities, song length, loop region, locators (cue points), and per-track arrangement clips.
The capabilities field tells you which BETA operations this Live
version supports. can_duplicate_to_arrangement is the most important
one — it gates add_clip_to_arrangement and
bounce_session_to_arrangement.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses that the tool reports state, mentions BETA, and details the fields. It appropriately indicates no side effects (read-only).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, no wasted words. It front-loads the BETA label and main list, then elaborates on the most important field. Excellent conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no parameters and no output schema, but the description adequately lists return fields. It could mention the return format (JSON) but is otherwise complete for a simple state report.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, baseline is 4. The description adds no parameter info because none exist, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reports arrangement-view state, listing specific items like capabilities, song length, loop region, locators, and per-track arrangement clips. It uses specific verbs and distinguishes from sibling action tools like add_clip_to_arrangement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by explaining it provides capabilities that gate other BETA operations. It does not explicitly list when not to use or alternatives, but the context is clear enough for a simple read tool.
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
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It 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.
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.
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.
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.
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.
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')
| Name | Required | Description | Default |
|---|---|---|---|
| category_type | No | all |
TDQS
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.
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.
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.
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.
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.
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_clip_notesB
Get all MIDI notes from a clip.
Parameters:
track_index: The index of the track containing the clip
clip_index: The index of the clip slot containing the clip
Returns note data including pitch, start_time, duration, velocity, and mute for each note.
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| clip_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden of behavioral disclosure. It states what the tool returns (pitch, start_time, duration, velocity, mute), but does not mention that it is read-only, potential performance implications, or error conditions. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences plus a parameter list, no wasted words, and the main purpose is front-loaded. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description covers the basic functionality and return fields but lacks details on prerequisites (e.g., clip must exist), error handling, or performance notes. It is minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description compensates by explicitly explaining both parameters (track_index, clip_index) in natural language. This adds meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'all MIDI notes from a clip', making the purpose immediately understandable. However, it does not explicitly differentiate from sibling tools like add_notes_to_clip or remove_notes_from_clip, which would have earned a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description does not mention exclusions, prerequisites, or typical use cases, leaving the agent without context for selection.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description 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.
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.
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.
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.
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.
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_devicesA
List the devices loaded on a track, including each device's parameters
with their current value, min, and max. Use this to discover parameter
indices and ranges before calling set_device_parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Fully discloses that it returns each device's parameters with current value, min, and max. No annotations exist, so description carries full burden; it adequately describes behavior with no contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundant information. The first sentence states what the tool does, and the second provides usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description completely covers the purpose, usage, and context. It references the sibling tool set_device_parameter, completing the usage workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (track_index) with no schema description. The parameter name is self-explanatory, but the description does not add extra meaning beyond the schema. With 0% schema coverage, the description should compensate, but it minimally does.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool lists devices on a track with their parameters and values. The verb 'list' and resource 'track devices' are specific. Differentiates from siblings by mentioning use with set_device_parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use this tool before calling set_device_parameter to discover parameter indices and ranges. Provides clear when-to-use and names 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_track_infoC
Get detailed information about a specific track in Ableton.
Parameters:
track_index: The index of the track to get information about
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes |
TDQS
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.
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.
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.
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.
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.
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.
list_personalitiesA
List every available 'personality' style profile, grouped by role.
Roles:
solo — melodic / lead lines (Coltrane, Kenny G, Oscar Peterson, Miles Davis, Charlie Parker, Wayne Shorter)
comp — chord voicings / comping (Bill Evans rootless, McCoy Tyner quartal, Herbie Hancock)
bass — bass lines (James Jamerson, Jaco Pastorius, Pino Palladino)
drums — drum patterns (Questlove pocket, Tony Williams swing, Vinnie Colaiuta polyrhythms)
Each personality declares a tempo_sweet_spot and a comfortable
tempo_range; outside that range the generators emit a warning and
automatically scale density / swing to compensate.
Use the key field as the personality argument to
add_personality (the unified tool) or add_personality_solo (legacy).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It discloses that personalities have 'tempo_sweet_spot' and 'tempo_range' and that beyond that range the generators emit warnings and scale density/swing. However, it does not explicitly state that the operation is read-only or idempotent, though it can be inferred.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with markdown sections, clear role groupings, and front-loaded purpose. Every sentence adds value, and the length is appropriate for the information conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no input or output schema, the description adequately covers what it returns (list grouped by role, with tempo information). It could have explicitly stated the return format (e.g., array of objects) but is sufficiently complete for its purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the description does not need to add parameter semantics. The baseline score for 0 parameters is 4, as per guidelines.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'List every available personality style profile, grouped by role.' It uses a specific verb and resource, and distinguishes from sibling tools like add_personality and add_personality_solo by explaining how the output 'key' is used as an argument for those tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool: to list personalities and obtain the key for other tools. It includes roles and example personalities, but does not explicitly state when not to use it or alternative tools; however, the context is sufficient for an AI agent.
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')
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| rack_uri | Yes | ||
| kit_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose side effects and behavior. 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.
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.
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.
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.
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.
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_by_nameA
Convenience composite: search the browser by name and load the first
loadable match onto the given track. Equivalent to calling
search_browser then load_browser_item yourself.
Parameters:
track_index: where to load the instrument
name: substring of the instrument name (e.g. "Operator", "808 Core")
category: which browser category to search; defaults to "instruments"
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| name | Yes | ||
| category | No | instruments |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It explains the composite nature and 'first loadable match' but omits failure behavior (e.g., no match, load failure) and side effects. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences and a parameter list. All information is front-loaded and necessary, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the composite behavior and all parameters, but lacks details on return values or error states. Given the tool's action-oriented nature and no output schema, this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description text clearly defines each parameter's meaning, including the default for 'category'. This adds significant value beyond the raw schema, though it could be more detailed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is a convenience composite that searches the browser by name and loads the first loadable match onto a given track. It explicitly differentiates from siblings like 'search_browser' and 'load_browser_item' by indicating it combines them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the tool is a composite of two others, implying it should be used when a single step search-and-load is desired. However, it does not explicitly state when not to use it or suggest alternatives, but the context from sibling tools provides good guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_instrument_for_personalityA
Load the best Ableton instrument for the named personality onto a track.
Each personality has a BROWSER_HINTS list (e.g. Coltrane → ['tenor sax',
'saxophone', 'sax', 'brass']). This tool walks those hints in order, runs
a quality-scored search_browser for each, and loads the highest-scored
Instrument Rack / Device Preset across all hints onto the given track.
The Live API REPLACES the existing instrument when you load another one, so this is also a clean way to swap out a placeholder Operator for the "right" instrument for a personality.
Parameters:
track_index: target track
personality: any key from
list_personalitiesprefer_preset: rank Instrument Racks above raw samples (default True)
Returns the loaded item's name, path, score, and which hint matched.
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| personality | Yes | ||
| prefer_preset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the core algorithm (walk hints, search, load highest-scored), the replacement behavior of the Live API, and the return value. It lacks details on error handling or prerequisites but is generally transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: purpose, algorithm, important note (replacement), parameter descriptions, and return value. Each sentence serves a purpose, no fluff. It is concise yet informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 params, no output schema, and no annotations, the description covers the algorithm, parameters, and return values. It references list_personalities and BROWSER_HINTS adequately. Minor gap: no mention of fallback if search fails, but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must add meaning. It explains track_index as 'target track', personality as 'any key from list_personalities', and prefer_preset as 'rank Instrument Racks above raw samples'. This adds context beyond the schema, though not exhaustive (e.g., no range for track_index).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the primary purpose: 'Load the best Ableton instrument for the named personality onto a track.' It explains the algorithm using BROWSER_HINTS and distinguishes itself from siblings like load_instrument_by_name by focusing on personality-driven selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a personality and want the best instrument, but it does not explicitly compare with alternatives or provide when-not guidance. It lacks direct statements about when to use this vs. load_instrument_by_name or load_instrument_or_effect.
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')
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| uri | Yes |
TDQS
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.
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.
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.
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.
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.
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.
quantize_clipA
Quantize all notes in a clip to a grid by snapping each note's
start_time to the nearest grid line.
Parameters:
grid: "1/4" | "1/8" | "1/16" | "1/32"
Implementation: read existing notes, round start times, then in one batch remove the old notes and write the new ones. The whole edit is atomic from Live's perspective.
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| clip_index | Yes | ||
| grid | No | 1/16 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explains that the operation is atomic, reading existing notes, rounding start times, and batch removing and writing. It does not claim any destructive side effects beyond note modification.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: one sentence for purpose, then parameter list, then implementation detail. No wasted words and front-loaded with the key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided; the description does not explain return values or error cases. However, implementation detail adds context. Missing some behavioral aspects like permissions or response format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage. The description explains the 'grid' parameter with enum values but does not add meaning for 'track_index' or 'clip_index' beyond their names. Partial compensation but not complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool quantizes all notes in a clip to a grid, using the specific verb 'quantize' and resource 'clip notes'. This distinguishes it from sibling tools like 'add_notes_to_clip' or 'remove_notes_from_clip'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for snapping notes to a grid but does not explicitly state when to use this tool versus alternatives like 'add_notes_to_clip' or 'get_clip_notes'. No exclusions or prerequisites are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_notes_from_clipA
Remove MIDI notes from a clip within a specified range. By default removes ALL notes. Use parameters to target specific ranges.
Parameters:
track_index: The index of the track containing the clip
clip_index: The index of the clip slot containing the clip
from_time: Start time in beats (default: 0.0 = beginning)
from_pitch: Lowest MIDI pitch to remove (default: 0)
time_span: Duration in beats to clear (default: 99999.0 = all)
pitch_span: Number of pitches above from_pitch to clear (default: 128 = all)
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| clip_index | Yes | ||
| from_time | No | ||
| from_pitch | No | ||
| time_span | No | ||
| pitch_span | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the full burden. It explains default behavior and parameter effects but omits crucial details: whether the operation is destructive, requires specific permissions, affects undo history, or has side effects like clearing undo steps. The description is minimal for a mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a single sentence for purpose followed by a parameter list. Every line adds value, and the default behaviors are efficiently communicated. No redundancy or unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does not mention return values or confirmation. It also omits error handling (e.g., invalid track or clip indices) and does not clarify if the operation is permanent or undoable. For a simple removal tool, the missing context is acceptable but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage (no per-parameter descriptions). The description compensates by listing all 6 parameters, clarifying their roles (e.g., 'from_time: Start time in beats'), and explaining defaults. However, it could better clarify the relationship between time_span and from_time, and pitch_span and from_pitch.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove MIDI notes from a clip') and specifies the scope ('within a specified range'). This distinguishes it from sibling tools like 'add_notes_to_clip' and 'get_clip_notes', which have opposite or different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies default behavior (remove all notes) but does not explicitly state when to use this tool versus alternatives (e.g., 'quantize_clip' for editing, 'delete_clip' for entire clip removal). No guidance on when not to use it is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_browserA
Search the Ableton browser by name. Walks the browser tree depth-first and returns up to 50 matches whose names contain the query (case-insensitive).
Parameters:
query: substring to match (e.g. "808", "Operator", "Reverb")
category: "all" | "instruments" | "sounds" | "drums" | "audio_effects" | "midi_effects"
Returns a list of matches with name, uri, path, and is_loadable.
Pass the uri to load_browser_item to load the result onto a track.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| category | No | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the burden. Discloses depth-first traversal, 50-result limit, case-insensitive search, and return fields. Lacks side-effect or authorization details, but these are not critical for a read-only search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences plus a clear parameter list. Every sentence adds value; no redundancy. Front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description explains return format (list with name, uri, path, is_loadable) and includes usage hint. Minor gap: order of results or sorting not specified, but overall sufficient for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, but description compensates fully: explains query as substring match with examples, and lists all enumerated category values. Provides meaning well beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'Search the Ableton browser by name'. Distinguishes from sibling tools like get_browser_tree and get_browser_items_at_path by focusing on name-based substring search with depth-first traversal and result limit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States when to use (name-based search) and hints at next steps (pass uri to load_browser_item). Does not explicitly exclude cases or compare to alternatives, but provides sufficient context for typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_arrangement_loopA
Set the arrangement loop region (in beats) and whether the loop is enabled. Stable across Live 11+.
| Name | Required | Description | Default |
|---|---|---|---|
| start | Yes | ||
| end | Yes | ||
| loop_on | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It only mentions stability across Live 11+ but omits behavioral traits like side effects, permission requirements, or whether the loop change affects playback. Mutation implications are implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first clearly states purpose, second adds version info. No unnecessary words. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations or output schema, the description covers basic action and stability but lacks parameter constraints (e.g., start < end?), side effects, and return behavior. Adequate for a simple mutation but incomplete for full contextual understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds meaning: 'in beats' for start/end and 'whether the loop is enabled' for loop_on. This helps interpretation beyond bare titles and types, though units and constraints (e.g., positive numbers) are not detailed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'set', the resource 'arrangement loop region', the unit 'in beats', and the boolean 'loop on'. It is specific and distinguishes from siblings like 'set_clip_loop' by name and context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., set_clip_loop for clips). The description lacks context about prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_clip_lengthA
Resize a clip by moving its end_marker. Length is measured in beats from the clip's start_marker.
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| clip_index | Yes | ||
| length | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It transparently explains the mechanism (moving end_marker) and unit (beats from start_marker). However, it omits potential side effects like impact on loop or notes if present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. Front-loads the action ('Resize a clip') and immediately clarifies the key unit. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no output schema, the description covers core behavior and units. Lacks prerequisites (e.g., clip must exist) and error conditions, but these are minor gaps for this operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema coverage, the description adds critical meaning for the 'length' parameter by specifying its unit (beats) and reference point (start_marker). Track_index and clip_index are self-explanatory from context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Resize a clip by moving its end_marker', providing a specific verb+resource pair. It clearly distinguishes from sibling tools like fire_clip or delete_clip, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for resizing a clip length in beats, but does not provide when-to-use or when-not-to-use guidance. It lacks comparisons to similar tools like set_clip_loop, which may also affect clip length.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_clip_loopA
Set a clip's loop region (in beats) and whether the clip loops.
Parameters:
track_index, clip_index: which clip
loop_start: loop start in beats
loop_end: loop end in beats (must be > loop_start)
loop_on: enable looping
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| clip_index | Yes | ||
| loop_start | Yes | ||
| loop_end | Yes | ||
| loop_on | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates the tool modifies clip state (destructive) and notes that loop_end must be > loop_start, but lacks details on prerequisites, side effects, or error conditions. Without annotations, the description carries the full burden but provides only partial transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a single sentence stating purpose followed by a clear bullet list of parameters. Every element is meaningful, and the key constraint is highlighted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no annotations, and no output schema, the description explains the parameters and one constraint but omits return values, error conditions, and prerequisites. It covers the basics but lacks completeness for full agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by explaining each parameter: loop_start/loop_end as beat positions, loop_on as enable toggle, and the constraint that loop_end > loop_start. This adds significant value beyond the schema's type-only info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets a clip's loop region and whether it loops, with specific verb and resource, distinguishing it from siblings like set_clip_length. It is precise and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, nor any explicit when-not-to-use. The description only explains parameters without contextual usage advice.
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
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| clip_index | Yes | ||
| name | Yes |
TDQS
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.
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.
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.
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.
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.
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_device_parameterA
Set a device parameter on a track using a RAW Live value (not normalized).
The value is clamped to the parameter's min/max. Use get_track_devices
to discover the parameter's index, name, and value range.
Parameters:
track_index: which track the device is on
device_index: position of the device in the track's device chain (0-based)
parameter_index: position of the parameter in the device (0-based; index 0 is usually the on/off toggle)
value: raw Live value, e.g. 1000.0 for a filter cutoff in Hz
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| device_index | Yes | ||
| parameter_index | Yes | ||
| value | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description discloses clamping to min/max and raw value usage. It does not cover error handling or side effects, which would enhance transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear main sentence, a helpful usage hint, and a compact bullet list. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a setter mutation, the description covers prerequisites (discovery) and behavior (clamping). It omits return value or error cases, but these are minor given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description compensates fully by explaining each parameter's meaning, indexing scheme, and providing an example value. This adds significant value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets a device parameter on a track using a raw Live value, distinguishing it from normalized sets. It specifies the action and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description recommends using get_track_devices to discover parameter indices and ranges, providing clear context. It does not specify when not to use this tool but gives sufficient guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_master_volumeA
Set the master track volume.
Parameters:
volume: 0.0 (silent) to 1.0 (max). Default unity is ~0.85.
| Name | Required | Description | Default |
|---|---|---|---|
| volume | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must fully disclose behavior. It states 'Set the master track volume' and provides the valid range (0.0 to 1.0) and a default. However, it does not describe the effect on playback, whether the change is instantaneous, or if it overrides previous settings. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two brief sentences. The first sentence states the purpose, and the second details the parameter. No extraneous words, perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one required parameter, the description covers purpose and parameter range/default. However, it does not explain the meaning of 'unity' (whether it's the default if absent, even though the parameter is required) or the return behavior. Missing output schema and no mention of side effects leaves it moderately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Given 0% schema description coverage, the description compensates well by explaining the 'volume' parameter: its range (0.0 to 1.0) and a default (~0.85). This adds meaning beyond the schema's simple type definition, earning a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Set the master track volume,' specifying both the verb and the resource. It distinguishes itself from sibling tools like 'set_track_volume' by specifying 'master,' making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (to set master volume) but does not explicitly mention when not to use it or offer alternatives like 'set_track_volume' for regular tracks. The absence of exclusions or comparative guidance keeps it at a 3.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_scene_nameB
Set a scene's name.
| Name | Required | Description | Default |
|---|---|---|---|
| scene_index | Yes | ||
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fails to disclose any behavioral traits beyond the basic action. No mention of side effects, reversibility, or constraints like valid scene indexes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no wasted words. Perfectly concise for the minimal information provided.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and no output schema, the description is adequate but lacks details like index base (0 vs 1) or name constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and description adds no extra meaning beyond parameter names. 'scene_index' and 'name' are self-explanatory, but no details on allowed values or behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Set') and the resource ('a scene's name'), which is specific and distinguishes from sibling tools like set_track_name or set_clip_name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description is purely functional without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_scene_tempoB
Set a per-scene tempo. Firing this scene will set the song tempo to this value.
| Name | Required | Description | Default |
|---|---|---|---|
| scene_index | Yes | ||
| tempo | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the effect on song tempo when scene fires, but does not mention persistence, precedence, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. Front-loaded with the key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-param tool with no output schema, description covers the main behavior. However, missing details like tempo units reduce completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description adds no meaning beyond schema. Schema coverage is 0%, yet description does not explain units, range, or format for scene_index or tempo (e.g., BPM).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it sets a per-scene tempo and that firing the scene sets the song tempo. Distinguishes from sibling like set_tempo by specifying scene-level behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for scene-specific tempo control but does not explicitly state when to use versus global set_tempo or other tempo-related tools. No exclusions or alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_tempoA
Set the tempo of the Ableton session.
Parameters:
tempo: The new tempo in BPM
| Name | Required | Description | Default |
|---|---|---|---|
| tempo | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only 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.
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.
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.
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.
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.
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_time_signatureA
Set the song's time signature.
Parameters:
numerator: top number (1-99)
denominator: bottom number, must be a power of 2 (1, 2, 4, 8, 16)
| Name | Required | Description | Default |
|---|---|---|---|
| numerator | Yes | ||
| denominator | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavioral traits. It only lists parameter constraints, not side effects, undo behavior, or scope (e.g., global vs. per-track).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, but the parameter details are embedded in a sentence rather than a structured list. Still, it is clear and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with two parameters and no output schema, the description is largely complete. It could mention global scope or implications, but the provided constraints are sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only types and required status, with 0% coverage. The description adds essential semantics: valid ranges for numerator (1-99) and denominator (powers of 2: 1,2,4,8,16).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Set the song's time signature,' using a specific verb and resource. It distinguishes itself from sibling tools, as no other tool sets time signature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, or the context in which it should be invoked. There is no mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_track_armC
Arm or disarm a track for recording.
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| arm | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose all behavioral traits. It only states the basic action without mentioning reversibility, effect on playback, or potential side effects. The agent is left uninformed about the tool's impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded. However, it is too brief and sacrifices necessary detail for brevity, making it less useful than it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 2 parameters, no output schema, and no annotations. The description fails to provide sufficient context for an agent to use it correctly. It does not explain the effect of the arm boolean, how track_index is interpreted, or what happens after the action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain the parameters at all. With 0% schema description coverage and no param info in the description, the agent cannot understand the meaning of 'track_index' or 'arm' beyond their names. The schema provides basic types but no semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (arm/disarm) and the resource (track) with the purpose of recording. It distinguishes itself from sibling set_track_* tools by specifying 'for recording', making the action clear. However, it does not elaborate on the concept of arming.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as set_track_mute or other recording-related commands. There is no mention of prerequisites or conditions under which arming is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_track_muteC
Mute or unmute a track.
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| mute | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only states 'Mute or unmute a track' but fails to disclose effects on playback, automation, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks essential details. It is front-loaded but too short to be sufficiently informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two parameters, no output schema, and no annotations, the description is minimal. It omits return values, error handling, and prerequisites, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning beyond the parameter names. It does not clarify indexing (0- or 1-based) or the behavior of the boolean mute flag.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (mute/unmute) and the resource (track), with a specific verb and noun. It distinguishes itself from sibling tools like set_track_solo or set_track_arm.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., toggle vs direct set) or any prerequisites. The description does not mention any context for use.
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
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| name | Yes |
TDQS
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.
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.
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.
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.
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.
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_panA
Set the panning of a track.
Parameters:
track_index: The index of the track
pan: Panning from -1.0 (full left) to 1.0 (full right). 0.0 is center.
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| pan | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states that it sets panning and gives the range, but fails to disclose behavioral traits such as whether it overwrites existing pan, affects automation, or requires the track to exist. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise—two sentences plus brief parameter explanations—with no superfluous content. The main action is front-loaded, and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 required parameters, no output schema, no annotations), the description covers the essential information: what it does, the parameter meanings, and the valid range for pan. It could mention error handling for out-of-range values, but overall it is sufficiently complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the pan parameter with its range and center value, and clarifies that track_index is 'the index of the track'. This adds meaningful context beyond the schema's titles and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Set the panning of a track.' This is a specific verb and resource, and it distinguishes from sibling tools like set_track_volume or set_track_mute, which set different parameters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or context. It simply describes the action without indicating scenarios 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_sendA
Set a send amount on a track (for routing to return tracks).
Parameters:
track_index: The index of the track
send_index: The index of the send (0 = Send A, 1 = Send B, etc.)
value: Send amount from 0.0 (none) to 1.0 (full)
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| send_index | Yes | ||
| value | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It explains parameter value range (0.0 to 1.0) and send index mapping, but does not disclose potential side effects, prerequisites (e.g., track must exist and have sends), or return behavior. Adequate for a simple setter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two focused sentences plus a parameter list, no redundant text. Information is front-loaded with the main purpose, and each sentence serves a clear function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core functionality and parameter details, but lacks mention of error handling, prerequisites, or return format. For a simple parameter-setting tool with no output schema, this is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (only titles), but description adds meaning: track_index and send_index are clarified with index mapping (Send A, Send B), and value range is specified (0.0 to 1.0). This goes beyond the schema's minimal info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Set a send amount on a track' with specific verb and resource, and adds context 'for routing to return tracks', distinguishing it from siblings like set_track_volume or set_track_pan.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., when to use set_track_send instead of set_track_volume). The description provides no exclusions or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_track_soloC
Solo or unsolo a track.
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| solo | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose all behavioral traits. It only states the action, omitting effects like muting other tracks, audio output changes, or required track existence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise but at the expense of completeness. It omits critical context that would justify its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is insufficient. An agent needs to infer indexing, required state, and side effects from the name alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no explanation of track_index (e.g., 0-based?) or the solo boolean. The agent relies solely on parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Solo or unsolo a track.' clearly states the action on a specific resource. It is a specific verb+resource combination, but it does not differentiate from sibling mute/arm tools beyond the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidelines are provided. There is no indication of when to solo vs mute, or prerequisites like track type or state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_track_volumeB
Set the volume of a track.
Parameters:
track_index: The index of the track
volume: Volume level from 0.0 (silent) to 1.0 (max). Default is ~0.85.
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| volume | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the volume range and default, but fails to mention important behaviors like whether the setting is absolute or relative, what happens to existing volume, error handling for invalid indices, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using only two sentences plus parameter details. It is front-loaded and contains no superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity of the tool (two simple parameters) and no output schema, the description covers the basic purpose and parameter constraints. However, it lacks information on return values, error handling, or validation behavior, leaving gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema description coverage is 0%, the description adds meaning: track_index is the index, volume is 0.0-1.0 with default ~0.85. However, it does not clarify if track_index is zero-based or what occurs if the index is out of bounds.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Set the volume of a track' clearly states the action and target resource. It distinguishes itself from sibling tools like set_master_volume, set_track_mute, etc., which adjust different attributes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, such as track existence, or comparisons to related tools like set_master_volume.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_sessionA
Bootstrap an Ableton session in (effectively) one round-trip: set tempo, set time signature, and create a list of tracks with optional names, instruments, volume, and pan.
Parameters:
tempo: BPM (e.g. 120.0)
time_signature: [numerator, denominator], e.g. [4, 4] or [6, 8]
tracks: list of dicts. Each entry may contain:
type: "midi" or "audio" (default "midi")
name: optional track name
instrument_uri: optional browser URI (load via
search_browserfirst)volume: optional 0.0-1.0
pan: optional -1.0 to 1.0
Tracks are created in order at the END of the existing track list. Returns a JSON summary of every step.
| Name | Required | Description | Default |
|---|---|---|---|
| tempo | No | ||
| time_signature | No | ||
| tracks | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that tracks are created at the end of the existing list and returns a JSON summary, but does not cover edge cases like null parameters or error behavior, leaving gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a brief purpose sentence followed by a bulleted parameter list. It is slightly verbose but remains clear and front-loaded. Could be shortened slightly without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description mentions the return type (JSON summary). It covers all parameters and provides context like 'load via search_browser first' for instrument URIs. However, it lacks details on error handling or prerequisites, but remains fairly complete for a bootstrap tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description provides detailed semantics for all three parameters: tempo format (BPM), time_signature array format, and tracks as a list of dicts with optional fields. This adds significant meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool bootstraps an Ableton session with tempo, time signature, and track creation in one round-trip. It distinguishes from sibling tools like set_tempo, set_time_signature, create_track, which perform individual actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description emphasizes efficiency ('one round-trip') but does not explicitly state when to use this tool versus alternatives (e.g., for partial setups). It implies use for full session initialization, but lacks explicit when-not or alternative references.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| clip_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description 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.
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.
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.
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.
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.
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.
transpose_clipA
Transpose every note in a clip by semitones (positive = up, negative
= down). Notes that would land outside the MIDI range [0, 127] are
clamped.
Implementation: read notes, mutate pitches, batch(remove + add).
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| clip_index | Yes | ||
| semitones | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral disclosure. It mentions clamping of notes outside MIDI range and provides implementation details (read, mutate, batch). However, it does not state whether the operation is undoable, if playback must stop, or any permissions needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: two sentences plus an implementation note. Every sentence adds value, and the key behavior (transpose with clamping) is front-loaded. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a note-transposing tool with three parameters and no output schema, the description covers the core functionality and an important edge case (clamping). It lacks usage guidelines and parameter details for indices, but overall it's quite complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains the 'semitones' parameter (positive=up, negative=down) but does not describe 'track_index' or 'clip_index'. Since schema coverage is 0%, the description partially compensates but not fully for all three required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Transpose every note in a clip by semitones' with direction indication. It distinguishes from sibling tools like add_notes_to_clip or remove_notes_from_clip by focusing on pitch modification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives (e.g., quantize_clip), nor does it mention prerequisites such as the need for an existing clip with MIDI notes. Usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
undoA
Undo the last action in Ableton.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool undoes the last action, but lacks details on what exactly happens (e.g., whether it undoes only one step, what occurs if no actions to undo, or side effects on other states).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is extremely concise and front-loaded. Every word is necessary; no redundant information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema) and the context of Ableton, the description is largely complete. However, it could benefit from clarifying scope (e.g., global undo vs track-specific) or limitations, but the current description suffices for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100% (no param info needed). According to guidelines, baseline for 0 params is 4. The description does not add param info, which is acceptable given no parameters exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a concise verb+resource statement: 'Undo the last action in Ableton.' It clearly states the action (undo) and the context (the last action in Ableton), distinguishing it from all sibling tools, which cover various other operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use undo versus alternatives, such as redo or reverting specific changes. The description does not mention any prerequisites, limitations (e.g., undo history depth), 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
62 tool updates
v1.1.0- First observed
add_arrangement_locator - First observed
add_blended_personality_solo - First observed
add_chord_progression - First observed
add_clip_to_arrangement - First observed
add_drum_pattern - First observed
add_notes_to_clip - First observed
add_personality - First observed
add_personality_solo - First observed
add_scale_run - First observed
batch_commands - First observed
bounce_session_to_arrangement - First observed
browse_for_role - First observed
create_audio_track - First observed
create_clip - First observed
create_clip_with_notes - First observed
create_midi_track - First observed
create_scene - First observed
create_track - First observed
delete_clip - First observed
delete_track - First observed
duplicate_clip - First observed
duplicate_clip_to - First observed
fire_clip - First observed
fire_scene - First observed
get_arrangement_info - First observed
get_browser_items_at_path - First observed
get_browser_tree - First observed
get_clip_notes - First observed
get_session_info - First observed
get_track_devices - First observed
get_track_info - First observed
list_personalities - First observed
load_drum_kit - First observed
load_instrument_by_name - First observed
load_instrument_for_personality - First observed
load_instrument_or_effect - First observed
quantize_clip - First observed
remove_notes_from_clip - First observed
search_browser - First observed
set_arrangement_loop - First observed
set_clip_length - First observed
set_clip_loop - First observed
set_clip_name - First observed
set_device_parameter - First observed
set_master_volume - First observed
set_scene_name - First observed
set_scene_tempo - First observed
set_tempo - First observed
set_time_signature - First observed
set_track_arm - First observed
set_track_mute - First observed
set_track_name - First observed
set_track_pan - First observed
set_track_send - First observed
set_track_solo - First observed
set_track_volume - First observed
setup_session - First observed
start_playback - First observed
stop_clip - First observed
stop_playback - First observed
transpose_clip - First observed
undo
TDQS
Scored across 62 tools
Most tools have clearly distinct purposes, but there is some overlap with legacy aliases like 'add_personality_solo' and similar operations like 'create_clip' vs 'create_clip_with_notes'. Overall, an agent can distinguish between tools with reasonable accuracy.
Tool names predominantly follow a verb_noun pattern in snake_case (e.g., 'add_arrangement_locator', 'set_track_volume'). A few names like 'bounce_session_to_arrangement' or 'get_browser_items_at_path' are longer but still consistent with the overall convention.
With 62 tools, the set is excessively large for an MCP server. This likely overwhelms agents, making selection difficult. Many tools could be consolidated (e.g., 'add_personality' subsumes 'add_personality_solo').
The tool set covers a broad range of Ableton Live operations including session setup, track/clip management, browser search, personality-based generation, and arrangement features. Minor gaps exist (e.g., scene deletion, automation), but core workflows are well-supported.
Maintenance
Related MCP Connectors
AI image, video, voice and music generation over MCP, routed to Veo 3.1, Seedance 2.0 and more.
MCP server for Producer/Riffusion AI music generation
Generate AI music via the Lacuna Music API from MCP clients like Claude Desktop & Code.
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceConnects Ableton Live to AI assistants through Model Context Protocol (MCP), enabling natural language control of music production tasks like track creation, MIDI editing, instrument loading, and playback control.15MIT
- AlicenseCqualityDmaintenanceConnects Claude AI to Ableton Live through the Model Context Protocol, enabling prompt-assisted music production with track creation, instrument loading, clip editing, and session control. Allows users to create complete musical arrangements by describing what they want in natural language.373MIT
- AlicenseBqualityFmaintenanceConnects Ableton Live to Claude AI through the Model Context Protocol, enabling AI-assisted music production and Live session manipulation via over 200 tools.10052MIT
- AlicenseBqualityBmaintenanceEnables AI agents to control Ableton Live 12 for music production, including generating grooves, basslines, and percussion, and executing live set operations through MCP.32MIT