Skip to main content
Glama

AbletonMCP

AbletonMCP lets an AI agent (Claude, or any MCP client) operate Ableton Live 12 over the Model Context Protocol. It is built for an agentic composer. The agent can go from an empty set to a finished song and render release-ready files without a human touching Live:

  1. Set tempo, key and scale.

  2. Build instruments and effects.

  3. Write MIDI parts and drum patterns.

  4. Arrange sections.

  5. Mix and automate.

  6. Master and bounce the master and stems.

  7. Measure loudness and spectrum.

  8. Encode WAV, FLAC, MP3 and AAC with tags and artwork.

Version 2 is a ground-up redesign. The goals and design are in docs/PRD.md, and the full tool reference is docs/TOOLS.md.

How it works

AI agent ──MCP (stdio)──► AbletonMCP server ──TCP 127.0.0.1:9877──► AbletonMCP Remote Script ──► Ableton Live
                          (Python, this repo)                     (runs inside Live as a control surface)
  • The Remote Script runs inside Live. It executes commands on Live's main thread, with one undo step per change.

  • The MCP server exposes 78 workflow-shaped tools. It also does what Live's API cannot, using ffmpeg: rendering by resampling, loudness and spectral analysis, and encoding and tagging releases.

Related MCP server: Ableton Live MCP Ultra v2

Requirements

  • Ableton Live 12.4 or later (verified on 12.4.6, Suite). macOS is the primary platform; Windows is best-effort.

  • uv and Python 3.10 or later.

  • ffmpeg, for analyze_audio and create_release. On macOS: brew install ffmpeg.

  • Optional: macOS Automation and Accessibility permission for the app running the MCP server. This enables save_set, new_set and export_audio, which drive Live's menus because Live has no API for them.

Install

  1. Get the code

    git clone https://github.com/elleural/ableton-mcp.git

    Then run uv sync from the cloned folder.

  2. Install the Remote Script into Live's User Library. This links it to your checkout, so updates need no copying.

    uv run ableton-mcp install
  3. Restart Live. It only discovers Remote Scripts at launch. Then open Settings → Link, Tempo & MIDI and set a Control Surface slot to AbletonMCP, with Input and Output set to None.

  4. Register the MCP server with your client.

    • Claude Code:

      claude mcp add --scope user ableton -- uv run --directory /path/to/ableton-mcp ableton-mcp
    • Claude Desktop: in claude_desktop_config.json, add:

      {"mcpServers": {"ableton": {"command": "uv", "args": ["run", "--directory", "/path/to/ableton-mcp", "ableton-mcp"]}}}

    Do not use uvx ableton-mcp. That installs an unrelated older package from PyPI.

  5. Check everything.

    uv run ableton-mcp doctor

Using it

Ask for music in plain language. For example: "Make a 124 BPM house track in A minor: four-on-the-floor drums, a rolling bassline, warm chords; arrange intro/verse/drop; mix it; bounce it with stems and give me a -14 LUFS release." The server's instructions teach the agent the workflow and conventions. Its usual flow:

get_status → set_song → create_track / add_device / load_from_browser → create_clip (notes, pattern) →
write_automation → fire_scene → arrange_from_scenes → set_mixer / set_sidechain → bounce →
get_bounce_status → analyze_audio → create_release → save_set

Conventions every tool shares:

  • Tracks: an index, a name, "return:A", or "master".

  • Devices: an index, a name, or a rack path like "Drum Rack/Kick/Simpler".

  • Time: beats, or "bar.beat.sixteenth" such as "17.1.1".

  • Pitch: a MIDI number or a note name, where C3 is 60.

  • Mixing units: volume in dB, pan from −1 to +1.

Every change is one undo step (undo), and lom_get / lom_set / lom_call reach anything in Live's object model that the curated tools do not.

Rendering and release

Live's API has no export function, so bounce renders in real time inside Live:

  1. It records the master, through Live's "Resampling" input, and any stems you ask for onto temporary audio tracks.

  2. It restores your transport and arm settings.

  3. It writes sample-accurate WAVs to ~/Music/AbletonMCP/Bounces/<name>/.

create_release then:

  1. Normalises to a loudness target, by default −14 LUFS with a −1 dBTP ceiling.

  2. Encodes WAV 24-bit and 16-bit (dithered), FLAC, MP3 320 and AAC.

  3. Writes tags and artwork.

  4. Saves the files with a release.json manifest to ~/Music/AbletonMCP/Releases/<artist> - <title>/.

Listening loop

The agent cannot hear, so the listening loop (docs/listening-loop-prd.md) lets it check its own work against a spec of the brief (key, progressions, loop lengths, layer tiers, loudness targets; the bundled one is NOVA's, ears/specs/nova.spec.json):

Tool

Does

analyze_notes

Checks the stem clips' notes: key, chord tones, semitone clashes between stems, loop lengths, grid, lead rests. Under a second, no audio

capture

Records every stem's track output, the returns and the main mix in real time inside Live (Session recording on temporary cap: tracks), cuts the folded second cycle into a take and analyses it. Leaves the set as found

analyze_audio(take=...)

Tier sums T1–T5 as the game layers them: −14 LUFS / −1 dBTP, key, mono sub, stems + returns cancel the mix, tempo consistency, tier ladder, masking, the game's analyser bands, phone survival; strict adds the delivery-file checks

compare

Deltas between two takes (or against the spec), loudness-matched, each improved, regressed or within the measured noise; blind gives an X/Y packet for a fresh judge

takes

The ledger of takes, keep the best one, restore an earlier take's notes and parameters

ref, meter

References: a Spotify track played in the desktop app and measured through the interface's loopback (a 4th Gen Scarlett's inputs 3-4, or a virtual device), once, as numbers only; or a file you own. compare(take, "refs") places a take's balance, dynamics and width against them; meter measures whatever plays now

The analysis is the standalone ears package; its CLI runs without Live and doubles as the soundtrack's acceptance script:

uv run ears acceptance path/to/public/music/masters

Takes live in <set folder>/ears/ for a saved set, else ~/Music/AbletonMCP/Ears/<set name>/ (EARS_HOME overrides). Verified capture behaviour and calibration are in docs/spikes.md and docs/listening-loop-calibration.md.

Limits of Live's API

Not possible through Live's API

What AbletonMCP does instead

Offline export

Real-time bounce; optional export_audio drives Live's dialog through UI automation

Saving or creating sets

save_set / new_set through UI automation; open_set uses the OS

Group tracks

create_bus routes tracks into an audio bus track

Arrangement automation lanes

Automate Session clips with write_automation; envelopes travel into the arrangement

Freeze, flatten, consolidate, audio editing

Not available

Troubleshooting

  • Run uv run ableton-mcp doctor first. It checks Live, the Remote Script link, the port, versions, ffmpeg and permissions, and prints a fix for each failure.

  • AbletonMCP is not in the Control Surface list: restart Live after ableton-mcp install.

  • Errors after updating the code: call the reload_remote_script tool, or run uv run ableton-mcp-debug send reload_remote_script, to hot-load new Remote Script code without restarting Live.

  • Live's log: ~/Library/Preferences/Ableton/Live <version>/Log.txt on macOS. Remote Script messages are prefixed AbletonMCP.

Development

See docs/DEVELOPING.md for the architecture, adding commands and tools, hot reload and the test layers:

  • Offline unit and contract tests: uv run pytest tests/unit tests/contract

  • Listening loop analysis (ears) on synthetic fixtures: uv run pytest tests/ears and uv run ears calibrate

  • Live integration tests: uv run pytest tests/live, against a running Live; they clean up after themselves.

Credits

The original AbletonMCP is by Siddharth Ahuja. This fork's v2 rewrite is by Frederic Laruelle. MIT licensed. This is a third-party project and is not made by Ableton.

Available Tools

78 tools
add_deviceA

Insert a native Live device by name on a track, or into a rack chain.

name: case-insensitive ("Operator", "eq eight", "Drum Rack"). position: device index (-1 = end). chain: a path to a rack chain alternating device and chain segments: "Instrument Rack/0", "Drum Rack/C1" (a drum note gets a new chain if the pad is empty) or "Audio Effect Rack/new". Instruments and MIDI effects need a MIDI track or MIDI rack chain. Max for Live devices listed with Live's devices (LFO, DS Kick, ...) load through the browser. Presets and packs: load_from_browser. Example: add_device("Bass", "Saturator").

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
chainNo
trackYes
positionNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare write/non-destructive/non-idempotent, so the bar is lower, yet the description adds real behavioral context: MIDI track/rack-chain preconditions, that Max for Live devices load through the browser, and that an empty drum pad triggers a new chain. It doesn't disclose failure behavior or the resulting device state/selection, keeping it at 4.

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

Conciseness4/5

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

Front-loaded with the action, then packs parameter semantics into terse fragments and closes with a concrete example. It is dense but nearly every clause carries non-obvious information; a slightly tighter grouping of the chain examples could improve it.

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

Completeness4/5

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

No output schema exists, and the description covers insertion scope, preconditions, chain grammar, device sourcing, and an example. Missing only return/error behavior and post-insert side effects (selection, undo interaction), which the sibling set (undo/redo) hints at but the description never addresses.

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

Parameters4/5

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

Schema coverage is 0%, so the description carries the full burden and does so well: name casing rules with examples, position=-1 meaning end, and a detailed chain path grammar with three illustrative formats. Only 'track' is left implicit (inferable from "on a track"), which is a minor gap against a 0%-covered 4-param schema.

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

Purpose5/5

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

States a specific verb+resource ("Insert a native Live device") and scopes it to a track or rack chain, immediately distinguishing it from browser-based loading by naming 'live_from_browser's role. The sibling list contains many device tools (set_device, device_action, duplicate_device), and the word 'native' plus the insert-only framing separates this one cleanly.

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

Usage Guidelines4/5

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

Explicit routing guidance is given for a key case: "Presets and packs: load_from_browser." Preconditions are also stated ("Instruments and MIDI effects need a MIDI track or MIDI rack chain"). It doesn't systematically state when NOT to use it versus siblings like duplicate_device/move_device, so it stops short of a full 5.

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

analyze_audioA
Read-onlyIdempotent

Measure an audio file so you can judge a mix without hearing it.

Returns loudness (integrated LUFS, range LU, true peak dBTP, short-term and momentary max), levels (sample peak, RMS, crest factor, DC offset, clipped samples), stereo (correlation -1..1; width = side/mid RMS, 0 = mono), spectrum (% of energy: sub <60 Hz, low 60-250, low_mid 250-2k, high_mid 2k-6k, high >6k), a short-term loudness curve, dropouts and plain-language notes. sections: "locators" (the bounce's locators, else Live's from 1.1.1) or [{name, start, end}] in seconds, for loudness per section. images=True adds a spectrogram and a waveform (PNG).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
imagesNo
sectionsNo

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), and the description adds substantial behavioral context on top: it details exactly what gets returned (LUFS, dBTP, stereo correlation, spectral bands, dropouts, notes) and how the 'sections' and 'images' options alter behavior.

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

Conciseness4/5

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

The description is long but densely informative and front-loads its purpose before listing return details. Every clause contributes necessary information about output content, with no filler, though the run-on structure makes it slightly dense.

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

Completeness4/5

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

With no output schema, the description admirably covers the return payload, and annotations handle safety. Gaps remain around supported audio formats and expected 'path' format, but for a read-only analysis tool the definition is largely complete.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It clearly explains 'sections' (locators or [{name, start, end}] in seconds) and 'images' (adds spectrogram and waveform PNGs), covering two of three parameters well; only the obvious 'path' lacks format guidance.

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

Purpose5/5

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

The description states a specific verb ('Measure') and resource ('an audio file') and immediately clarifies the goal ('judge a mix without hearing it'). It enumerates the exact metrics returned, making it clearly distinct from siblings like export_audio or get_meters.

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

Usage Guidelines3/5

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

The phrase 'so you can judge a mix without hearing it' implies the analysis use case, but there is no explicit comparison to alternatives such as get_meters or export_audio, nor any when-not guidance. Usage is suggested rather than stated.

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

arrange_from_scenesA
Destructive

Build the arrangement from scenes: sections play one after another from start, each placing every track's clip from its scene for the section's length.

sections: [{scene (index or name), bars (or length: beats / "8 bars"), name?}]. Looping clips loop to fill a section exactly, at any length; one-shot clips play once. Clip envelopes travel along. A track's range is overwritten where it has a clip; clear=True first empties the whole range on the tracks taking part (those with a clip in a listed scene, or tracks). locators=True adds a locator per section, named after it; the transport is stopped first if it is playing. Arrangement clips are independent copies: write notes and automation in the Session clips BEFORE arranging (or re-run with clear=True after editing them). Returns undo_steps. Example: arrange_from_scenes([{"scene": "Intro", "bars": 4}, {"scene": "Verse", "bars": 8}]). Verify with get_arrangement.

ParametersJSON Schema
NameRequiredDescriptionDefault
clearNo
startNo1.1.1
tracksNo
locatorsNo
sectionsYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and idempotentHint=false, and the description goes well beyond them: it details exactly what gets overwritten ('A track's range is overwritten where it has a clip'), what clear=True empties, that clips become independent copies, that the transport is stopped first, and that it returns undo_steps.

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

Conciseness4/5

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

Dense but front-loaded: the core mechanic comes first, then side effects, then the example. Every sentence adds information, though the parenthetical asides make it longer than strictly minimal for a tool this complex.

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

Completeness5/5

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

For a destructive, non-idempotent, 5-param tool with no output schema, the description covers ordering semantics, overwrite scope, looping vs one-shot behavior, locator creation, transport handling, the pre-arrange editing prerequisite, and the return value (undo_steps). Nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

Schema coverage is 0%, so the description carries full burden and does so well: it documents the sections element shape (scene index/name, bars or length with beats/'8 bars', optional name), clear, tracks, and locators semantics, plus a concrete example. The `start` format (e.g. '1.1.1') is only implied by the default, a minor gap.

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

Purpose5/5

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

States a specific verb+resource ('Build the arrangement from scenes') and immediately defines the mechanism: sections play in order from `start`, each placing every track's clip. This distinguishes it clearly from get_arrangement and clear_arrangement siblings.

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

Usage Guidelines4/5

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

Gives strong workflow context: write notes/automation in Session clips BEFORE arranging, or re-run with clear=True after editing, and 'Verify with get_arrangement' routes to the read-back sibling. It stops short of explicit when-not-to-use guidance (e.g. vs. manual clip placement), so not a 5.

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

bounceA
Destructive

Render the arrangement to WAV in real time (resampling inside Live): the master plus optional stems.

start/end: beats, "bar.beat.sixteenth" or a locator name; end defaults to the last arrangement event rounded up to a bar. tail: time after end for reverb and delay tails: beats, "1 bar", or seconds ("2 s"). stems: "all" (unmuted tracks with audio), or track names or indices ("return:A" works); include_returns adds every return. Files go to output_dir (default ~/Music/AbletonMCP/Bounces//) as " - Master.wav" and " - .wav", replacing same-named files. The song plays audibly; transport, loop, metronome and arm states are restored. Returns a job: poll get_bounce_status(wait=50) until phase is "done" (polling is required: it delivers the files and removes the temporary tracks). Example: bounce(stems=["Drums", "Bass"], name="Demo").

ParametersJSON Schema
NameRequiredDescriptionDefault
endNo
nameNo
tailNo2 s
startNo
stemsNo
output_dirNo
include_returnsNo

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses that the song plays audibly, that transport/loop/metronome/arm states are restored, that same-named files are replaced, and that temporary tracks are created and removed on polling. The destructiveHint annotation is reinforced with concrete detail about what is overwritten and cleaned up.

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

Conciseness4/5

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

Front-loads the core purpose, then per-parameter details, then the mandatory polling workflow. Dense but every clause is load-bearing; slightly run-on but appropriately sized for a 7-parameter tool with no schema descriptions.

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

Completeness5/5

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

Complete for a mutation/export tool with no output schema: it explains the async job model, the required polling step, side effects, and output locations/defaults. Nothing an agent needs to invoke it correctly is missing.

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

Parameters5/5

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

Schema coverage is 0%, so the description carries the full burden and does: it defines formats for start/end ('bar.beat.sixteenth' or locator name), the end default behavior, tail units (beats, '1 bar', seconds), stems syntax ('all', names, indices, 'return:A'), include_returns, output_dir default and file-naming pattern.

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

Purpose5/5

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

States a specific verb and resource ('Render the arrangement to WAV in real time') plus scope ('the master plus optional stems'), which is concrete enough to distinguish from siblings like export_audio. An agent knows exactly what operation this performs.

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

Usage Guidelines4/5

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

Gives clear workflow context: the returned job must be polled via get_bounce_status(wait=50) and 'polling is required', plus a concrete example invocation. It does not explicitly contrast with the sibling export_audio, so the when-to-use-vs-alternative condition is left implicit.

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

browseA
Read-onlyIdempotent

List a browser folder. path "" lists the categories; "drums/Drum Hits/Kick" lists that folder (names match case-insensitively, file extensions optional). Items give name, path, uri, kind, is_loadable and is_device; page large folders with limit and offset.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
limitNo
offsetNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, closed world), yet the description adds real value beyond them: item field contents (name, path, uri, kind, is_loadable, is_device), pagination behavior, and case-insensitive matching. No error behavior for bad paths is described, so it stops short of a 5.

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

Conciseness4/5

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

A tight, front-loaded paragraph with no filler; the path convention is stated first and the return fields/paging follow. Slightly dense with parenthetical asides, but every clause carries information.

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

Completeness4/5

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

With no output schema and 0% parameter coverage, the description compensates by enumerating returned item fields and paging mechanics. It lacks failure modes (invalid/nonexistent path) and any note about ordering, but is otherwise sufficient for correct invocation.

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

Parameters4/5

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

Schema description coverage is 0%, so the description carries the burden and mostly succeeds: it explains path syntax/semantics (root "", nested example, case-insensitive names, optional extensions) and the paging role of limit and offset. It doesn't document limits on limit values or offset defaults beyond what the schema shows.

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

Purpose4/5

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

Clear verb+resource ("List a browser folder") with concrete path examples that make the scope unambiguous. It implicitly separates itself from siblings like search_browser and load_from_browser, but never names or contrasts them explicitly.

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

Usage Guidelines3/5

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

The root-path convention ("" lists categories) and example path give implied usage, and paging with limit/offset is explained. However there is no explicit guidance on when to choose browse versus search_browser or how it pairs with load_from_browser, leaving the workflow to inference.

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

cancel_bounceA
Idempotent

Cancel a running bounce: recording stops, transport and arm states are restored, and the temporary "[bounce]" tracks are removed. With no bounce running, removes leftover "[bounce]" tracks.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only convey the safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false); the description adds substantial behavioral detail beyond that — that recording halts, transport and arm states are restored, and that temporary '[bounce]' tracks are deleted. This also explains why destructiveHint=false is accurate (only temporary bounce tracks are removed) and why the operation is idempotent (the no-bounce branch still cleans up).

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

Conciseness5/5

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

Two tightly written sentences that are front-loaded with the primary action and then the fallback behavior. Every clause carries information; nothing is redundant padding.

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

Completeness5/5

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

For a zero-parameter, no-output-schema tool with annotations already covering the safety profile, the description supplies everything needed: both execution branches and the state restoration side effects. Nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

The tool takes no parameters, so the baseline is 4; there is no parameter semantics to document. The description correctly implies a parameterless, single-action operation.

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

Purpose5/5

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

States a specific verb ('Cancel') and resource ('a running bounce') and immediately enumerates the concrete effects (recording stops, transport/arm states restored, temp tracks removed). It is unmistakably the counterpart to the sibling 'bounce' tool, so an agent can distinguish them without opening a schema.

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

Usage Guidelines4/5

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

It covers both states explicitly: cancel while a bounce runs, and clean up leftover '[bounce]' tracks when none is running, which is clear usage context. It stops short of naming an alternative or a precondition (e.g., checking get_bounce_status first), so it is not full when/when-not guidance.

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

clear_arrangementA
Destructive

Delete arrangement clips by track and time range. Destructive: confirm before deleting the user's work.

mode "trim" (default) empties exactly start..end: clips inside are deleted and clips crossing an edge are cut there. "overlapping" deletes every clip touching the range, whole; "inside" deletes only clips entirely within it. Omit start/end for the whole timeline. Pass tracks, or all_tracks=True to clear every track. Times are beats, "bar.beat.sixteenth" or a locator name. Example: clear_arrangement(tracks=["Bass"], start="Chorus", end="Outro").

ParametersJSON Schema
NameRequiredDescriptionDefault
endNo
modeNotrim
startNo
tracksNo
all_tracksNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false; the description reinforces this with an explicit 'confirm before deleting the user's work' caveat and details the surgical trim behavior (clips cut at edges) that annotations cannot convey. It does not address reversibility/undo availability despite idempotentHint=false, so not a 5.

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

Conciseness4/5

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

Front-loads the destructive warning and the core action, then moves to mode semantics and an example. Dense but every sentence carries information; the mode enumeration is slightly verbose but justified by the ambiguity it resolves.

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

Completeness4/5

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

For a destructive, parameter-heavy tool with no output schema, the description covers action, modes, defaults, parameter formats, and a usage example. It omits return-value/response behavior and undo interaction, but those are minor given no output schema exists.

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

Parameters5/5

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

With 0% schema description coverage, the description carries the full load: it explains start/end formats (beats, 'bar.beat.sixteenth', or a locator name), all mode values and the default, and the tracks vs all_tracks relationship. It also provides a concrete example call, which the bare anyOf schema cannot.

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

Purpose5/5

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

States a specific verb (Delete) and resource (arrangement clips) with scope (by track and time range), which cleanly separates it from the single-clip sibling delete_clip. The mode breakdown further pins down exactly what gets removed in each case.

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

Usage Guidelines4/5

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

Explicitly documents when each mode applies (trim vs overlapping vs inside) and what omitting start/end does, plus the tracks-vs-all_tracks choice. It does not name an alternative tool to prefer for a narrower delete, so it falls short of a full when-not/alternatives statement.

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

clear_automationB
Destructive

Remove a clip's envelope for one parameter, or every envelope when parameter is omitted. Works for Session and arrangement clips. Example: clear_automation("Pad", slot=0, parameter="volume").

ParametersJSON Schema
NameRequiredDescriptionDefault
slotNo
trackYes
deviceNo
parameterNo
arrangement_clipNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds real value beyond that by disclosing the higher-destruction case: omitting `parameter` wipes every envelope, and it clarifies the Session vs arrangement clip scope. It stops short of mentioning undo or irreversible-state caveats.

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

Conciseness4/5

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

Two tight sentences followed by a concrete example; the primary removal semantics are front-loaded and nothing is padded. The example earns its place by disambiguating argument types.

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

Completeness3/5

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

For a destructive 5-parameter mutation with no output schema, the description covers scope and the clear-all behavior adequately but leaves the addressing model (how track, device, slot, and arrangement_clip combine to locate the target clip) largely unexplained. An agent would still have to guess at target resolution.

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

Parameters2/5

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

Schema description coverage is 0% across 5 parameters, so the description carries the full burden and mostly fails it. The example conveys that `track` takes a name like 'Pad', that `parameter` is a string like 'volume', and that `slot` addresses the clip, but `device` and `arrangement_clip` are never explained, nor is the track/device/parameter addressing hierarchy.

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

Purpose4/5

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

States a specific verb and resource: 'Remove a clip's envelope for one parameter, or every envelope,' which is the clear inverse of the sibling write_automation. It is unambiguous what the tool does, though it does not explicitly name or contrast itself against the automation siblings.

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

Usage Guidelines3/5

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

Provides one conditional usage rule (omitting `parameter` clears every envelope) and a scope note that it works on Session and arrangement clips. It does not say when to reach for this versus write_automation/get_automation, so the guidance is implied rather than explicit.

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

clip_actionB
Destructive

Run a clip function. Actions and args: crop (keeps the loop, or the marker range); duplicate_loop (doubles the loop and its content); duplicate_region {start, length, destination, pitch?, transpose?} (MIDI); quantize {grid "1/16", amount 0..1, pitch?} (MIDI notes, or audio warp markers; uses the song's swing); add_warp_marker {beat_time, sample_time? seconds}, move_warp_marker {beat_time, distance}, remove_warp_marker {beat_time}; audio_to_midi {type: melody|harmony|drums, name?}, drum_rack_from_audio {name?}, simpler_track_from_audio {name?} (these create a new track and return it).

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
slotNo
trackYes
actionYes
arrangement_clipNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and non-idempotent, so the safety profile is partly covered. The description adds real behavioral context beyond them: which actions create a new track and return it (audio_to_midi, drum_rack_from_audio, simpler_track_from_audio) and that crop keeps the loop/marker range. It still omits whether existing content is destroyed, and there are no rate-limit or auth notes.

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

Conciseness4/5

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

Front-loaded with the one-line purpose, then a dense but well-packed semicolon-separated action list. Nearly every clause carries information. Slightly cramped formatting, but nothing is wasted.

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

Completeness3/5

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

For a destructive multi-action dispatcher with 0% schema coverage and no output schema, the description covers actions and their nested args but not the required top-level parameters (track, action semantics) nor any return-value expectations beyond 'these create a new track and return it.' Adequate but incomplete.

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

Parameters3/5

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

Schema coverage is 0%, so the description must carry parameter meaning. It does document the args objects for several actions (duplicate_region, quantize, add_warp_marker, remove_warp_marker) fairly well. But it says nothing about the top-level params track, slot, and arrangement_clip, leaving a meaningful gap for a 5-param tool.

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

Purpose4/5

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

The framing sentence 'Run a clip function' is generic, but the action enumeration (crop, duplicate_loop, quantize, add_warp_marker, audio_to_midi, etc.) makes the tool's actual scope concrete: a dispatcher for clip-level edits. An agent can tell what it does. However, it never differentiates itself from siblings like transform_notes, edit_notes, or write_notes, which partly overlap with the quantize/MIDI actions.

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

Usage Guidelines2/5

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

No explicit when-to-use, when-not-to-use, or alternative guidance is given. The description never routes the agent toward clip_action versus transform_notes/edit_notes for note operations, nor states prerequisites (e.g., that slot or arrangement_clip must be set). Usage must be inferred entirely from the action names.

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

create_busA

Create a bus, Live's substitute for group tracks: a new audio track (monitoring "In", input "No Input") at the end of the set, with every source track's output routed into it.

Mix the bus like any track (set_mixer, add_device). name must be unique. Sources need audio output (a MIDI track needs an instrument). Reverting takes two undo steps. Example: create_bus("Drum Bus", ["Kick", "Snare", "Hats"], color="#FF8800").

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
colorNo
sourcesYes

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare a non-destructive, non-idempotent, closed-world write. The description goes well beyond that by disclosing monitoring/input settings ('In', 'No Input'), placement at the end of the set, the routing side effect, the uniqueness constraint, the audio-output prerequisite for sources, and that reverting requires two undo steps. This is rich behavioral context that annotations alone do not provide.

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

Conciseness4/5

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

The description front-loads the core definition of a bus, then layers constraints, routing guidance, and an example call. It is dense and every sentence carries useful information, though the long opening sentence with nested parentheticals could be split for easier parsing.

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

Completeness4/5

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

With no output schema, the description covers creation mechanics, routing, post-creation mixing, prerequisites, and undo behavior thoroughly for a write tool. It omits what the tool returns (e.g., the new track identifier) and the accepted color encoding, but those are secondary for correct invocation.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It explains that 'name' must be unique and that 'sources' are tracks whose output is routed into the bus (requiring audio output), and the example demonstrates 'color' with a hex string. It does not clarify that color accepts either an integer or a string, nor whether sources accept track names, indices, or both, but it covers most parameter semantics.

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

Purpose5/5

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

The description states a specific verb and resource ('Create a bus') and immediately clarifies that it creates a special audio track acting as Live's substitute for group tracks, with source outputs routed into it. This distinguishes it from sibling tools like create_track by describing the distinctive routing behavior. An agent can tell what the tool does without opening the schema.

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

Usage Guidelines4/5

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

It gives concrete usage context: mix the bus like any track with set_mixer or add_device, name must be unique, sources need audio output (MIDI tracks need an instrument), and reverting takes two undo steps. It does not explicitly state when to prefer this over create_track or duplicate_track, but the operational guidance is clear and actionable.

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

create_clipA
Destructive

Create a clip: MIDI in an empty Session slot (0-based scene index) or on the arrangement at a time; audio from file_path on audio tracks. Optionally fill it in the same call: notes (as write_notes) and/or pattern (drum steps, as write_drum_pattern).

length: MIDI only, beats or "N bars" (default 4 beats; a bare number is beats). at: beats, "bar.beat.sixteenth" ("9.1.1") or a locator name. MIDI ranges that overlap arrangement clips are refused (audio reports what it trimmed). color: index 0..69 or "#RRGGBB". Returns the new clip (as get_clip). Example: create_clip("Drums", slot=0, length="1 bar", pattern={"kick": "x---x---x---x---"}).

ParametersJSON Schema
NameRequiredDescriptionDefault
atNo
nameNo
slotNo
colorNo
notesNo
trackYes
lengthNo
patternNo
file_pathNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and non-idempotent, so the safety profile is covered. The description adds real behavioral context beyond that: overlapping MIDI ranges on the arrangement are refused, audio reports what it trimmed, and the call returns the new clip 'as get_clip'. It does not explain overwrite behavior for an occupied slot, which is the main remaining gap.

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

Conciseness4/5

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

Front-loaded with the core purpose, then a compact per-parameter block, closing with a concrete example. Dense but every line carries format or constraint information; the only minor cost is that the parameter notes read as a terse list rather than prose.

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

Completeness4/5

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

For a nine-parameter mutation tool with no output schema, the description supplies the return value ('as get_clip'), the units/formats for the ambiguous params, and the failure semantics for overlapping arrangement ranges. What remains thin is the interaction with an already-occupied slot and the audio-path prerequisites.

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

Parameters5/5

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

With 0% schema description coverage across 9 parameters, the description compensates thoroughly: slot is a 0-based scene index, at accepts beats, 'bar.beat.sixteenth' or a locator name, length is MIDI-only in beats or 'N bars' with a stated 4-beat default, color is an index 0..69 or '#RRGGBB', and pattern is drum steps. Only the trivial track and name params go unexplained.

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

Purpose5/5

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

Opens with a specific verb+resource ('Create a clip') and immediately enumerates the distinct creation modes: MIDI into a Session slot, MIDI at an arrangement time, or audio from file_path. An agent can distinguish this from siblings like duplicate_clip, write_notes, or create_scene without opening any schema.

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

Usage Guidelines4/5

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

States when each mode applies (slot vs at vs file_path, MIDI vs audio tracks) and names the equivalent lower-level calls for in-line filling ('as write_notes', 'as write_drum_pattern'). It lacks an explicit when-not / prerequisite rule, e.g. what to do if the target slot is already occupied, so it falls short of a 5.

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

create_locatorA

Add an arrangement locator (cue point) at time (beats or "bar.beat.sixteenth"), optionally named. The transport must be stopped. Live snaps locators to the 1/16 grid, and only places them within the song length. Locators are indexed in time order. Example: create_locator("17.1.1", "Chorus").

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
timeYes

TDQS

A4.1/5.0
Behavior4/5

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

With annotations already declaring the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), the description adds genuine behavioral detail beyond them: the transport must be stopped, Live snaps to the 1/16 grid, placement is bounded by song length, and locators are indexed in time order. It stops short of stating error behavior or the return value.

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

Conciseness4/5

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

Front-loads the action and target, then layers prerequisite, snapping behavior, and an example without padding. Slightly dense, but every sentence carries information an agent needs.

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

Completeness4/5

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

For a mutating tool with no output schema, the description covers the key operational facts: prerequisite state, grid snapping, song-length bound, and indexing. It omits what the call returns (e.g., a locator id) and failure modes, which are minor gaps here.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry the load, and it does: it explains `time` accepts beats or a 'bar.beat.sixteenth' string and that `name` is optional. The example (create_locator("17.1.1", "Chorus")) concretely demonstrates both parameters, though it doesn't spell out the plain-beats numeric format precisely.

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

Purpose5/5

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

States a specific verb ('Add') and resource ('arrangement locator (cue point)'), and the parenthetical clarifies the term. An agent can distinguish it from siblings like set_locator and delete_locator without opening a schema.

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

Usage Guidelines3/5

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

It states a concrete prerequisite ('The transport must be stopped') which shapes when the tool can be called, but never contrasts itself with the sibling set_locator/delete_locator or says when to prefer each. Usage context is implied rather than explicit.

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

create_releaseA
Destructive

Master and package a finished song: normalise a bounced master, encode, tag, embed artwork, write release.json.

Loudness goes to target_lufs (-14 for streaming) with true peak at most true_peak dBTP: linear gain when peaks allow, else a 4x-oversampled true-peak limiter. formats (default all): wav24, wav16 (triangular dither), flac (24-bit), mp3 (320 kbps CBR), aac (256 kbps .m4a). artwork: JPEG or PNG, embedded in FLAC/MP3/M4A. stems: "auto" (the bounce's other files) or paths, copied unprocessed to Stems/. Output: ~/Music/AbletonMCP/Releases/ - /, replacing same-named files. release.json holds tempo, key, loudness per file and sha256 checksums.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNo
albumNo
genreNo
stemsNo
titleYes
artistYes
sourceYes
artworkNo
formatsNo
true_peakNo
output_dirNo
target_lufsNo
track_numberNo

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the destructiveHint/readOnlyHint annotations, the description discloses the concrete destructive behavior ('replacing same-named files'), the exact loudness/limiting algorithm, per-format encoding, artwork embedding targets, stems handling, and the deterministic output path and release.json contents. This is rich behavioral context that materially informs invocation.

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

Conciseness4/5

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

The tool's purpose is front-loaded in the first clause, followed by dense, largely load-bearing technical detail. It is somewhat long, but given 13 parameters and no schema descriptions, most sentences earn their place.

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

Completeness4/5

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

For a 13-parameter mutation tool with no output schema, the description supplies the missing output contract (directory layout and release.json contents) and processing semantics. The main shortfall is that several metadata parameters are left undocumented, but overall it is sufficient for correct invocation.

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

Parameters4/5

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

With 0% schema description coverage the description must carry the load, and it does so well for the non-obvious parameters: target_lufs (with -14 streaming note), true_peak (dBTP), formats (default all, enumerated values), artwork (JPEG/PNG), and stems ('auto' vs paths). It omits explicit meaning for several metadata params (year, album, genre, track_number) and the source/output_dir params, so a few gaps remain.

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

Purpose5/5

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

The description opens with a specific verb+resource: 'Master and package a finished song.' It enumerates the concrete pipeline (normalise, encode, tag, embed artwork, write release.json) and clearly distinguishes this finishing step from the bounce it consumes, so an agent can tell it apart from siblings like bounce/export_audio.

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

Usage Guidelines3/5

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

Usage is only implied: the mention of 'a bounced master' and 'the bounce's other files' signals this runs after a bounce, but the description never states the prerequisite explicitly or names a when-not/alternative. The agent can infer the workflow position but receives no explicit routing guidance.

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

create_sceneA

Create a Session scene (a song section) at index (-1 = at the end), optionally named and coloured (Live colour index 0..69 or "#RRGGBB"). tempo (BPM) and time_signature ("3/4") make Live switch to them when the scene fires. Example: create_scene(name="Chorus", tempo=128).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
colorNo
indexNo
tempoNo
time_signatureNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare non-read-only, non-destructive, non-idempotent. The description adds genuine behavioral context beyond that: index -1 appends at the end and tempo/time_signature cause Live to switch to them when the scene fires. It does not mention whether inserting at index shifts existing scenes, which is a small gap.

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

Conciseness5/5

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

Tight and front-loaded: the core action leads, parameter semantics follow, and a single example call closes it. No sentence is padding.

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

Completeness4/5

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

For a mutation tool with no output schema, the description covers all parameters and the tempo/time-signature side effect. It omits prerequisites such as an open Set and the effect of index insertion on neighbouring scenes, but nothing critical to invoking it correctly is missing.

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

Parameters5/5

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

Schema description coverage is 0% and there are 5 params, so the description must carry the load – and it does. It explains index semantics (-1 = end), colour encoding (Live index 0..69 or '#RRGGBB'), tempo units (BPM), and time_signature format ('3/4'), plus a concrete example call.

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

Purpose5/5

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

States a specific verb and resource ('Create a Session scene') and clarifies the domain object via the parenthetical 'a song section'. An agent can distinguish it from set_scene, delete_scene, fire_scene and duplicate_scene at a glance.

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

Usage Guidelines3/5

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

The description implies creation for song arrangement but never states when to use this versus siblings like set_scene (modify existing), new_set, or duplicate_scene. No prerequisites (e.g. a Set must be open) are given, so usage is only implied.

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

create_trackA

Create a track: kind "midi", "audio" or "return", optionally named, coloured and with a first device.

index: position among regular tracks (-1 = end; returns always go last). color: Live colour index 0..69 or "#RRGGBB". device: any device by name, case-insensitive ("Operator", "eq eight", "DS Kick"); native devices are inserted directly, Max for Live and pack devices are loaded through the browser. Instruments and MIDI effects need a MIDI track. Returns the new track's ref, routing and arm state (MIDI tracks can come up armed). Example: create_track("midi", "Bass", device="Operator").

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYes
nameNo
colorNo
indexNo
deviceNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare non-read-only, non-destructive, non-idempotent, closed-world, but the description adds real behavioral context beyond them: native devices are inserted directly while Max for Live/pack devices load through the browser, and new MIDI tracks can come up armed. It also states the return payload (ref, routing, arm state), which matters since no output schema exists.

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

Conciseness4/5

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

Dense but front-loaded, with a worked example at the end. Every clause carries parameter or behavioral information; the single long paragraph is slightly heavy but not padded.

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

Completeness5/5

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

For a 5-param mutation tool with no output schema and 0% schema coverage, the description compensates fully: it documents all parameters, the device-loading path, the MIDI-track prerequisite, and the return fields.

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

Parameters5/5

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

Schema coverage is 0%, so the description carries the full burden and does: it defines kind values, index semantics (-1 = end, returns last), color format (0..69 or "#RRGGBB"), device name matching (case-insensitive, native vs browser-loaded), and name. This is more than the bare schema provides.

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

Purpose5/5

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

Opens with a specific verb+resource ('Create a track') and immediately enumerates the kind values, distinguishing it from create_bus/create_scene. An agent can tell exactly what this tool produces without opening the schema.

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

Usage Guidelines4/5

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

Provides concrete usage conditions: instruments and MIDI effects require a MIDI track, returns always go last, index=-1 means end, and devices can be inserted by name. It does not explicitly point to siblings (e.g. create_bus, duplicate_track) as alternatives, so it falls just short of a 5.

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

delete_clipA
Destructive

Delete a Session or arrangement clip. Destructive: confirm with the user before deleting their own material.

ParametersJSON Schema
NameRequiredDescriptionDefault
slotNo
trackYes
arrangement_clipNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, so the safety profile is covered. The description adds valuable behavioral context: it specifies that the tool deletes Session or arrangement clips and instructs the agent to confirm with the user before deleting their own material. It does not mention undo or whether deletion is reversible, but this is a strong addition over the annotations.

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

Conciseness5/5

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

Two short, front-loaded sentences with no wasted words. The purpose is stated first, followed by the destructive confirmation requirement.

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

Completeness3/5

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

The annotations cover destructiveness and no output schema exists, so return values need not be explained. However, for a tool with three parameters at 0% schema coverage and two deletion modes (Session vs arrangement), the description is too thin to fully guide correct invocation, especially regarding which parameters select which mode.

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

Parameters2/5

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

Schema description coverage is 0% for all three parameters (slot, track, arrangement_clip). The description mentions 'Session or arrangement clip,' which hints at two modes, but it does not explain what slot, track, or arrangement_clip mean or how they map to the modes. It fails to compensate for the undocumented schema.

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

Purpose5/5

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

The description states a specific verb (Delete) and resource (Session or arrangement clip), clearly distinguishing it from sibling deletion tools for scenes, tracks, notes, devices, and locators. An agent can identify exactly what this tool removes without opening the schema.

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

Usage Guidelines3/5

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

The description implies usage by saying it deletes a Session or arrangement clip, and it adds a caution about confirming with the user before deleting their own material. However, it does not name alternatives or state when-not to use this tool versus delete_scene, delete_track, or clear_arrangement.

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

delete_deviceA
Destructive

Delete a device (a rack with everything in it) from its track or chain; returns what remains.

Destructive: confirm with the user before deleting their own work (undo reverts it).

ParametersJSON Schema
NameRequiredDescriptionDefault
trackYes
deviceYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, but the description adds meaningful context beyond them: the deletion is cascading ('a rack with everything in it'), it is reversible via undo, and it returns what remains. That reverses the usual opacity of a destructive op and is genuinely useful for a mutation.

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

Conciseness4/5

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

Two tight sentences: the core action and scope come first, followed by the destructive caveat. No wasted words, though the destructive note could be folded more economically.

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

Completeness4/5

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

For a destructive tool with no output schema, the description covers what gets removed, its reversibility, and return behavior ('returns what remains'). The only missing piece is parameter format detail, which is the remaining incompleteness.

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

Parameters2/5

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

Schema description coverage is 0%, so both required parameters (track, device) carry no documented meaning. The description hints that track is the container and device the target, but never explains the integer|string id formats or that device may be an array, leaving a real gap it should have filled.

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

Purpose5/5

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

States a specific verb and resource ('Delete a device') and clarifies scope by defining a device as 'a rack with everything in it' and locating it 'from its track or chain'. This distinguishes it from delete_track, delete_clip, and delete_scene without the agent needing to inspect other schemas.

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

Usage Guidelines4/5

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

Gives clear when-to-use guidance by flagging it as destructive and instructing the agent to confirm with the user before deleting their own work, plus notes that undo reverts it. It stops short of explicitly naming sibling alternatives (e.g., device_action or undo) as routing options, so it is clear but not fully differentiating.

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

delete_locatorA
Destructive

Delete a locator, addressed by index (time order) or by name. The transport must be stopped; the playhead is put back afterwards.

ParametersJSON Schema
NameRequiredDescriptionDefault
locatorYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutating nature is covered. The description adds genuinely new behavioral context: the transport-stopped prerequisite and the playhead being restored afterwards, which are side effects not derivable from annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with the action, no filler; the addressing detail and precondition each earn their place.

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

Completeness4/5

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

With no output schema, the description is appropriately scoped: addressing semantics, precondition, and side effects are covered. It could note failure behavior (e.g., if the transport is running or the locator is not found), but for a one-param tool it is essentially complete.

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

Parameters4/5

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

Schema coverage is 0%, so the description carries the burden and does so well: it explains the lone param accepts either an index (interpreted in time order) or a name. This disambiguates the anyOf integer/string type that the schema leaves unexplained.

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

Purpose5/5

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

States a specific verb+resource ('Delete a locator') and clarifies the addressing modes, distinguishing it cleanly from siblings like create_locator and set_locator. An agent knows exactly what this does without opening the schema.

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

Usage Guidelines3/5

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

Provides a precondition ('The transport must be stopped'), which is implied usage guidance, but never names alternatives (e.g., set_locator vs delete, or undo) or states when deletion is preferable. Context is implied rather than explicit.

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

delete_notesA
Destructive

Delete notes from a MIDI clip by note_ids, pitches, pitch_min/pitch_max and/or a start/end time range (notes starting in [start, end)), or every note with all=True. Filters combine; at least one is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
allNo
endNo
slotNo
startNo
trackYes
pitchesNo
note_idsNo
pitch_maxNo
pitch_minNo
arrangement_clipNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and non-idempotency, so the safety profile is covered. The description meaningfully adds the half-open interval semantics ('notes starting in [start, end)'), the AND-combination of filters, and the required-filter constraint, which an agent needs to avoid over-deletion. It stops short of describing return/error behavior or idempotency quirks.

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

Conciseness4/5

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

Two sentences, front-loaded with the core action and its filter selectors, then the constraint. Dense and largely waste-free, though the mapping of the various selectors is packed into one long clause that borders on a run-on.

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

Completeness3/5

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

For a 10-parameter destructive mutation tool with no schema descriptions and no output schema, the clip-targeting parameters (track, slot, arrangement_clip) and the error/return behavior are left unexplained. What is present is accurate, but the definition does not fully equip an agent to call it on the correct clip.

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

Parameters3/5

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

With 0% schema description coverage the description must carry the full burden, and it does document the deletion-defining params (note_ids, pitches, pitch_min/max, start/end) plus the half-open start/end semantics. But it never mentions three clip-targeting parameters — the required 'track', 'slot', and 'arrangement_clip' — leaving the agent to guess which clip is operated on.

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

Purpose4/5

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

States a specific verb and resource ('Delete notes from a MIDI clip') and enumerates the selection mechanisms (note_ids, pitches, pitch range, time range, all=True), which clearly distinguishes it from the sibling delete_clip. It does not explicitly name the sibling it relates to (get_notes/write_notes/delete_clip), so it earns a 4 rather than a 5.

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

Usage Guidelines3/5

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

Provides the key operating constraint ('Filters combine; at least one is required'), which is genuine usage guidance for invocation. However, it offers no guidance on when to prefer this over sibling tools like edit_notes or delete_clip, nor any prerequisites beyond the filter requirement.

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

delete_sceneA
Destructive

Delete a scene (index or name) together with every clip in its row. Destructive: confirm with the user before deleting their material. A set keeps at least one scene.

ParametersJSON Schema
NameRequiredDescriptionDefault
sceneYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds non-obvious behavior: cascading deletion of all clips in the scene's row and the minimum-one-scene constraint, which the annotations do not convey.

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

Conciseness5/5

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

Three short sentences, front-loaded with the action and cascade behavior, followed by the destructive warning and the invariant. No wasted words.

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

Completeness4/5

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

No output schema is needed for a delete tool, and annotations cover the safety hints. The description supplies cascade scope, the confirmation requirement, and the one-scene invariant; only error/edge-case behavior on an invalid scene reference is unaddressed.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. Stating the scene may be given as 'index or name' explains the schema's anyOf (integer|string) meaningfully, though it doesn't say how names are resolved or what happens on ambiguity.

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

Purpose5/5

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

States a specific verb (Delete) and resource (a scene), and clarifies scope as 'together with every clip in its row,' which distinguishes it from siblings like delete_clip and delete_track. An agent can tell immediately what is removed.

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

Usage Guidelines4/5

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

Explicitly instructs confirmation before deleting user material and states the business constraint that a set must retain at least one scene. It doesn't name an alternative or an explicit when-not condition, but the context is clear enough to route correctly.

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

delete_trackA
Destructive

Delete a regular or return track with all its clips and devices. The master cannot be deleted.

Deleting a return also removes every track's send to it, and later returns move up a letter. Destructive: confirm with the user before deleting their own work (undo reverts it).

ParametersJSON Schema
NameRequiredDescriptionDefault
trackYes

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the destructiveHint annotation by disclosing the full blast radius (clips and devices are removed), the cascading side effect of deleting a return (sends to it are removed and later returns reletter), the master exclusion, and reversibility via undo. This is exactly the extra context annotations cannot carry.

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

Conciseness5/5

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

Front-loads the core action, then layers constraint, side effect, and caution in short sentences with zero filler. Every sentence adds distinct information.

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

Completeness4/5

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

For a one-parameter destructive tool with no output schema, the description covers destruction scope, cascade effects, limits, and reversibility well. The remaining gap is how to specify the target track, which belongs in the description given the empty schema coverage.

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

Parameters2/5

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

The single `track` parameter has 0% schema description coverage and the description does not compensate: it never says whether the value should be a track index, name, or position, nor how a 'return' is addressed. The integer|string anyOf is left entirely unexplained.

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

Purpose5/5

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

Names a specific verb and resource (delete_track), states the scope (regular or return track with all its clips and devices), and adds a hard constraint the agent must respect (master cannot be deleted). An agent can distinguish this from delete_clip, delete_scene, and delete_device without opening any schema.

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

Usage Guidelines4/5

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

Gives clear operational context: it is destructive, the user should be asked to confirm before deleting their own work, and undo reverts it. It does not name an explicit alternative path when the agent should not delete, but the caution guidance is concrete and actionable.

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

device_actionC
Destructive

Run a type-specific device function; args holds its named arguments.

Racks: insert_chain(index, name, note), add_macro, remove_macro, randomize_macros, store_variation, recall_variation(index), recall_last_variation, delete_variation(index). Drum Racks: copy_pad(source, destination), delete_chains(pad), to_midi_track(pad, name). Simpler: crop, reverse, warp_as(beats), warp_double, warp_half, replace_sample(file_path), guess_playback_length, insert_slice/remove_slice (time in frames or seconds), move_slice(time, to), clear_slices, reset_slices, to_drum_rack. Looper: record, overdub, play, stop, clear, undo, double_length, half_length, double_speed, half_speed, export_to_clip_slot(track, slot). Wavetable: get_modulation(target, source), set_modulation(target, source, value), add_parameter_to_modulation_matrix(parameter). Plug-ins: parameter_names(begin, end). A/B devices: save_ab_slot.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
trackYes
actionYes
deviceYes

TDQS

C2.8/5.0
Behavior3/5

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

Annotations declare destructiveHint=true and readOnlyHint=false, so the safety profile is known. The description adds that certain actions (e.g., delete_chains, remove_slice) may be destructive, but doesn't detail permissions, reversibility, or side effects beyond the action names.

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

Conciseness3/5

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

The description is a single long sentence followed by a dense list of actions. It is front-loaded with the core purpose but lacks formatting to separate device categories, making it somewhat hard to parse.

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

Completeness2/5

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

Given 4 parameters with 0% schema coverage, no output schema, and destructive annotations, the description is incomplete. It doesn't explain the format of args for each action, nor the return values or error handling, leaving significant gaps for correct invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the schema provides minimal meaning. The description explains that args holds named arguments for the action, but doesn't clarify the types or expectations for track, device, or action beyond their names. This is insufficient for a 4-parameter tool with zero schema coverage.

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

Purpose4/5

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

The description clearly states it runs type-specific device functions with args as named arguments. The enumerated action catalog shows the scope of operations, though it doesn't explicitly differentiate from siblings like set_device or clip_action.

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

Usage Guidelines2/5

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

It lists actions but provides no guidance on when to use device_action vs. alternatives like set_device, set_device_parameters, or clip_action. No prerequisites or context are given.

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

duplicate_clipA
Destructive

Copy (or move=True) a clip: Session -> Session slot, Session -> arrangement, or arrangement -> arrangement.

to_slot: empty Session slot (default: next empty slot below, same track). to_time: arrangement time in beats or "bar.beat.sixteenth" (arrangement sources default to right after themselves). to_track defaults to the same track. Clip envelopes travel with the copy. Occupied slots and overlapping arrangement ranges are refused. Example: duplicate_clip(track="Drums", slot=0, to_time="9.1.1").

ParametersJSON Schema
NameRequiredDescriptionDefault
moveNo
slotNo
trackYes
to_slotNo
to_timeNo
to_trackNo
arrangement_clipNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and idempotentHint=false, and the description confirms that behaviour with the specific consequences: move=True relocates rather than copies, clip envelopes travel with the copy, and occupied slots or overlapping arrangement ranges are refused. The refusal semantics and envelope propagation are real added context beyond the annotations.

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

Conciseness5/5

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

Front-loaded with the core action and route modes, then destinations/defaults, then constraints, then a concrete example. Every sentence adds information; no filler or restatement of the title.

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

Completeness4/5

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

For a destructive, 7-parameter mutation tool with no output schema and zero schema-level parameter docs, the description covers almost everything an agent needs to call it correctly. Only arrangement_clip and any return/confirmation behaviour are left unaddressed.

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

Parameters4/5

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

Schema description coverage is 0%, so the description carries the load and does well: it explains to_slot defaults, to_time accepting beats or "bar.beat.sixteenth" notation with its arrangement default, to_track defaulting to the same track, and move's copy-vs-move switch. The one gap is arrangement_clip, which is never mentioned.

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

Purpose5/5

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

States a specific verb+resource ('Copy ... a clip') and enumerates the exact source→destination route combinations it supports (Session→Session slot, Session→arrangement, arrangement→arrangement). This scope statement makes it clearly distinguishable from create_clip and delete_clip in the sibling list.

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

Usage Guidelines4/5

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

Gives concrete usage context: the move=True variant, the defaults for destination (next empty slot below, same track; right after itself for arrangement sources), and the refusal conditions for occupied slots and overlapping ranges. It stops short of naming an alternative tool (e.g. create_clip for a fresh empty clip).

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

duplicate_deviceA

Duplicate a device (racks with their contents) right after itself in its track or chain.

Live will not duplicate a track's instrument: use duplicate_track, or another Instrument Rack chain.

ParametersJSON Schema
NameRequiredDescriptionDefault
trackYes
deviceYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare write (readOnlyHint=false), non-destructive, non-idempotent behavior. The description adds useful behavioral detail: duplication is right after itself, racks include contents, and track instruments are not duplicated. No contradiction.

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

Conciseness5/5

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

Two tight sentences, front-loaded with the core action. No filler; every sentence adds purpose or routing information.

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

Completeness3/5

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

The description covers purpose, placement, and the key duplicate_track limitation, and annotations cover safety. However, with 0% schema parameter coverage and no output schema, the agent still lacks guidance on how to specify the track and device arguments.

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

Parameters2/5

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

Schema description coverage is 0% for two required parameters. The description names 'device' and 'track or chain' but does not explain accepted forms (integer/string/array) or how to identify track/device, so it fails to compensate for undocumented parameters.

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

Purpose5/5

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

States a specific verb ('Duplicate') and resource ('device', racks with contents), plus placement in track/chain. It explicitly distinguishes itself from duplicate_track for track instruments.

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

Usage Guidelines5/5

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

Gives an explicit alternative: use duplicate_track when trying to duplicate a track's instrument, or use another Instrument Rack chain. This is when-to-use/when-not guidance tied to a sibling.

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

duplicate_sceneA

Duplicate a scene (index or name) with its clips into a new scene right below it, and select it. Returns the new scene; later scene indices shift by one.

ParametersJSON Schema
NameRequiredDescriptionDefault
sceneYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly=false, destructive=false, idempotent=false). The description adds genuinely useful behavior beyond that: it returns the new scene, it selects the new scene, and — importantly — later scene indices shift by one, which is a non-obvious side effect an agent must account for.

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

Conciseness5/5

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

Two tight sentences, front-loaded with the action and scope, followed by the return/side-effect note. No filler.

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

Completeness5/5

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

For a one-parameter tool with no output schema, the description supplies the parameter form, the return value, and the index-shift side effect. Nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry the parameter burden. It does so for the single `scene` param by stating it accepts an index or a name, which the schema's bare anyOf integer/string does not convey in words.

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

Purpose5/5

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

Specific verb+resource with full scope: duplicates a scene including its clips, places it directly below, and selects it. This clearly distinguishes it from siblings like create_scene (which would not copy clips) and duplicate_clip/duplicate_track.

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

Usage Guidelines3/5

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

Implied usage is clear from the copy-and-place semantics, but the description never states when to prefer this over create_scene or fire_scene, and names no alternatives. Adequate context with no explicit routing guidance.

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

duplicate_trackA

Duplicate a regular track with its devices, clips and mixer settings; the copy goes right after it and is selected. Optionally name the copy. Live cannot duplicate return or master tracks.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
trackYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare the write profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), and the description adds valuable behavior beyond that: where the copy lands (right after the original), that it becomes selected, and the return/master track exclusion. It stops short of saying what happens on name collision or whether the original is untouched.

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

Conciseness5/5

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

Two short sentences, front-loaded with the action and scope, then the constraint. No filler; every clause carries information an agent can act on.

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

Completeness4/5

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

For a 2-parameter mutation with no output schema, the description covers scope, side effects (selected, adjacent placement), and the key restriction. It is only incomplete on the `track` identifier format, which matters given 0% schema coverage.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry the parameters. It covers naming ("Optionally name the copy") but leaves `track` ambiguous — the anyOf integer|string allows index or name and the description never says which form is accepted.

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

Purpose5/5

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

Specific verb+resource ("Duplicate a regular track") with explicit scope: devices, clips, and mixer settings are included in the copy. Naming "regular track" plus the note that return/master tracks cannot be duplicated distinguishes it clearly from siblings like duplicate_clip, duplicate_scene, and duplicate_device.

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

Usage Guidelines4/5

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

States a hard precondition (Live cannot duplicate return or master tracks), which prevents a whole class of failed calls, and describes the resulting placement/selection. It does not, however, explicitly route the agent between this and duplicate_scene/duplicate_clip for adjacent tasks.

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

edit_notesA
Idempotent

Change existing notes by note_id (from get_notes), keeping their ids.

Each edit: {"note_id": 12, ...} plus any of pitch, start, duration, velocity, probability, velocity_deviation, release_velocity, mute. Example: edit_notes(track="Keys", slot=0, edits=[{"note_id": 12, "velocity": 90, "pitch": "E3"}]). For relative changes on many notes use transform_notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
slotNo
editsYes
trackYes
arrangement_clipNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish readOnly=false, destructive=false, idempotent=true, so the safety profile is covered. The description adds a non-obvious behavioral fact beyond them: edits target notes by id and 'keep their ids,' which is exactly the identity-preservation detail that makes idempotency meaningful here.

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

Conciseness5/5

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

Front-loaded with the core action, then the edit shape, then a compact example, then the alternative tool. Every sentence carries information; no filler.

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

Completeness4/5

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

For a mutation tool with no output schema and informative annotations, the description covers what is editable, how to format edits, the required id source, and the sibling alternative. The only real omission is the meaning of slot/arrangement_clip, which an agent needs to target the right clip.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry the load. It does this excellently for edits (required note_id plus the full list of editable fields and a concrete example), but says nothing about the slot or arrangement_clip parameters, leaving half the interface undocumented.

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

Purpose5/5

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

States a specific verb+resource (change existing notes) with an explicit scoping key (note_id from get_notes) and pins down that ids are preserved. The agent can distinguish this from write_notes (creates) and transform_notes (relative/mass changes) without opening any schema.

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

Usage Guidelines4/5

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

Gives the source of the required identifier (from get_notes) and names an explicit alternative with its condition: 'For relative changes on many notes use transform_notes.' Clear routing guidance, though it doesn't state what happens if a note_id doesn't exist or when slot/arrangement_clip should be used.

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

export_audioA

[UI automation, EXPERIMENTAL] Render the arrangement from start to end (beats or "bar.beat.sixteenth") with Live's own offline File > Export Audio/Video, to path (".wav").

Sets the arrangement loop to the range (Live exports the loop brace) and restores it afterwards. The file format and rendered track follow the Export dialog's last settings. Never overwrites a file. Prefer bounce, which needs no UI permission. Needs macOS UI automation (see get_status).

ParametersJSON Schema
NameRequiredDescriptionDefault
endYes
pathYes
startYes

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing side effects and constraints: it temporarily sets the arrangement loop to the range and restores it afterwards, the format/render settings follow the Export dialog's last state, it never overwrites a file, and it requires macOS UI automation permission. These are exactly the behavioral facts an agent needs before invoking a UI-driven export.

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

Conciseness4/5

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

Purpose and scope are front-loaded in the first sentence, with constraints following. It is somewhat dense across several lines, but nearly every clause carries operative information rather than filler.

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

Completeness4/5

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

No output schema exists, yet the description never states what a successful call returns (e.g., the written file path or a confirmation), which matters given the 'never overwrites' behavior implies failure modes. Everything else needed to call the tool correctly — range semantics, permission requirement, alternative tool — is present.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and it largely does: it explains that `start`/`end` accept beats or "bar.beat.sixteenth" notation and that `path` is a ".wav" destination. It stops short of saying whether the path must be absolute or whether parent directories are created, so it is not fully compensating.

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

Purpose5/5

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

States a specific verb and resource ('Render the arrangement ... with Live's own offline File > Export Audio/Video, to `path`') and immediately differentiates itself from the sibling bounce tool. An agent can identify both the action and its mechanism without opening the schema.

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

Usage Guidelines5/5

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

Explicitly routes the agent: 'Prefer bounce, which needs no UI permission,' and states the prerequisite 'Needs macOS UI automation (see get_status).' Both the when-to-use and the when-to-prefer-an-alternative conditions are given.

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

fire_clipA

Launch the clip in a Session slot (starts at the next launch-quantization boundary; Live starts the transport).

Check the result with get_clip (state) or get_meters; stop with stop_clip or transport.

ParametersJSON Schema
NameRequiredDescriptionDefault
slotYes
trackYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare the mutation profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false), so the bar is lower. The description adds genuinely new behavior: firing is deferred to the next launch-quantization boundary and Live starts the transport, which the agent could not infer from the annotations.

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

Conciseness5/5

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

Two tight sentences, front-loaded with the core action and followed by the verification/stop paths. Every clause carries information; there is no filler.

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

Completeness4/5

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

For a two-parameter side-effecting tool with no output schema, the description covers timing behavior and the natural follow-up tools. The only real gap is parameter meaning (track/slot addressing), which it leaves entirely to the undocumented schema.

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

Parameters2/5

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

Schema description coverage is 0% for both required parameters. The description mentions 'Session slot' and 'track' only in passing and never explains slot indexing, the int-or-string track reference (name vs. index), or valid ranges. With zero schema documentation, the description fails to compensate.

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

Purpose5/5

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

States a specific verb and resource: 'Launch the clip in a Session slot'. The Session-slot scoping distinguishes it from the arrangement/transport siblings and from fire_scene, and the quantization note clarifies the launch semantics rather than restating the name.

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

Usage Guidelines4/5

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

Explicitly routes follow-up actions to concrete alternatives: check results with get_clip or get_meters, stop with stop_clip or transport. It gives clear context for the surrounding workflow, though it does not state when not to use fire_clip (e.g. vs. fire_scene or clip_action).

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

fire_sceneA

Launch a scene (index or name): every clip in its row starts at the launch quantization, and its tempo or time signature applies. Starts the transport. force_legato launches clips immediately in legato. Audition with get_meters; stop with transport("stop_all_clips") or transport("stop").

ParametersJSON Schema
NameRequiredDescriptionDefault
sceneYes
force_legatoNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only declare the safety envelope (readOnly=false, idempotent=false, destructive=false). The description adds genuine behavioral context beyond them: it starts the transport, applies the scene's tempo/time signature, respects launch quantization, and describes force_legato's immediate legato behavior — all non-obvious side effects not derivable from structured fields.

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

Conciseness4/5

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

Front-loads the core action and consequence, then tacks on the force_legato nuance and the stop/audition routing. Every sentence carries information, though packing the audition/stop guidance into one clause is slightly dense.

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

Completeness4/5

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

With no output schema and only safety annotations, the description supplies the missing behavioral context (transport start, tempo application, legato, stop path). It does not describe any return value or error conditions, but for a fire-and-act tool whose result is observed via get_meters, coverage is adequate.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry parameter meaning, and it does: 'scene (index or name)' clarifies the anyOf integer/string choice, and 'force_legato launches clips immediately in legato' explains the boolean's effect. Both parameters are covered, though the quantized (non-legato) default behavior could be spelled out slightly more explicitly.

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

Purpose5/5

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

States a specific verb and resource ('Launch a scene (index or name)') and immediately explains the effect on the row's clips, distinguishing it from fire_clip (single clip) and create_scene/set_scene (scene management). An agent can tell what this does and how it differs from siblings without opening the schema.

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

Usage Guidelines4/5

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

Gives clear operational context: audition with get_meters, and stop via transport("stop_all_clips") or transport("stop"). It names concrete alternatives for the stop/audition workflows but does not explicitly contrast fire_scene against fire_clip, so the when-not-to-use boundary is implicit rather than stated.

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

get_arrangementA
Read-onlyIdempotent

The arrangement timeline: each track's clips (index for arrangement_clip refs, name, start and end in beats and bars, length, looping, type, colour, envelopes), plus locators, loop region and song length.

start/end keep only clips overlapping that range (beats or "bar.beat.sixteenth"); tracks limits the tracks. At most limit clips are listed. Example: get_arrangement(start="9.1.1", end="17.1.1").

ParametersJSON Schema
NameRequiredDescriptionDefault
endNo
limitNo
startNo
tracksNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds useful behavioral context beyond that: the filter semantics (overlap-based range), the accepted time formats, and the cap ('At most `limit` clips are listed') which signals possible truncation of results.

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

Conciseness4/5

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

Front-loads the return shape, then the filter semantics, then a concrete example, with no filler sentences. The long parenthetical enumerating clip fields is dense but every item earns its place for an inspection tool.

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

Completeness4/5

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

Since there is no output schema, the description correctly documents the return structure, and it covers all four input parameters plus an example. It omits the default limit value (200, visible only in the schema) and any pagination note, leaving minor gaps for a read tool.

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

Parameters4/5

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

With 0% schema description coverage, the description must carry all parameter meaning and largely does: start/end are explained with accepted formats (beats or "bar.beat.sixteenth"), and limit is described behaviorally. The 'tracks limits the tracks' clause is thin — it doesn't clarify whether entries are indices or names — so it isn't fully compensating.

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

Purpose5/5

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

States a specific verb and resource ('The arrangement timeline') and enumerates what it returns (tracks, clips with fields, locators, loop region, song length). This clearly distinguishes it from siblings like get_song_overview or get_clip without needing to open their schemas.

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

Usage Guidelines4/5

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

Gives concrete usage context: start/end keep only clips overlapping the range, tracks limits the tracks, and a worked example (start="9.1.1", end="17.1.1"). It does not name alternatives or state when NOT to use it, so it stops short of a 5.

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

get_automationA
Read-onlyIdempotent

List the parameters a clip automates; with parameter, also its breakpoints and samples values across the clip loop, in display units (dB, Hz, pan ...). Works for Session clips and for the envelopes arrangement clips carry. Example: get_automation("Pad", slot=0, parameter="volume").

ParametersJSON Schema
NameRequiredDescriptionDefault
slotNo
trackYes
deviceNo
samplesNo
parameterNo
arrangement_clipNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so safety is covered. The description adds real context beyond that: values are returned in display units (dB, Hz, pan), the sample points span the clip loop, and it works for both Session and arrangement envelopes.

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

Conciseness5/5

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

Three compact sentences plus a concrete example, front-loaded with the primary behavior and with the display-unit and scope details appended. Every sentence adds information and nothing is redundant.

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

Completeness3/5

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

There is no output schema, and while the description sketches the returned content (parameter list, breakpoints, samples), the shape of the return and the roles of several inputs remain thin for a 6-parameter, 0%-coverage tool. Adequate but with clear gaps.

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

Parameters3/5

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

Schema coverage is 0%, so the description must carry the load. It explains `parameter` well (listing vs breakpoints) and references `samples`, and the example demonstrates track-as-string and slot usage. But `device` and `arrangement_clip` are undocumented in both schema and description, leaving known gaps.

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

Purpose4/5

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

The description states a specific verb and resource: list the parameters a clip automates, and with `parameter` also its breakpoints and samples. It clearly marks this as a read/inspection tool and covers both Session clips and arrangement-clip envelopes. It does not explicitly distinguish itself from write_automation/clear_automation, so it stops short of a 5.

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

Usage Guidelines3/5

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

Usage is implied by the two modes it describes (omit `parameter` to list parameters, supply it to get breakpoints/samples), and the example shows them. However, it never names alternative siblings or states when NOT to use this tool versus get_clip or write_automation, leaving routing to inference.

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

get_bounce_statusA
Idempotent

Progress of the current bounce; when recording ends, deliver the files and return their paths.

wait: seconds (0-50) to long-poll until the bounce finishes. While running: phase, progress (0-1) and eta_seconds. When done: folder, manifest (bounce.json) and files [{stem, path, duration_seconds, peak_dbfs, silent}]; delivery trims each take sample-exactly to the range and removes the temporary "[bounce]" tracks. failed carries error; cancelled after cancel_bounce. Next: analyze_audio(path).

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNo

TDQS

A4.5/5.0
Behavior4/5

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

The annotations alone (readOnlyHint=false, idempotentHint=true, destructiveHint=false) leave the non-read-only claim unexplained; the description supplies the reason by disclosing that completion triggers file delivery, that takes are trimmed sample-exactly to the range, and that temporary '[bounce]' tracks are removed. That is meaningful side-effect disclosure beyond the structured fields, though auth/rate-limit or error-recovery behavior is not covered.

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

Conciseness4/5

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

Front-loaded with the core purpose, then structured by state (running / done / failed / cancelled). It is telegraphic and dense, but each fragment carries distinct information — no filler sentences.

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

Completeness5/5

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

There is no output schema, so the description must describe returns, and it does so exhaustively: phase, progress, eta_seconds while running; folder, manifest and per-file {stem, path, duration_seconds, peak_dbfs, silent} when done; plus the failed and cancelled cases. Nothing needed to interpret a response is missing.

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

Parameters5/5

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

Schema coverage is 0%, so the description carries the parameter alone, and it does: 'wait: seconds (0-50) to long-poll until the bounce finishes' gives units, valid range and observable effect. Only the default value (0) is left to the schema.

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

Purpose5/5

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

The first sentence names a specific resource and state ('Progress of the current bounce') and the terminal behavior (deliver files, return paths), which cleanly separates it from siblings like get_status, bounce and cancel_bounce. An agent knows exactly what question this tool answers without opening the schema.

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

Usage Guidelines4/5

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

It tells the agent to pass wait to long-poll until the bounce finishes, notes that 'cancelled' appears after cancel_bounce, and hands off explicitly with 'Next: analyze_audio(path)'. It stops short of stating when NOT to call it (e.g., when no bounce is in flight) or contrasting it directly with get_status.

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

get_clipB
Read-onlyIdempotent

Every property of one clip: name, colour, length (beats and bars), loop and markers, signature, launch mode and quantization, legato, mute, velocity amount, groove, grid, playing state and automated parameters.

Audio clips add gain_db, pitch, warping, warp mode, file and warp markers. Arrangement clips give start and end in beats and bars. notes=True adds up to limit notes (or use get_notes with filters).

ParametersJSON Schema
NameRequiredDescriptionDefault
slotNo
limitNo
notesNo
trackYes
arrangement_clipNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: return content varies by clip type (audio adds gain_db, pitch, warping; arrangement clips give start/end), and notes retrieval is capped by `limit`. It does not mention authorization or failure modes, but for a read tool this is solid.

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

Conciseness4/5

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

Front-loaded with the scope, then the conditional return content, then the notes option. The property enumeration is long but each clause adds information rather than restating the name; minimal waste.

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

Completeness3/5

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

There is no output schema, so the description rightly explains return values, which it does thoroughly and per clip type. But for a 5-parameter tool with 0% schema coverage, the omission of how slot vs arrangement_clip vs track select the clip is a meaningful completeness gap affecting correct invocation.

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

Parameters2/5

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

Schema description coverage is 0% across 5 parameters, so the description must carry the load, and it only clarifies notes and limit ('up to `limit` notes'). The two address-selecting parameters, slot and arrangement_clip, plus track, are never explained, so an agent cannot tell from the description how to identify the target clip or whether slot and arrangement_clip are mutually exclusive.

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

Purpose4/5

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

States a specific verb and resource (retrieve every property of one clip) and enumerates what that includes, which makes it clearly distinct from get_notes and get_track. It does not explicitly say what it is not, so it stops short of full sibling differentiation.

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

Usage Guidelines3/5

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

The only routing guidance is a narrow note about notes: 'notes=True adds up to `limit` notes (or use get_notes with filters)', which usefully points at an alternative. However, there is no guidance on when to use this versus get_track, set_clip, or clip_action, and none on the addressing modes.

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

get_deviceB
Read-onlyIdempotent

One device in detail: parameters (index, value, display, range, items), type-specific properties with their options (Simpler mode, Wavetable oscillators, Compressor sidechain routing, plug-in presets, ...), rack chains with mixer, pads, macros, variations and chain selector, and Simpler's sample (file, markers, warping, slices).

device: index, name or path ("Drum Rack/C1/Simpler", "1/0/0"). parameters=False skips the parameter list; detail=True adds parameter metadata, hidden macros, full option lists and sample detail.

ParametersJSON Schema
NameRequiredDescriptionDefault
trackYes
detailNo
deviceYes
parametersNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false. The description adds meaningful behavioral context by describing the return payload and how detail and parameters alter what is returned, though it does not discuss errors, permissions, or limits.

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

Conciseness4/5

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

The purpose is front-loaded, followed by return-content details and then parameter notes. The long enumeration is dense but appropriate for a complex device-inspection tool, with little wasted text.

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

Completeness3/5

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

With no output schema, the description usefully enumerates the return data, which is a strong plus. However, 0% schema coverage and no explanation of the required track parameter leave the definition under-specified for a complex device retrieval tool.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It explains device path formats and the detail/parameters toggles, but it omits the required track parameter entirely, leaving a significant gap.

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

Purpose4/5

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

"One device in detail" names a specific verb and resource, and the enumerated return components make the scope concrete. It does not explicitly name the sibling get_devices to contrast list-versus-detail, but the singular scope implies the distinction.

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

Usage Guidelines2/5

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

The description never states when to choose this tool over get_devices, set_device, or device_action. The only guidance is output-toggle behavior (parameters=False, detail=True), which is not tool-selection guidance.

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

get_devicesA
Read-onlyIdempotent

Device tree of a track: every device with path ("1/0/0"), name_path ("Drum Rack/Kick/Simpler"), class, type and on/off; racks with chains (recursively), visible macros and variation count; Drum Racks with their non-empty pads (note, note name, pad and chain names). Pass a path as device to other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
trackYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds real behavioral context beyond structured fields: recursive chain traversal, visible macros, variation counts, and that only non-empty Drum Rack pads are listed.

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

Conciseness4/5

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

Front-loaded with the core purpose followed by progressively finer detail. One long sentence, but each clause (paths, macros, pads) carries distinct information with no filler.

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

Completeness4/5

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

With no output schema, the description correctly carries the return-value burden and does so thoroughly for a read tool. The only real omission is explaining the `track` input, which is a minor gap given the otherwise complete return documentation.

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

Parameters2/5

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

Schema coverage is 0% and the lone parameter `track` (int or string) is never explained in the description – the agent cannot tell whether it expects an index, name, or path. The path format '1/0/0' describes output, not the `track` input, so it does not compensate for the gap.

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

Purpose4/5

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

The description names a specific resource ('device tree of a track') and enumerates exactly what is returned, so the agent knows this differs from a single-device read like get_device. It does not explicitly name the closest sibling for differentiation, but the scope is unambiguous.

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

Usage Guidelines3/5

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

'Pass a path as `device` to other tools' implies a workflow (this tool feeds others) but stops short of stating when to use it versus get_device or other device siblings. Usage is implied rather than spelled out.

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

get_groovesA
Read-onlyIdempotent

The groove pool: each groove's index, name, base grid and amounts (percent), plus the global groove amount (0..1.31). Assign a groove to a clip with set_clip(groove=...).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new behavioral context: the shape of the returned data and the non-obvious global groove amount range (0..1.31), which an agent could not infer from the empty schema.

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

Conciseness5/5

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

Two sentences, zero filler. The return payload is front-loaded and the follow-up action is placed second, which is the correct order for an agent deciding whether to read.

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

Completeness5/5

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

With no output schema and no input parameters, the description carries the full burden of describing the response, and it does so: field list, units (percent), and the exceptional global amount range. Nothing needed to call this correctly is missing.

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

Parameters4/5

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

Zero parameters, so the baseline is 4. The only parameter-like information given is for a different tool (set_clip's groove argument), which is still helpful for chaining but does not apply here.

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

Purpose4/5

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

The description names the resource ('the groove pool') and enumerates exactly what it yields — index, name, base grid, amounts, global amount — so an agent can distinguish it from set_groove and set_clip. The verb is implicit (a noun phrase rather than 'returns/lists'), which keeps it short of a 5, but the resource and scope are unambiguous.

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

Usage Guidelines3/5

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

It routes the agent forward by naming set_clip(groove=...) as the way to assign a groove, which is useful context for what to do after reading. However, it never states when to call this getter versus set_groove, nor any precondition, so usage is only implied.

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

get_metersA
Read-onlyIdempotent

Momentary peak levels of every track, return and master (or only tracks), read from Live's meters.

Output levels are post-fader dBFS: peak_db (max of left/right, held 1 s), left_db, right_db, plus Live's raw 0..1 values (dBFS = 76 * raw - 70, so "-inf" means below -70 dBFS and 6.0 the meter top). over_0db flags a peak at or above 0 dBFS. Audio tracks add input levels; MIDI tracks show MIDI activity (0..1). Meters only move while the transport plays.

ParametersJSON Schema
NameRequiredDescriptionDefault
tracksNo

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already establish read-only/idempotent/non-destructive, but the description goes well beyond: it documents the full return shape (peak_db, left_db, right_db, raw 0..1), the dBFS conversion formula, the over_0db threshold, audio-vs-MIDI differences, and the critical behavioral trait that meters only advance during playback.

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

Conciseness4/5

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

Dense but front-loaded: the core purpose leads, then output semantics, then the key constraint. Every sentence carries technical value, though the parenthetical formula is slightly crammed into the flow.

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

Completeness5/5

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

With no output schema and only 0%-covered parameters, the description fully carries the return-value burden, explaining units, units conversion, flags, and per-track-type behavior. Nothing an agent needs to call it correctly is missing.

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

Parameters4/5

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

The lone `tracks` parameter is undocumented in the schema (0% coverage), and the description compensates by clarifying it narrows output to 'only `tracks`' (excluding returns/master). It does not specify accepted id/name formats, but it adds real meaning beyond the schema.

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

Purpose5/5

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

States a specific verb (read) and resource (Live's meters) with explicit scope: 'Momentary peak levels of every track, return and master'. An agent can distinguish this from siblings like get_mixer or analyze_audio without opening a schema.

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

Usage Guidelines3/5

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

Implied usage as a monitoring/read tool, and it provides the key caveat that 'Meters only move while the transport plays'. However, it never states when to prefer this over alternatives (e.g. get_mixer) or any exclusions, so guidance is only inferable.

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

get_mixerA
Read-onlyIdempotent

Mixer state of every regular, return and master track (or only tracks) in one call: volume_db, pan (-1..1 plus display), sends in dB keyed by return letter, mute, solo, arm, active (track activator), crossfade, pan_mode and split pans; the master adds crossfader and cue_volume_db. "-inf" means silence.

ParametersJSON Schema
NameRequiredDescriptionDefault
tracksNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful return-shape context (specific fields returned, '-inf' meaning silence) but doesn't describe pagination, scope limits, or error behavior.

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

Conciseness4/5

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

Front-loads the core scope (mixer state of all tracks in one call) and then enumerates returned fields. Dense but focused. Slightly overloaded by the field list and minor formatting oddities, but every sentence carries information.

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

Completeness4/5

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

No output schema exists, so the description must describe the return value, which it does thoroughly (fields, units, -inf semantics, master-specific additions). Missing only details on the tracks filter semantics and any edge cases for an agent calling it with a subset.

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

Parameters3/5

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

Schema description coverage is 0% for the single tracks parameter, so the description must compensate. It mentions 'only tracks' implying a subset filter, but doesn't clarify accepted identifier formats (integer vs string) or scope. Adds marginal value over the bare schema.

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

Purpose4/5

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

States a specific verb+resource: reading mixer state for regular, return, and master tracks. Clearly distinguishable from set_mixer (its write counterpart) and get_meters. Not explicitly differentiated from siblings in text, but the mixer-state reading purpose is unambiguous.

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

Usage Guidelines3/5

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

Implies a use case (retrieve all mixer state in one call) and notes the optional tracks filter. No explicit when-to-use vs alternatives guidance, e.g. no routing to get_meters for metering or to get_track for per-track detail. Adequate but with clear gaps.

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

get_notesA
Read-onlyIdempotent

Notes of a MIDI clip with note_id, pitch, name (C3 = 60), start, duration, velocity, probability, velocity_deviation, release_velocity and mute, sorted by time.

Optional filters (combined): pitches (list), pitch_min/pitch_max (numbers or names), start/end (notes starting in [start, end), clip beats or "bar.beat.sixteenth"), note_ids. Use the ids with edit_notes, delete_notes or transform_notes. Example: get_notes(track="Bass", slot=0, start="2.1.1", end="3.1.1").

ParametersJSON Schema
NameRequiredDescriptionDefault
endNo
slotNo
limitNo
startNo
trackYes
pitchesNo
note_idsNo
pitch_maxNo
pitch_minNo
arrangement_clipNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds genuine behavior: results are sorted by time, filters are combined (ANDed), and start/end is a half-open interval [start, end) over note start times. It omits the limit/pagination behavior despite a limit parameter defaulting to 200.

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

Conciseness4/5

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

Front-loaded with the return shape, then filters, then the downstream-tool routing and an example. Dense and mostly waste-free, though the field enumeration is long and the 'Optional filters (combined)' line reads slightly run-on.

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

Completeness4/5

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

With no output schema, the field list is essential and present; time formats and filter semantics are covered. Gaps remain for limit-based pagination and the slot/arrangement_clip addressing needed to actually target a clip.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry the load and largely does: it explains pitches, pitch_min/pitch_max (numbers or names), start/end, and note_ids, and gives the "bar.beat.sixteenth" vs clip-beats format with a worked example. It leaves limit, slot, and arrangement_clip unexplained.

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

Purpose5/5

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

States a specific verb+resource ('Notes of a MIDI clip') and enumerates exactly what a note record contains (note_id, pitch, start, duration, velocity, etc.) plus the sort order. An agent can distinguish this read tool from write_notes/edit_notes/delete_notes without opening a schema.

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

Usage Guidelines4/5

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

Explicitly routes the returned ids to edit_notes, delete_notes or transform_notes, and gives a concrete call example. It does not state when to prefer this over get_clip or how it relates to arrangement clips, so it stops short of full when/when-not coverage.

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

get_routing_optionsA
Read-onlyIdempotent

Current input and output routing of a track, with the available types and channels.

Channels belong to the current type: after choosing another type with set_track, read again to see its channels. Return, group and master tracks have output routing only.

ParametersJSON Schema
NameRequiredDescriptionDefault
trackYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds real behavioral context beyond them: state-dependent output where the channel list reflects the currently selected type, a required re-read after set_track, and a scope limit for return/group/master tracks.

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

Conciseness4/5

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

Front-loaded with the purpose in the first sentence, followed by two short supporting sentences. No filler, though the awkward line breaks add no value.

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

Completeness4/5

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

With no output schema, the description usefully previews what is returned (types and channels) and flags the scope exception for return/group/master tracks. The remaining gap is the undocumented track parameter format.

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

Parameters2/5

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

Schema description coverage is 0% and the single 'track' parameter accepts either an integer or string, yet the description never clarifies whether it is an index, name, or path. With low coverage the description needed to compensate and does not.

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

Purpose4/5

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

States a specific verb and resource: reading the current input/output routing of a track along with the available types and channels. This is clearly distinct from the broader get_track resource, though no sibling is named to reinforce the differentiation.

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

Usage Guidelines4/5

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

Provides a concrete workflow rule: the channels belong to the current type, and after switching type with set_track the agent must re-invoke this tool. It also gives a caveat that return, group and master tracks expose output routing only. No explicit when-not or alternative-search guidance, but the usage context is clear.

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

get_song_overviewA
Read-onlyIdempotent

One-call map of the project: tempo, meter, key and scale, swing, loop, song length; every track (index, name, kind, colour, mute/solo/arm, devices, non-empty Session slots with name and length, arrangement clip count and extent); returns and master; scenes (name, tempo, signature, empty); locators; the selection. Times come as beats plus "bar.beat.sixteenth".

detail=True adds every set_song setting, mixer levels (dB), pan and sends, device classes and on/off, clip colours and arrangement clip lists. Use get_track or get_notes for more.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, non-open-world behavior, so the safety profile is covered. The description still adds useful behavioral context: the exact return surface, the fact that times are returned as beats plus 'bar.beat.sixteenth', and how detail=True expands the payload. It does not mention auth, caching, or cost, but the annotation bar is low here.

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

Conciseness4/5

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

Front-loaded with the one-line purpose ('One-call map of the project') followed by dense but factual enumerations. The long parentheticals are information-rich rather than padding, though the sheer volume of listed fields is on the verbose side. No sentence is wasted.

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

Completeness4/5

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

With no output schema, the description correctly takes on the burden of describing return contents, so an agent knows what it will receive. Annotations cover safety and the alternates are named. Only the absence of any note on payload size/cost for detail=True keeps it from being fully complete.

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

Parameters5/5

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

Schema description coverage is 0% for the single 'detail' parameter, so the description must carry the meaning — and it does: detail=True explicitly enables every set_song setting, mixer levels (dB), pan/sends, device classes and on/off, clip colours, and arrangement clip lists, versus the lean default. This fully compensates for the empty schema.

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

Purpose5/5

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

States a specific verb+resource (a one-call overview/map of the project) and enumerates exactly what it covers: tempo, meter, key/scale, tracks, returns/master, scenes, locators, selection. It also distinguishes itself from siblings by naming get_track and get_notes as the deeper alternatives. An agent can place it precisely without opening any schema.

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

Usage Guidelines4/5

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

The closing 'Use get_track or get_notes for more' explicitly routes the agent to alternatives when per-track or note-level detail is needed. There is no explicit when-not statement or prerequisite, but the intended usage (broad snapshot first, drill down later) is clear.

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

get_statusA
Read-onlyIdempotent

Start here. Connection, Live and Remote Script versions, the open set (name, path), transport (playing, position, tempo, loop), any open Live dialog with its message, active background jobs, and capabilities: ffmpeg (needed by analyze_audio and create_release) and macOS UI automation (needed by save_set, new_set and export_audio; fix says how to enable it).

When Live is unreachable it still answers, with connected: false and how to fix it. If dialog is set, Live is waiting for an answer: respond_to_dialog.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnly/idempotent/non-destructive annotations, it discloses a non-obvious behavioral trait: the tool still answers when Live is unreachable, returning connected: false plus a fix hint. It also explains the dialog-pending state and how capabilities gate other tools, which is exactly the kind of context annotations cannot carry.

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

Conciseness4/5

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

The opening 'Start here.' is well front-loaded, and the remaining sentence is information-dense with no filler. It is a single very long enumeration clause that could be broken up for scanability, but every item earns its place.

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

Completeness5/5

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

For a status tool with full annotation coverage and no output schema, the description covers the payload fields, the degraded-mode behavior, and the follow-up action, so an agent has everything it needs to call it and interpret the result.

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

Parameters4/5

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

The tool takes zero parameters, so by the rubric the baseline is 4. There is nothing for the description to clarify, and the schema is trivially complete.

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

Purpose5/5

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

The description identifies this as the diagnostic entry point ('Start here') and enumerates exactly what the status report contains: connection, versions, open set, transport state, dialog, jobs, and capabilities. An agent can distinguish it from every sibling (which are all mutation/query tools) without opening the schema.

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

Usage Guidelines4/5

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

It gives a strong positive trigger ('Start here') and explicitly routes to respond_to_dialog when the dialog field is set, plus names which capabilities gate analyze_audio/create_release/save_set etc. It does not state when this tool is not appropriate (e.g., polling vs. event-driven use), so it stops just short of the top band.

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

get_trackA
Read-onlyIdempotent

Read one track: kind, colour, mute/solo/arm, monitoring, group membership, freeze state, input and output routing, mixer (volume dB, pan, sends in dB by return letter), top-level devices (index, name, class, on), non-empty Session slots, arrangement clip count and extent, and take lanes.

detail=True adds everything else: every slot and arrangement clip, full mixer, meters and flags. track: index, name, "return:A" or "master".

ParametersJSON Schema
NameRequiredDescriptionDefault
trackYes
detailNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety behavior is covered. The description adds useful behavioral detail about what is returned and how detail=True expands the result to every slot, arrangement clip, full mixer, meters, and flags.

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

Conciseness4/5

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

The description is dense and front-loaded, with the core read behavior first and detail-mode behavior second. The final track-format line is slightly orphaned but still useful, and there is no filler.

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

Completeness4/5

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

With no output schema and zero schema parameter descriptions, the definition adequately explains the returned track contents, the detail flag, and accepted track identifiers. It omits error behavior and exact response shape, but for a read-only inspection tool it is largely complete.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must carry all parameter meaning. It does: track accepts an index, name, "return:A", or "master", and detail=True is explicitly defined as expanding the response to include everything else.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Read one track'. It then enumerates the exact content returned (mixer, routing, devices, session slots, arrangement, take lanes), which makes it clearly distinct from sibling tools like get_mixer, get_devices, or get_song_overview.

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

Usage Guidelines3/5

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

The description implies when to use the tool by defining it as a single-track read and explains how the detail flag changes scope. However, it does not explicitly compare against alternatives such as get_mixer, get_devices, or get_song_overview, so routing between siblings remains inferred.

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

load_from_browserA
Destructive

Load a browser item onto a track, chosen by exactly one of uri or path (from search_browser or browse) or query (the best loadable match).

Targets: by default devices and presets go on the track (an instrument, instrument preset or drum kit replaces the track's instrument; a sample on a MIDI track becomes a Simpler). position: device index to insert at. drum_pad: a note ("C1", 36) or pad name on the track's Drum Rack. slot: Session scene index for a sample on an audio track (default: the first empty slot). Clips (.alc) load as a new track. Returns the new or replaced devices, the pad or slot, and any created tracks.

ParametersJSON Schema
NameRequiredDescriptionDefault
uriNo
pathNo
slotNo
queryNo
trackYes
drum_padNo
positionNo

TDQS

A4.6/5.0
Behavior5/5

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

With annotations covering the safety profile (destructive=true, idempotent=false), the description adds substantial behavior: an instrument/preset/drum kit replaces the track's instrument, a sample on a MIDI track becomes a Simpler, clips load as a new track, and the default slot is the first empty slot. It discloses exactly what gets mutated, which is what an agent needs for a destructive tool.

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

Conciseness4/5

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

Front-loads the core action and packs target-specific semantics into a tight block with no filler. Slightly hurt by mid-sentence line breaks that make the 'Targets' paragraph denser to parse than necessary.

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

Completeness5/5

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

For a 7-parameter tool with no output schema, it covers the selector inputs, the target rules, edge cases (clips create tracks), defaults, and even the return shape. Nothing material an agent needs to call it correctly is missing.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the full burden, and it largely does: position (device insert index), drum_pad (note 'C1'/36 or pad name), slot (Session scene index, default first empty), and the uri/path/query disjunction are all clarified beyond the bare types. Only 'track' is left to inference, keeping it just below full compensation.

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

Purpose5/5

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

States a specific verb (Load) and resource (browser item onto a track) and names the sibling tools (search_browser, browse) that produce the identifier. An agent can distinguish it from add_device/add_* siblings without opening any schema.

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

Usage Guidelines4/5

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

Explicitly requires exactly one of uri/path/query and points to search_browser/browse as the source for identifiers, giving clear workflow context. It stops short of contrasting directly with add_device (the nearest sibling for placing devices), so it is clear but not fully alternative-routing.

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

lom_callA
Destructive

Call a function of the object at path with positional args ({"path": "..."} refers to an object).

Example: lom_call("live_set", "create_scene", [-1]). Returns the result, with a path for any object returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
pathYes
methodYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is covered. The description adds useful return behavior ("Returns the result, with a path for any object returned"), but says nothing about the destructive potential or that method names must be valid Live Object Model methods.

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

Conciseness4/5

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

Front-loaded with the core action, followed by one tight example and a return-value note. No filler sentences; every line earns its place.

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

Completeness3/5

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

No output schema exists, and the description does provide a minimal return contract (result plus path for returned objects). For a generic object-method dispatcher with a 0%-coverage schema, more would help – e.g. how `path` strings are formed or what happens on an invalid method – but the essentials to make a call are present.

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

Parameters4/5

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

With 0% schema coverage, the description must carry the load, and it does: it explains that `path` refers to an object, that `args` are positional, and the example demonstrates all three parameters including an empty-arg and negative-number case. `method` is only shown by example rather than defined, hence not a 5.

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

Purpose4/5

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

States a specific verb (call) and resource (a function of the object at `path`), and the example disambiguates the argument order concretely. However it does not distinguish itself from the close siblings lom_get and lom_describe, which an agent would need to pick between.

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

Usage Guidelines3/5

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

Usage is implied by the worked example (lom_call("live_set", "create_scene", [-1])), so an agent can infer the calling convention. But there is no explicit when-to-use guidance relative to lom_get/lom_describe, nor any note that this is the mutation-capable path of the trio.

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

lom_describeB
Read-onlyIdempotent

List the properties (with whether each is writable) and functions available at path, with Live's docs.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNolive_set

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral content by specifying that the result includes writability flags and Live's documentation, but it omits path validity handling, output shape, or any caveats about querying invalid paths.

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

Conciseness5/5

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

A single, front-loaded sentence that conveys the core action, the target, and the notable extras. There is no filler or repetition.

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

Completeness3/5

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

For an introspection tool with no output schema, the description is moderately complete because it sketches what is returned. However, the missing path syntax and failure behavior create meaningful gaps for an agent that needs to call it correctly without a schema description.

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

Parameters2/5

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

There is one optional string parameter with 0% schema description coverage, so the description must compensate. It only mentions `path` without explaining syntax (e.g., 'live_set tracks 0'), valid values, or what the default 'live_set' represents, leaving the parameter underspecified.

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

Purpose4/5

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

States a specific verb (List) and resource (properties and functions available at `path`) with the added detail that writability and Live's docs are included. This clearly distinguishes it from generic value getters, though it does not explicitly name sibling tools like lom_get or lom_call for contrast.

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

Usage Guidelines2/5

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

No guidance about when to use this tool versus lom_get, lom_call, or others. It does not mention prerequisites, exclusions, or the consequences of choosing this introspection call over retrieving a value directly.

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

lom_getA
Read-onlyIdempotent

Read an object of Live's object model by path, with all property values or only properties.

Paths use Max for Live style: "live_set tracks 0 mixer_device volume", "live_set view selected_track", "live_app view". Lists are summarised as counts and names. Use the curated tools first; this reaches anything they do not cover.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
propertiesNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare the safe, idempotent, read-only profile, and the description adds real value on top: the path dialect (Max for Live style) with three concrete examples and the output shape for lists (counts and names). It does not say what happens on an invalid or nonexistent path, which is the main remaining gap for a path-driven reader.

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

Conciseness4/5

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

Front-loaded with the action and resource, then syntax, then routing advice, then output shape. No filler sentences, though the guidance and path material are packed into one block rather than visually separated.

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

Completeness4/5

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

With no output schema, the description does the right thing by describing the return form for objects and lists. It stops short of error/failure behavior and depth semantics for nested paths, which matters for a generic object-model reader.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry the load, and it does: the `path` parameter's syntax and semantics are given with worked examples, and `properties` is explained as an optional projection ('all property values or only `properties`'). It could be tighter on whether subproperty indexing is supported, but the core usage is conveyed.

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

Purpose5/5

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

Specific verb (Read) plus resource (an object of Live's object model) and scope (by path, with full properties or a subset). It is clearly distinguishable from lom_set, lom_call, and lom_describe, and it explicitly positions itself against the curated tools.

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

Usage Guidelines4/5

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

"Use the curated tools first; this reaches anything they do not cover" is an explicit when-not rule and tells the agent this is the catch-all fallback. The alternatives are described only as a category rather than named, so an agent still has to infer which sibling to prefer for a given case.

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

lom_setB
Destructive

Set a writable property of the object at path. Pass {"path": "..."} as value to refer to an object.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
valueYes
propertyYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, covering the safety profile. The description adds that the target property must be writable and that value can be a reference object using {"path": "..."}, which is useful context but does not describe side effects, persistence, or undo behavior.

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

Conciseness5/5

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

Two concise sentences with the core action front-loaded and no filler. The second sentence conveys an important special case efficiently.

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

Completeness2/5

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

For a generic LOM setter in a large sibling toolset, the description lacks guidance on choosing it over specific setters and does not mention how to discover valid paths or properties (e.g., via lom_describe). Annotations cover safety, but parameter coverage and routing context remain incomplete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for all three parameters. It names path, property, and value, and explains one special value format, but does not clarify path syntax, property naming conventions, or expected value types, leaving substantial gaps.

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

Purpose4/5

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

The description states a specific verb (Set) and resource (a writable property of the object at path), distinguishing it from lom_get and lom_call. It does not explicitly differentiate from specific setters like set_track or set_scene, but the core action is clear.

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

Usage Guidelines2/5

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

No guidance is given on when to use lom_set versus alternatives such as set_song, set_track, or lom_call. The only extra sentence concerns value syntax, not tool selection or prerequisites.

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

move_deviceA

Move a device within its chain, to another track, or into a rack chain.

to_track: destination track (default: the same track). to_position: index in the destination (omitted or -1 = end). to_chain: a chain path in the destination track ("Drum Rack/C1", "Audio Effect Rack/0", "Instrument Rack/new"). Live picks the nearest valid position (MIDI effects stay before the instrument); instruments and MIDI effects cannot go onto audio tracks.

ParametersJSON Schema
NameRequiredDescriptionDefault
trackYes
deviceYes
to_chainNo
to_trackNo
to_positionNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations only declare the generic mutation profile (readOnly=false, idempotent=false, destructive=false, closed world). The description adds real behavioral detail beyond that: Live auto-corrects to the nearest valid position, MIDI effects are kept ahead of the instrument, and instruments/MIDI effects cannot be placed on audio tracks. It does not say what the move returns or what happens if the target is invalid.

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

Conciseness4/5

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

Front-loads the one-line purpose, then breaks the optional parameters into labeled clauses, which is easy to scan. The final constraint sentence crams three separate rules together, adding mild density but no real waste.

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

Completeness4/5

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

For a 5-parameter mutation tool with no output schema and no schema-level parameter docs, the description supplies the placement semantics, defaults, and validity constraints an agent needs to call it correctly. The remaining gap is the identity/format of the required track and device arguments.

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

Parameters4/5

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

With schema description coverage at 0%, the description carries the burden and does so for three of five parameters: it defines to_track, to_position (omitted or -1 = end) and to_chain (with concrete chain-path examples). The two required parameters, track and device, are left unexplained, including the fact that they accept either an index or a name, so the coverage is good but incomplete.

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

Purpose4/5

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

States a specific verb and resource ("Move a device") plus the three positional scopes it can act on: within its chain, to another track, or into a rack chain. That distinguishes it from siblings like duplicate_device and add_device, though it never names an alternative explicitly.

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

Usage Guidelines3/5

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

Gives operational context (defaults, index behavior, where Live will place the device) but never states when to prefer this over duplicate_device, device_action, or delete_device, nor any precondition such as requiring the source device to exist. Usage is implied rather than routed.

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

music_theoryA
Read-onlyIdempotent

Music theory without touching Live (C3 = 60). operation: scale: key ("A", "F# dorian") + scale (any Live scale name, "minor", "blues"...) -> notes, pitches from octave. chord: chord symbol ("Am7", "F#m7b5", "C7sus4", "Cadd9", "C/E"), or a numeral ("V7") with key; inversion, voicing (close, open, drop2, drop3, spread), octave -> pitches. progression: key ("C", "A minor") + numerals ("ii7-V7-Imaj7", "i-bVI-bIII-bVII", "V7/V") or chord symbols; beats_per_chord, voice_leading -> chords plus "notes" ready for write_notes. notes: note names or numbers -> MIDI number, names, frequency. list: available scales, chords, voicings.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNo
chordNo
notesNo
scaleNo
octaveNo
octavesNo
voicingNoclose
inversionNo
operationYes
progressionNo
voice_leadingNo
beats_per_chordNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare this is a read-only, idempotent, non-destructive, closed-world computation. The description adds two traits annotations cannot express: it never touches the Live set ('without touching Live') and it fixes the MIDI octave convention (C3 = 60), which materially affects numerical results. It says nothing about error handling for invalid chord/scale names, keeping it below a 5.

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

Conciseness5/5

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

Purpose and the octave convention are front-loaded, then one compact clause per operation. Every phrase earns its place, including the illustrative literals that double as format documentation. No filler or repetition.

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

Completeness4/5

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

For a 12-parameter, multi-operation tool with no output schema and no schema descriptions, the description covers the operation matrix and sketched return shapes ('-> pitches', '-> MIDI number, names, frequency') well. Defaults (octave=3, octaves=1, voicing='close') and failure behavior for bad input names are left to the schema and inferred, so it is not fully self-contained.

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

Parameters4/5

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

Schema description coverage is 0% across 12 parameters, so the description must carry the load, and it largely does: it gives accepted forms for key ('A', 'F# dorian'), chord ('Am7', 'C/E', 'V7'), voicing values (close, open, drop2, drop3, spread), and the roles of inversion, octave, beats_per_chord and voice_leading. Gaps remain: the plural 'octaves' parameter and integer keys are never explained.

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

Purpose5/5

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

The description names a concrete resource (music theory utilities) and immediately enumerates the five operations with what each computes, including concrete input/output examples. The phrase 'without touching Live' cleanly separates it from the DAW-mutating siblings (write_notes, set_clip, etc.). An agent can tell what this tool does and what it does not.

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

Usage Guidelines4/5

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

Usage is conveyed per operation: use 'scale' with key+scale, 'chord' with a symbol or numeral, 'progression' to get chords and notes 'ready for write_notes', 'notes' to convert names/numbers, 'list' to discover valid scale/chord/voicing names. The mention of write_notes establishes the downstream relationship. There is no explicit when-not-to-use or named alternative, so it stops short of a 5.

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

new_setA
Destructive

[UI automation] Start a new empty Live Set (File > New Live Set), replacing the current one.

Unsaved changes are refused unless discard_unsaved=True (then Live's save prompt is answered "Don't Save"). Needs macOS UI automation: get_status shows whether it is available and how to enable it. Destructive with discard_unsaved: confirm with the user first.

ParametersJSON Schema
NameRequiredDescriptionDefault
discard_unsavedNo

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the destructiveHint annotation: it discloses that unsaved changes are refused by default, that discard_unsaved=True answers the save prompt with 'Don't Save' (data loss), the UI-automation dependency, and a confirm-with-user instruction. This is exactly the extra behavioral context a destructive tool needs.

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

Conciseness4/5

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

Front-loads the '[UI automation]' marker and the core behavior, then adds constraints. Mostly tight, though the parenthetical menu path and save-prompt detail add some density, still all earning their place.

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

Completeness5/5

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

For a destructive, environment-dependent mutation, the description covers the dependency check, the data-loss semantics, and the user-confirmation requirement. No output schema is needed for an action of this kind.

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

Parameters4/5

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

Schema coverage is 0% and the single parameter has no schema description, so the description must compensate. It explains that discard_unsaved=True causes the save prompt to be answered 'Don't Save' (i.e., unsaved work is lost) and that the default refuses unsaved changes, which is more than the bare boolean schema provides.

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

Purpose5/5

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

States a specific verb and resource ('Start a new empty Live Set'), names the menu path (File > New Live Set), and describes the effect ('replacing the current one'). This clearly distinguishes it from siblings open_set and save_set.

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

Usage Guidelines4/5

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

Explains the prerequisite (macOS UI automation must be available and get_status shows whether/how to enable it) and the destructive-confirmation requirement. It does not explicitly contrast with open_set/save_set, but the context is clear enough for correct selection.

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

open_setA
Destructive

Open a Live Set (.als) in the running Live, replacing the current set. No UI permission needed.

If the current set has unsaved changes Live asks to save them: with discard_unsaved=False (default) nothing is discarded, the prompt stays open and the call fails with what to do; discard_unsaved=True answers "Don't Save". Destructive with discard_unsaved: confirm with the user first. Waits until the set has loaded and returns it; then call get_song_overview.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
discard_unsavedNo

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the destructiveHint annotation by explaining exactly when destruction occurs (only with discard_unsaved=True), the save-prompt failure mode when discard_unsaved=False, and that the call blocks until the set has loaded. This is the kind of behavioral depth annotations alone cannot convey.

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

Conciseness4/5

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

Front-loads purpose, then layers behavioral detail; every sentence adds actionable information. The middle sentence is somewhat dense but not wasteful, and the closing follow-up step is well placed.

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

Completeness5/5

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

For a destructive mutation tool with no output schema, it covers the critical gaps: permission needs, failure mode, destructive branch, blocking semantics, and the recommended next call. Nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the parameter meaning, and it does for discard_unsaved by spelling out both the default (False) and True behaviors and the destructive consequence. The path parameter is left implicit, but its meaning is self-evident from the .als context.

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

Purpose5/5

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

States a specific verb and resource ('Open a Live Set (.als)') and the scope consequence ('replacing the current set'), which cleanly distinguishes it from siblings like new_set and save_set. An agent can identify the operation without opening the schema.

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

Usage Guidelines4/5

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

Gives clear usage context: 'No UI permission needed' and the follow-up action 'then call get_song_overview'. It also prescribes confirming with the user before destructive discard. It stops short of explicitly naming alternatives (e.g., new_set for a fresh set), so it is strong but not exhaustive.

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

redoA

Redo steps actions previously undone with undo (1..100). Returns how many were redone plus can_undo and can_redo. Any new change clears the redo history.

ParametersJSON Schema
NameRequiredDescriptionDefault
stepsNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations cover the safety profile (non-read-only, non-idempotent, non-destructive), and the description adds real behavioral value beyond them: the return shape (count redone plus can_undo/can_redo) and the stateful rule that 'any new change clears the redo history'. It omits error/permission behavior, keeping it from a 5.

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

Conciseness5/5

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

Two tight sentences, zero waste, with the core action front-loaded before the return-value and history-reset details. Every clause earns its place.

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

Completeness4/5

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

For a single-optional-param mutation tool with no output schema, the description supplies the return contract, the range, and the stateful caveat, so it is nearly self-sufficient. Minor gaps remain around error cases and default behavior.

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

Parameters4/5

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

Schema coverage is 0% (the `steps` param has only a title and default 1), so the description must compensate, and it does: it defines steps as the count of previously-undone actions and gives the valid range 1..100. It does not explain out-of-range or interaction with the default, keeping it below a 5.

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

Purpose5/5

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

States a specific verb (redo) and resource (steps actions), scopes it to actions 'previously undone with undo', and thereby distinguishes itself from its sibling `undo`. An agent can tell exactly what this does without opening the schema.

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

Usage Guidelines4/5

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

The description anchors usage to the `undo` sibling ('actions previously undone with undo') and gives an implicit when-to-use cue via redo-history semantics. It stops short of explicitly stating when NOT to use it or naming `undo` as the alternative in a routing sense, so it is clear context without exclusions.

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

reload_remote_scriptA

Developer tool: hot-reload the Remote Script's code inside Live without restarting it.

full=True also reloads the script's shell module. A module that fails to import is reported and the previous code keeps running.

ParametersJSON Schema
NameRequiredDescriptionDefault
fullNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false. The description adds useful context beyond that: it explains the full flag's effect, the failure reporting behavior, and that previous code keeps running on import failure.

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

Conciseness5/5

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

Two short paragraphs, front-loaded with the core action and followed by the parameter detail and failure semantics. Every sentence adds distinct information with no waste.

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

Completeness4/5

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

For a single-parameter developer tool with no output schema, the description covers purpose, parameter meaning, and failure behavior. It does not describe any success return value, but that is minor given the tool's nature.

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

Parameters4/5

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

Schema description coverage is 0% and the only parameter is 'full', but the description explains what full=True does (reloads the shell module), compensating for the missing schema description. It does not explain default behavior when full is omitted, but the implication is clear.

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

Purpose5/5

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

States a specific verb (hot-reload) and resource (the Remote Script's code inside Live) and frames it as a developer tool. No sibling tool in the list does anything similar, so it is clearly distinguishable.

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

Usage Guidelines3/5

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

The phrase 'Developer tool' implies a development-time context, but there is no explicit when-to-use, when-not-to-use, or named alternative. Usage is only implied.

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

respond_to_dialogA
Destructive

Press a button on the dialog Live is showing (get_status reports its message and button count).

button: an index (0 = first button), or a name where Live's layout is known: "ok" on one-button dialogs; "save", "dont_save" or "cancel" on Live's save-changes prompt. Destructive: "dont_save" discards unsaved work, so confirm with the user first.

ParametersJSON Schema
NameRequiredDescriptionDefault
buttonYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations flag destructiveHint=true generically; the description goes further and names exactly which option is destructive ('dont_save' discards unsaved work) and prescribes confirming with the user. This is meaningful added context beyond the structured safety profile.

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

Conciseness5/5

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

Two short paragraphs, front-loaded with the action, then the parameter explanation and the one warning that matters. No filler sentences.

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

Completeness4/5

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

For a single-parameter tool with annotations and no output schema, the description covers action, parameter values, and destructiveness. It stops short of noting behavior when no dialog is open or how an invalid index/name is handled, but those are minor omissions.

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

Parameters5/5

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

Schema coverage is 0%, so the description carries the full burden, and it delivers: index semantics (0 = first button) plus the exact string names valid on known layouts ('ok', 'save', 'dont_save', 'cancel'). This translates the anyOf integer|string schema into actionable values.

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

Purpose5/5

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

States a specific verb and resource ('Press a button on the dialog Live is showing') and scopes it to the currently-open dialog, tying directly to the get_status sibling that reports it. An agent can distinguish this from all other session tools without opening the schema.

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

Usage Guidelines4/5

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

Implies the correct sequence by referencing get_status as the source of the dialog's message and button count, and gives explicit caution ('confirm with the user first') before the destructive 'dont_save' path. It does not state what to do when no dialog is present, but the when-to-use condition is clear.

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

save_setA
Destructive

[UI automation] Save the current Live Set; with path, save it as a new file ("~/Music/My Song.als").

Without path the set must already have a file. Save-as never overwrites an existing file; Live may put the set in a new " Project" folder. Verified through Live's file path or the file's modification time. Needs macOS UI automation (see get_status).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses that save-as never overwrites an existing file (important nuance against destructiveHint=true), that Live may create a new "<name> Project" folder, that the result is verified via file path or modification time, and that macOS UI automation is required. These are exactly the side effects an agent needs before calling a mutating tool.

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

Conciseness4/5

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

Front-loads the core action and keeps the mode distinction and caveats tight. The verification sentence is slightly meta for a tool description but is short and does convey how success is confirmed.

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

Completeness5/5

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

With no output schema and a single optional parameter, the description covers everything needed: preconditions, path semantics with an example, non-overwrite behavior, folder side effect, and the platform requirement. Nothing essential is missing.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the `path` parameter — and it does: it explains the save-as semantics, gives a concrete example ("~/Music/My Song.als"), and states the failure condition when omitted. Only the accepted format details (absolute vs. tilde paths, extensions) are left implicit.

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

Purpose5/5

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

States a specific verb and resource (save the current Live Set) and immediately distinguishes two modes: plain save vs. save-as when `path` is supplied. An agent can tell this apart from siblings like new_set and open_set without opening any schema.

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

Usage Guidelines4/5

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

Gives a clear precondition for the no-argument case ("the set must already have a file") and explains when `path` triggers save-as. It does not explicitly name alternatives such as open_set or new_set, so the routing guidance is implied rather than complete.

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

search_browserA
Read-onlyIdempotent

Search Live's browser by name: devices, presets, drum kits, samples, clips, plug-ins, Max for Live devices and packs. Every word must appear in the name (or the path). Ranked results give name, path, uri, category, kind (device, preset, rack_preset, sample, clip, max_device, plugin, folder), is_loadable and is_device.

category: "all" or instruments, audio_effects, midi_effects, sounds, drums, samples, clips, plugins, max_for_live, packs, user_library, current_project, user_folders. The index builds in the background ("truncated" until complete) and follows newly installed packs; refresh=True forces a rescan. Load a result with load_from_browser(track, uri=...).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
refreshNo
categoryNoall

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds real behavioral context beyond them: the index builds in the background and reports 'truncated' until complete, it auto-follows newly installed packs, and refresh forces a rescan. It stops short of describing pagination or ordering behavior for the ranked results.

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

Conciseness5/5

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

Purpose is front-loaded in the first sentence, and the following sentences each add distinct information (matching rule, result fields, category values, index lifecycle, loading follow-up). No filler or restated title.

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

Completeness4/5

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

With no output schema, the description proactively lists returned fields (name, path, uri, category, kind, is_loadable, is_device) and the 'truncated' signal, which is what an agent needs to interpret results. Minor omission is any note on ordering/ranking or result-count behavior.

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

Parameters4/5

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

Schema description coverage is 0%, so the description carries the load and does so well: it defines query matching semantics ('every word must appear in the name (or the path)'), enumerates all valid category values, and explains refresh. Only `limit` is left undescribed, which is a minor gap given its obvious meaning and default.

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

Purpose5/5

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

States a specific verb+resource ('Search Live's browser by name') and enumerates the searchable entity types, which is enough to separate it from siblings like `browse`, `load_from_browser`, and `get_devices`. An agent can identify the tool without opening the schema.

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

Usage Guidelines4/5

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

Gives a clear search-then-act pattern by naming load_from_browser(track, uri=...) as the follow-up, and explains the refresh=True case for forcing a rescan. It does not, however, distinguish this tool from the sibling `browse`, which is the most likely source of mis-selection.

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

selectA
Idempotent

Select in Live's UI so the user sees what you are working on: a track, a scene, a clip slot of track (shows its clip in the Detail view), or a device of track (index, name or rack path); and show a view: "Session", "Arrangement", "Detail", "Clip", "Devices" or "Browser". Pass slot or scene, not both. With no arguments, returns the current selection and focused view.

ParametersJSON Schema
NameRequiredDescriptionDefault
slotNo
viewNo
sceneNo
trackNo
deviceNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations declare the safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false), and the description still adds real context: the effect is user-visible ('so the user sees what you are working on') and the no-arg path is a read of the current selection/view. It does not discuss persistence or interaction with an open set, which keeps it below 5.

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

Conciseness4/5

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

Front-loaded with the verb and purpose, and every sentence carries information. The first sentence is dense with nested parentheses and semicolons, which slightly hurts scanability.

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

Completeness5/5

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

With no output schema, five parameters at 0% schema coverage, and only safety annotations, the description supplies the selectable targets, the constraint between slot and scene, the view enum, and the no-arg return behavior. Nothing essential for a correct call is missing.

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

Parameters4/5

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

Schema description coverage is 0%, so the description carries the load and mostly succeeds: it defines slot as a clip slot of `track`, device as index/name/rack path (explaining the array form), and lists the allowed view strings. It does not explain acceptable forms of `scene` or `track` beyond inference from context, leaving a small gap.

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

Purpose4/5

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

Names a specific verb (Select) and enumerates the exact resources: a track, scene, clip slot, device, or a view. An agent immediately knows this drives Live's UI focus. It does not, however, explicitly contrast itself with siblings like set_track or get_status, so it stops short of a 5.

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

Usage Guidelines4/5

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

Gives a concrete usage constraint ('Pass slot or scene, not both') and documents the zero-argument behavior (returns current selection and focused view). It lacks explicit when-not-to-use guidance or naming of alternative tools, so it is clear but not complete.

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

set_chainA
Idempotent

Change a rack chain: name, colour, mute, solo, volume_db ("-inf" allowed), pan (-1..1 or "25L"), and for Drum Rack chains in_note (the pad that plays it, as a note name or number: this moves the chain to another pad), out_note and choke_group (0 = none, 1..16).

device: the rack (index, name or path). chain: index, name, drum note ("C1") or "return:0" for a return chain. Example: set_chain("Drums", "Drum Rack", "C1", volume_db=-3, choke_group=1).

ParametersJSON Schema
NameRequiredDescriptionDefault
panNo
muteNo
nameNo
soloNo
chainYes
colorNo
trackYes
deviceYes
in_noteNo
out_noteNo
volume_dbNo
choke_groupNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true, destructiveHint=false and readOnlyHint=false, so the mutation/safety profile is covered. The description adds genuine behavioral context beyond that: setting in_note 'moves the chain to another pad', and choke_group 0 disables choking. It still omits permission requirements or what happens to unspecified fields.

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

Conciseness4/5

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

Front-loads the mutable attributes, then explains the device/chain addressing, then closes with a concrete example. Dense but each clause carries parameter meaning; a little tight to read but nothing is padding.

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

Completeness4/5

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

For a 12-param mutation with no output schema and no param descriptions in the schema, the description supplies addressing rules, allowed value formats, and an example, which is enough to call it correctly. Only the track/color value formats remain gaps.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the load, and it does for most of the 12 params: volume_db accepts "-inf", pan accepts -1..1 or "25L", choke_group is 0..16, in_note moves the chain, and device/chain formats are given (index, name, path, "return:0"). It leaves track format and color format undocumented, so it falls short of fully compensating.

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

Purpose4/5

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

States a specific verb (change) and resource (rack chain) and enumerates the chain attributes that can be altered, so the agent knows exactly what is mutated. It does not name any sibling (e.g. set_device, set_device_parameters) to differentiate scope, but 'rack chain' is distinctive enough to place it apart from the generic set_* tools.

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

Usage Guidelines3/5

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

The worked example set_chain("Drums", "Drum Rack", "C1", volume_db=-3, choke_group=1) shows how to invoke it, which implies usage. However there is no explicit when-to-use/when-not guidance and no mention of alternatives like set_device when the target is not a chain, so usage is only implied.

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

set_clipA
Idempotent

Set clip properties; only the ones you pass change. Returns the clip as get_clip.

Times are clip beats or "bar.beat.sixteenth" (1.1.1 = clip start; seconds for unwarped audio). signature "3/4". launch_mode: trigger, gate, toggle, repeat. launch_quantization: global, none, "1 bar", "1/4", ... grid: "1/16", ... groove: groove pool name or index. Audio only: gain_db (-inf..+24), pitch_coarse (-48..48 semitones), pitch_fine (-50..49 cents), warping, warp_mode (beats, tones, texture, repitch, complex, complex_pro), ram_mode. Example: set_clip(track="Keys", slot=0, loop_end="3.1.1", launch_quantization="1 bar").

ParametersJSON Schema
NameRequiredDescriptionDefault
gridNo
nameNo
slotNo
colorNo
mutedNo
trackYes
grooveNo
legatoNo
gain_dbNo
loopingNo
warpingNo
loop_endNo
ram_modeNo
signatureNo
warp_modeNo
end_markerNo
loop_startNo
pitch_fineNo
launch_modeNo
grid_tripletNo
pitch_coarseNo
start_markerNo
velocity_amountNo
arrangement_clipNo
launch_quantizationNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly=false, idempotent=true, destructive=false, so the safety profile is covered. The description adds genuine value beyond that: patch semantics ('only the ones you pass change') and the return contract ('Returns the clip as get_clip'), plus audio-only scoping for several fields. It stops short of noting auth requirements or what happens on partially valid input.

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

Conciseness4/5

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

Front-loads the key semantics (patch behavior, return shape) before the dense parameter reference and ends with a concrete example. Given 25 parameters, the telegram-style format is efficient and every clause carries information, though the run-on single block is slightly hard to parse.

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

Completeness4/5

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

For a 25-parameter mutation tool with no output schema and no schema descriptions, the description covers patch semantics, return shape, time grammar, and the most error-prone enums/ranges. The remaining undocumented parameters and the absence of any note on failure behavior keep it from fully complete.

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

Parameters4/5

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

With 0% schema coverage across 25 parameters, the description carries the full load and delivers a lot: time format ('bar.beat.sixteenth', seconds for unwarped audio), signature format, launch_mode enums, launch_quantization values, grid values, groove resolution, gain_db and pitch ranges, and warp_mode enums. It leaves a substantial tail undocumented (name, color, muted, legato, looping, start_marker, end_marker, grid_triplet, velocity_amount, arrangement_clip), keeping it off a 5.

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

Purpose4/5

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

States a specific verb and resource ('Set clip properties') and clarifies patch semantics ('only the ones you pass change'). It links itself to a sibling by stating 'Returns the clip as get_clip', so an agent can distinguish this mutation from the read path, though it doesn't explicitly contrast with set_track 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.

Usage Guidelines3/5

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

'only the ones you pass change' tells the agent this is a partial-update tool, implying usage context. However there is no explicit when-to-use-vs-alternatives guidance (e.g., set_clip vs create_clip vs set_track) and no stated 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_deviceA
Idempotent

Change a device: enabled (on/off), name, collapsed, compare_b (A/B compare slot B) and the type-specific properties get_device lists.

properties: {name: value}; option properties take an option name or index ("playback_mode": "one_shot", "voice_mode": "Mono", "selected_preset_index": "Init"); routing properties take display names ("input_routing_type": "Kick" for a Compressor sidechain). "sample." sets Simpler's sample ("sample.warping": true, "sample.warp_mode": "complex"); "view." sets view properties. Failures are listed per property.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
trackYes
deviceYes
enabledNo
collapsedNo
compare_bNo
propertiesNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare non-destructive, idempotent, closed-world writes, and the description does not contradict them. It adds genuine behavior beyond the annotations, notably that failures are reported per property and how option/routing/sample/view property names are resolved.

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

Conciseness4/5

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

Front-loaded with the verb and the list of changeable fields, then dense but purposeful syntax detail; every clause carries information. The parenthetical examples make it run-on in places, but there is little padding.

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

Completeness4/5

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

For a 7-parameter mutation tool with no output schema and no schema descriptions, the description supplies the missing property-naming rules, the get_device dependency, and partial-failure behavior. The main gap is disambiguation from sibling device-mutation tools and how the track/device locators are resolved.

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

Parameters4/5

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

Schema coverage is 0%, so the description carries the full burden, and it defines meaningful semantics for enabled, name, collapsed, compare_b and especially properties, including value formats for option, routing, sample.* and view.* keys. Only the two required locators (track, device) are left unexplained, though their meaning is largely self-evident.

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

Purpose4/5

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

States a specific verb ('Change a device') and enumerates exactly which attributes it can change (enabled, name, collapsed, compare_b, plus type-specific properties). It does not distinguish itself from the sibling set_device_parameters or device_action, so an agent cannot route between those purely from this text.

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

Usage Guidelines3/5

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

It implies a workflow by pointing to get_device as the source of valid type-specific properties, which is useful implied guidance. However, it never states when to use this tool versus set_device_parameters, device_action, or set_track, and gives no 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_device_parametersA
Idempotent

Set several device parameters in one call; returns each new value and display string.

values: {parameter name or index: value}. Numbers are raw values (min/max from get_device). Strings are display values with units ("-6 dB", "800 Hz", "1.2 kHz", "250 ms", "2.5 s", "30 %", "25L") or item names of switches and choosers ("Sine", "On"). Names match exactly, then by original name, then a unique substring. Failures are listed in "errors" without stopping the others. Example: set_device_parameters("Bass", "Auto Filter", {"Frequency": "800 Hz", "Resonance": 0.4}).

ParametersJSON Schema
NameRequiredDescriptionDefault
trackYes
deviceYes
valuesYes

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the annotations (readOnly=false, idempotent=true, destructive=false, openWorld=false) by disclosing error semantics: individual failures are collected in 'errors' and do not abort the remaining writes. It also documents the name-resolution strategy (exact, then original name, then unique substring) and the raw-vs-display value contract.

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

Conciseness4/5

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

Front-loaded purpose sentence, then the values contract, then an example. Dense and mostly waste-free, though the parenthetical unit list is long and the example partly repeats the preceding rules.

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

Completeness5/5

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

No output schema exists, and the description compensates by naming what is returned (each new value plus display string, and an 'errors' collection). Combined with the value-format and name-matching rules, an agent has everything needed to invoke this correctly despite zero schema descriptions.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry the load, and it does for the nested 'values' object: key type (parameter name or index), accepted value forms (raw numbers bounded by get_device, display strings with units, switch/chooser item names), and a concrete example. Track and device, however, are never described (integer vs name vs array is left to the schema's anyOf).

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

Purpose4/5

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

States a specific verb+resource with a scope qualifier ('several device parameters in one call') and notes the return payload. The 'in one call / several' framing implicitly distinguishes it from the single-parameter sibling set_device, but it never names that sibling explicitly.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: the batch scoping hints at when this beats set_device, but there is no explicit when-to-use/when-not guidance or precondition (e.g., device must exist, parameters must be from get_device). The failure-tolerance note ('without stopping the others') is useful context but not selection guidance.

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

set_grooveA
Idempotent

Edit a groove of the groove pool (index or name). base is the grid: "1/4", "1/8", "1/8T", "1/16", "1/16T" or "1/32". Amounts are percent: quantize, timing and random 0..100, velocity -100..100. The global amount is set_song(groove_amount=...).

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNo
nameNo
grooveYes
randomNo
timingNo
quantizeNo
velocityNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations cover the safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false), so the agent knows this is a non-destructive, idempotent write. The description adds useful context about the value ranges for base and the amount parameters, but does not describe what happens on an out-of-range or invalid groove, nor the return behavior. Given the annotation coverage, a 3 is appropriate.

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

Conciseness4/5

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

Efficient and front-loaded: purpose first, then base, then amount ranges, then the pointer to the global amount tool. Slightly dense but no wasted sentences.

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

Completeness3/5

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

For a 7-parameter mutation tool with no output schema and no annotation-based parameter details, the description covers the core fields but leaves gaps: it does not clarify how 'name' relates to selecting the groove, nor what happens when a groove is not found. Adequate but not complete.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the burden. It documents the base grid options, the percent ranges for quantize/timing/random (0..100) and velocity (-100..100), and that groove can be index or name. It does not name what the 'name' parameter does versus 'groove' when a string is passed, leaving some ambiguity.

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

Purpose4/5

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

States a specific verb+resource ('Edit a groove of the groove pool') and clarifies that the groove can be selected by index or name. It is distinguishable from the sibling get_grooves, though it doesn't mention get_grooves explicitly as the read counterpart.

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

Usage Guidelines3/5

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

The description implies you use this to modify an existing groove and points to set_song(groove_amount=...) for the global amount, but gives no explicit when/when-not guidance or prerequisites (e.g., that the groove must already exist). Usage is only implied.

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

set_locatorA
Idempotent

Rename a locator, addressed by index (time order) or by name. To move one, delete it and create it again at the new time.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
locatorYes

TDQS

A4.1/5.0
Behavior4/5

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

The annotations declare idempotentHint=true and destructiveHint=false; the description reinforces this by making clear the operation only renames and will not relocate an entity, preventing an agent from assuming move/create semantics. It adds useful scope context beyond the annotations, though it omits error behavior on an invalid locator.

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

Conciseness5/5

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

Two short sentences, front-loaded with the core action and addressing modes, with zero filler. The move workaround is a compact, useful addendum.

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

Completeness4/5

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

For a 2-parameter mutation tool with no output schema, the description covers addressing, the rename-only semantic, and the move workaround, which is nearly everything an agent needs. Minor gaps remain around invalid-target behavior and any auth/precondition requirements.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the load, and it does: it explains that 'locator' accepts an index (interpreted in time order) or a name, which directly clarifies the anyOf integer/string schema. The 'name' parameter's role as the new name is implied by the rename framing but not spelled out explicitly.

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

Purpose4/5

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

States a specific verb and resource ('Rename a locator') and disambiguates the vague tool name 'set_locator' by clarifying it only renames, not moves. It does not name the sibling tools (create_locator/delete_locator) it relates to, so it falls just short of full sibling differentiation.

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

Usage Guidelines4/5

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

Explains how to address the target (by index in time order, or by name) and gives an explicit alternate workflow for a related task ('To move one, delete it and create it again at the new time'). It provides context without naming the specific alternative tools, so it stops short of a full when/when-not/alternatives statement.

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

set_mixerA
Idempotent

Set a track's mixer in one call and get the resulting mixer state back.

volume_db: up to +6, or "-inf" (or volume: raw 0..1). pan: -1..1 or "25L"/"C"/"50R". sends: {return letter, index or name: dB up to 0, or "-inf"}. mute/solo (solo is not exclusive), active (track activator), crossfade "A"/"none"/"B", pan_mode "stereo"/"split" with left_pan/right_pan. Master only: crossfader (-1 = A .. 1 = B) and cue_volume_db. Example: set_mixer("Bass", volume_db=-6, pan=-0.2, sends={"A": -18}).

ParametersJSON Schema
NameRequiredDescriptionDefault
panNo
muteNo
soloNo
sendsNo
trackYes
activeNo
volumeNo
left_panNo
pan_modeNo
crossfadeNo
right_panNo
volume_dbNo
crossfaderNo
cue_volume_dbNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare write/idempotent/non-destructive, so the bar is lower. The description adds genuinely useful behavior beyond that: it returns the resulting mixer state (no output schema exists), notes 'solo is not exclusive', and flags which params are master-only. It does not contradict any annotation.

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

Conciseness4/5

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

Front-loads the purpose, then provides a dense but well-ordered parameter reference, ending with a concrete example. The block is long but every clause earns its place given the 0% schema coverage; only minor structural improvement (e.g., explicit list formatting) is missing.

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

Completeness5/5

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

For a 14-parameter mutation with no output schema and no schema-level parameter descriptions, the definition covers the target, all value formats, master-only constraints, and the return behavior. Nothing an agent needs to call it correctly is missing.

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

Parameters5/5

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

Schema coverage is 0%, so the description carries the full burden and does so well: it specifies ranges and formats for volume_db ('up to +6', '-inf'), volume (raw 0..1), pan ('-1..1' or '25L'/'C'/'50R'), sends syntax, crossfade values ('A'/'none'/'B'), pan_mode, and the master-only crossfader/cue_volume_db. This is meaning no agent could derive from the bare schema.

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

Purpose5/5

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

States a specific verb and resource ('Set a track's mixer') plus scope ('in one call') and return behavior ('get the resulting mixer state back'). This clearly distinguishes it from the sibling get_mixer, which only reads state.

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

Usage Guidelines3/5

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

The phrase 'in one call' implies batching for efficiency and the example shows a concrete invocation, but the description never explicitly says when to use this versus get_mixer or set_track, nor any when-not conditions. Usage is implied rather than stated.

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

set_sceneA
Idempotent

Change a scene (index or name): name, color (0..69 or "#RRGGBB"), tempo in BPM, time_signature ("7/8"). Pass tempo="off" or time_signature="off" so the scene keeps the song's tempo or meter.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
colorNo
sceneYes
tempoNo
time_signatureNo

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnly=false, destructive=false, idempotent=true, so the safety profile is covered. The description adds meaningful semantics (color range, '$RRGGBB' format, BPM units, 'off' keeping song tempo/meter) but says nothing about permissions, what happens to omitted attributes, or the response.

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

Conciseness5/5

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

Three tight sentences, front-loaded with the core action, then formats, then the sentinel rule. No filler.

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

Completeness4/5

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

For an idempotent mutation with no output schema, the description supplies all the argument semantics an agent needs. It omits prerequisites, return shape, and omitting-a-field behavior, but those are minor against the rest.

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

Parameters4/5

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

Schema description coverage is 0% with 5 parameters, so the description carries the burden — and it does: scene accepts index or name, color accepts 0..69 or hex, tempo is in BPM, time_signature uses '7/8' form, plus the 'off' sentinel for tempo/time_signature. Only 'name' is left implicit.

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

Purpose4/5

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

States a specific verb (Change) and resource (a scene), keyed by index or name, and enumerates the mutable attributes. It is clear enough to distinguish from create_scene/delete_scene/fire_scene, though it never names those siblings explicitly.

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

Usage Guidelines3/5

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

Usage is implied by the mutation verb and the 'off' sentinel semantics, but there is no explicit when-to-use guidance or routing against siblings like set_song or create_scene. The 'off' hint is the only real behavioral guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_sidechainA

Duck track whenever source plays: sidechain compression, e.g. a bass or pad pumping to the kick.

Uses Live's Compressor, the only device whose sidechain input the API can route: device, else the first Compressor on the track, else a new one at the end of its chain. source: the triggering track (it needs audio output; for a kick inside a drum track, use that track). channel: "Post FX" (default), "Pre FX" or "Post Mixer". Sets S/C On, threshold (dB), ratio, attack and release (ms); enabled=False turns it off. Example: set_sidechain("Bass", "Drums", threshold_db=-30, ratio=6, release_ms=150).

ParametersJSON Schema
NameRequiredDescriptionDefault
ratioNo
trackYes
deviceNo
sourceNo
channelNoPost FX
enabledNo
attack_msNo
release_msNo
threshold_dbNo

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses a significant non-obvious side effect: it will create a new Compressor at the end of the chain if none exists (device-resolution precedence spelled out). It also details the state it sets (S/C On, threshold, ratio, attack, release) and that enabled=False disables rather than removes, which is well beyond the safety hints in annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and use case are front-loaded, then device resolution, then parameters, then a worked example. Dense but every clause carries information; mild formatting/wrapping awkwardness keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema and 0% schema coverage, the description covers device resolution, side effects, and parameter meaning thoroughly. Minor gaps remain (e.g. what happens to pre-existing compressor settings not mentioned, or the response), but nothing that would cause a mis-call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the load and it does: it documents source (with its audio-output requirement), channel (all three values including the default), device fallback order, enabled, and the four compressor values. Almost every one of the 9 parameters gains meaning not present in the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Duck `track` whenever `source` plays: sidechain compression') plus a concrete use case (bass/pad pumping to the kick). No sibling tool does sidechain compression, and the description makes that scope unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains when this applies, names the required device (Live's Compressor) and why alternatives cannot be used ('the only device whose sidechain input the API can route'), and clarifies the tricky source case (use the drum track for a kick). It stops short of explicitly naming an alternative tool or stating when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_songA
Idempotent

Set song-wide settings in one undo step; returns every setting as Live now reports it.

tempo 20..999 BPM; time_signature "3/4"; key a root ("F#") or root plus scale ("A minor"); scale one of Live's scales ("Minor", "Dorian", ...); swing 0..1; groove_amount 0..1.31; loop_start/loop_end times and loop_length a length ("8 bars"), giving the arrangement loop (also the export range); launch_quantization "none".."1/32" ("1 bar", "1/16"); record_quantization "none", "1/16", "1/8T"...; follow = arrangement follows the playhead. record_mode arms arrangement recording. Example: set_song(tempo=124, key="A minor", time_signature="4/4"). No arguments: read the settings.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNo
linkNo
loopNo
scaleNo
swingNo
tempoNo
followNo
loop_endNo
punch_inNo
metronomeNo
punch_outNo
loop_startNo
scale_modeNo
loop_lengthNo
record_modeNo
groove_amountNo
session_recordNo
tempo_followerNo
time_signatureNo
arrangement_overdubNo
launch_quantizationNo
record_quantizationNo
session_automation_recordNo

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly=false, idempotent=true, destructive=false), which is standard. The description adds two useful behavioral points: all changes happen in one undo step, and the return value reports Live's current settings. It doesn't explain partial-update semantics or missing-field behavior, limiting full marks.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but well-structured: the first sentence leads with the core action and undo/read behavior, followed by a parameter guide and a concrete example. The parameter list is long but skimmable; a few less common parameters could have been grouped without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a broad 23-parameter setter with no output schema, the description covers the main parameters with ranges and examples. It is nearly complete, but the omission of 11 parameters and lack of guidance on interaction between settings (e.g., loop vs loop_start vs loop_length) leaves an agent guessing on those.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and only 12 of 23 parameters are named. For those named, the description provides valuable semantics: BPM range, root+scale format, swing range, loop_length syntax ('8 bars'), and quantization values. It fails to mention 11 parameters (link, loop, punch_in, punch_out, metronome, scale_mode, session_record, tempo_follower, arrangement_overdub, session_automation_record), so the compensation is incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Set song-wide settings') and clarifies scope unambiguously via 'song-wide settings', which distinguishes it from track, mixer, and clip setters in the sibling list. It also notes it returns every setting, orienting the agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it (to change song-wide settings) and provides a no-arg read mode, but it never names alternatives such as get_song_overview for reading or set_clip for clip-level timing. The usage context is there, but the exclusions/alternatives are missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_trackA
Idempotent

Change a track: name, colour, arm, monitoring ("in", "auto", "off"), fold (group tracks), collapsed (Arrangement), show_chains (Instrument Rack), and input/output routing.

Routing takes display names from get_routing_options, matched case-insensitively ("Main", "Sends Only", "Resampling", "No Input", a track name such as "Drum Bus" or a track index); channels like "1/2", "Post FX" or a MIDI channel number. Set the type and its channel in one call. Example: set_track("Vox", input="Ext. In", input_channel="1", monitoring="auto").

ParametersJSON Schema
NameRequiredDescriptionDefault
armNo
foldNo
nameNo
colorNo
inputNo
trackYes
outputNo
collapsedNo
monitoringNo
show_chainsNo
input_channelNo
output_channelNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as a non-read-only, non-destructive, idempotent mutation, so the safety profile is covered. The description adds meaningful behavioral detail beyond that: routing names are matched case-insensitively, channels accept values like '1/2' or 'Post FX', and routing type plus channel can be set in one call. It does not clarify partial-update semantics when optional parameters are omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the tool's purpose, efficiently lists the affected properties, then adds focused routing guidance and a concrete example. Every sentence contributes useful information, and there is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 12 parameters, no schema descriptions, no output schema, and annotations that cover the safety profile, the description is largely complete for correct invocation. It thoroughly covers routing and most properties, but falls short of fully documenting color formatting, the track identifier, and partial-update behavior when optional arguments are omitted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: it maps most of the 12 parameters to their meanings, provides allowed monitoring values, explains routing sources and channel formats, and gives an example call. Remaining gaps include the accepted format for 'color' and deeper detail on the required 'track' parameter beyond the example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Change') and resource ('a track'), then enumerates the modifiable properties including routing. It clearly implies modification of an existing track rather than creation or deletion, but it does not explicitly distinguish itself from siblings like create_track, delete_track, or get_track.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a useful prerequisite for routing values ('takes display names from get_routing_options') and an example call, which gives clear context for that sub-case. However, it does not state when to use set_track versus sibling tools or when not to use it, leaving overall usage guidance implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

show_messageA
Idempotent

Show a short message in Live's status bar (bottom of the window), e.g. to tell the user what the agent is doing. It does not open a dialog.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (non-read-only, idempotent, non-destructive), and the description adds the useful behavioral fact that no dialog is opened and that output goes to the status bar. It does not state persistence/duration, whether it interrupts the user, or whether it can be cleared, which are the remaining behavioral unknowns for a UI-notification tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences: purpose first, behavioral clarification second. Every clause earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, no-output-schema notification tool with annotations covering safety, the description covers what it does, where the text appears, and how it differs from dialog tools. Minor omissions around message lifetime keep it from being fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the weight of the single 'text' parameter. 'Short message' conveys that the value is the displayed message and implies a brevity constraint, but no format, length, or escaping guidance is given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (show) and resource (short message in Live's status bar) with a concrete location cue ('bottom of the window'). It also explicitly distinguishes itself from dialog-based siblings: 'It does not open a dialog.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete use case ('to tell the user what the agent is doing') and implicitly steers away from respond_to_dialog by denying dialog behavior. No explicit when-not conditions or named alternative, but the intended context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stop_clipA

Stop the playing or triggered Session clips on a track (quantized=False stops immediately).

ParametersJSON Schema
NameRequiredDescriptionDefault
trackYes
quantizedNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already disclose the safety profile (non-destructive, not read-only, not idempotent). The description adds a useful behavioral detail beyond annotations: quantized=False causes an immediate stop rather than a quantized stop. It does not, however, disclose side effects or response behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single, front-loaded sentence with no wasted words. The parenthetical clarifying quantized=False earns its place by adding behavioral meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool, the core action and the quantized behavior are covered, and annotations handle safety. However, the required track parameter has no description in either the schema or the tool description, and there is no output schema to clarify what stopping returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description explains the quantized parameter's immediate-stop behavior, but the required 'track' parameter is entirely undocumented. With low schema coverage, the description falls short of compensating for both parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: 'Stop the playing or triggered Session clips on a track.' This clearly separates it from siblings like fire_clip (which starts clips) and delete_clip (which removes clips), even without naming them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical 'quantized=False stops immediately' gives some usage context, but the description does not explain when to choose stop_clip over fire_clip, delete_clip, or clip_action. Usage is implied rather than guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transform_notesA

Transform notes in place (ids kept). Filters as in get_notes select the notes (default: all).

operation and its options: transpose: semitones, or steps (scale degrees in the song's key and scale). quantize: grid ("1/16", "1/8T"), amount 0..1 (default 1), swing 0..1 (delays every second grid line). humanize: timing (+/- beats, or "10ms"), velocity (+/- spread), seed. velocity: factor (multiply), offset (add), value (set), random (+/- spread), seed. legato; reverse (within start/end or the loop); stretch: factor (around start or loop start); shift: offset (beats).

ParametersJSON Schema
NameRequiredDescriptionDefault
endNo
gridNo
seedNo
slotNo
startNo
stepsNo
swingNo
trackYes
valueNo
amountNo
factorNo
offsetNo
randomNo
timingNo
pitchesNo
note_idsNo
velocityNo
operationYes
pitch_maxNo
pitch_minNo
semitonesNo
arrangement_clipNo

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false and idempotentHint=false, so the mutation/idempotency profile is covered. The description adds one genuinely useful trait beyond that — note IDs are preserved ('ids kept') — but says nothing about undo/reversibility, permission needs, or what happens to notes not matched by the filter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and filter default are front-loaded in the first sentence, then a consistent 'operation: options' block. The trailing semicolon-joined line ('legato; reverse ...; stretch ...; shift ...') is dense but still readable, and nothing is wasted given the parameter count.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 22-param mutation tool with no output schema and zero schema coverage, the description is unusually complete on operation semantics. It still leaves the filter parameters to be looked up in get_notes and gives no hint about the return value or error behavior, so an agent must go elsewhere for those.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 22 parameters and 0% schema description coverage, the description does the heavy lifting, mapping most options to operations (semitones/steps, grid/amount/swing, timing/velocity/seed, factor/offset/value/random, start/end/loop for reverse and stretch). It leaves ~7 params (track, slot, arrangement_clip, note_ids, pitches, pitch_min/max) covered only by the 'filters as in get_notes' reference, which pushes the agent into another tool's schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Transform notes') plus the crucial scope detail 'in place (ids kept)', which separates it from write_notes (rewrites) and delete_notes. It also cross-references the get_notes sibling for the filter semantics, so an agent can place it in the note-editing family without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The operation list effectively says which operation to pick for a desired effect (transpose for pitch, quantize for grid, humanize for feel), and the 'default: all' note clarifies filter behavior. However, it never says when to use this tool versus edit_notes or write_notes, so alternative selection is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transportA

Control playback. action: "play" (from position if given), "continue", "stop", "jump" (to position), "jump_to_next_locator", "jump_to_prev_locator", "play_selection", "stop_all_clips", "back_to_arrangement" (stop Session clips overriding the arrangement and resume it), "tap_tempo", "capture_midi" (recently played MIDI into a clip), "capture_scene" (playing clips into a new scene).

position: beats, "bar.beat.sixteenth" or a locator name. While stopped, play/jump move the start marker. Returns the action plus the transport state read on Live's next tick. Example: transport("play", position="17.1.1").

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
positionNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare the mutation profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false), and the description adds real behavioral context beyond them: the stopped-state side effect on the start marker, the meaning of back_to_arrangement, and the fact that it returns the action plus transport state read on the next Live tick. Rate limits or failure modes 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then action semantics, then position format, then an example call. Dense but every clause earns its place; the only mild cost is the long parenthetical action list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with no output schema and zero schema description coverage, the description supplies the missing enum semantics, the position format, the return-value note, and an example. Nothing critical is absent, though the lack of explicit sibling routing keeps it short of full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (the action string has no enum and position has no description), so the description carries the full burden — and it does: it defines every accepted action value plus the accepted position formats (beats, 'bar.beat.sixteenth', or a locator name) with a concrete example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Control playback') and enumerates the full set of action values with short parenthetical semantics, so an agent knows exactly what the tool operates on. It does not explicitly contrast itself with siblings like fire_clip/stop_clip, but the global-transport scope is evident from the action list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied through the enumerated actions (e.g. 'back_to_arrangement' explains its own condition, 'while stopped, play/jump move the start marker'), but there is no explicit when-to-use-this-vs-an-alternative guidance, such as when to use transport('stop_all_clips') versus stop_clip on an individual clip.

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 steps actions in Live (1..100). Every AbletonMCP call that changes the set is one undo step, so undo() reverts the previous call. Returns how many steps were undone plus can_undo and can_redo. Live's history is shared with the user's own edits in Live.

ParametersJSON Schema
NameRequiredDescriptionDefault
stepsNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare this is a mutating, non-idempotent, non-destructive operation, and the description meaningfully adds context beyond that: the return payload (steps undone plus can_undo/can_redo) and the important warning that undo history is shared with the user's own edits. It does not describe error behavior when there is nothing to undo, hence not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences that front-load the action and range before moving to semantics and caveats. Every sentence adds distinct information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description discloses the return contents (count plus can_undo/can_redo), the range constraint, the relationship to other tool calls, and the shared-history caveat. An agent has everything needed to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden, and it does so well: it defines the valid range (1..100) and the meaning of `steps` as the number of set-changing calls reverted. The schema only declares a default of 1, so this adds real value; minor gap is no explicit statement of out-of-range behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Undo the last `steps` actions in Live') with scope and semantics. It clearly explains what one undo step is, but does not explicitly name the sibling `redo` tool to disambiguate, so it falls just short of the sibling-differentiating bar.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operational context: every set-changing AbletonMCP call is one undo step, so undo() reverts the previous call. It also warns that history is shared with the user's own Live edits, which informs when using this is appropriate. No explicit when-not or named alternative, so not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_automationA
Destructive

Automate a parameter inside a clip (clip envelope) from points or a shape; returns sampled values.

parameter: "volume", "pan", "send:A", or a device parameter with device. Times are clip beats or "bar.beat.sixteenth" (1.1.1 = clip start). points: [{time, value}]; two points at one time make a jump. shape: {type: ramp|sine|triangle|square|saw|steps, from, to, period ("1 bar"), steps: [values]} over start..end (default: the clip loop). units "display": dB, Hz, ms, %, pan -1..1, item names; "raw": internal values. clear_range replaces breakpoints in the range. Envelopes loop with the clip and travel into the arrangement; arrangement clips can only edit envelopes they already carry. Example: write_automation("Pad", "volume", slot=0, shape={"type": "ramp", "from": -24, "to": 0}).

ParametersJSON Schema
NameRequiredDescriptionDefault
endNo
slotNo
shapeNo
startNo
trackYes
unitsNodisplay
deviceNo
pointsNo
parameterYes
clear_rangeNo
arrangement_clipNo

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructive=true and non-idempotent, but the description goes further and actually discloses what is destroyed: clear_range 'replaces breakpoints in the range'. It also explains non-obvious behavior - envelopes loop with the clip and travel into the arrangement, and arrangement-clip restrictions. This is substantive context beyond the structured hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but front-loaded with the purpose sentence, followed by structured parameter detail and a concrete example. It is packed into a single semicolon-heavy block, which slightly hurts scanability, but nearly every clause carries unique value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-param mutation tool with no output schema, the description covers the core mechanics, units, defaults, and arrrangement restrictions, and gives a worked example. Minor param gaps (arrangement_clip) and only a bare mention of return values keep it from being fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Against 0% schema coverage across 11 params, the description compensates heavily: it explains parameter values, time formats, the points object, the shape object with its types, units display/raw, clear_range, and device. A few params (arrangement_clip, and slot/track only implicitly) remain unaddressed, so it falls short of full compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Automate a parameter inside a clip (clip envelope)'. It is immediately distinguishable from get_automation and clear_automation, and names exactly what it produces (envelope from points or shape).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied through the points/shape input modes, and one real constraint is stated ('arrangement clips can only edit envelopes they already carry'). However, no sibling is named as an alternative (get_automation, clear_automation, set_device_parameters), so the agent is left to infer when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_drum_patternA
Destructive

Write drums from step strings, repeated across the clip's loop: {"Kick": "x---x---x---x---", "Snare": "----x-------x---"}.

Steps: "x" hit, "X" accent, "o" ghost, "-" or "." rest (spaces and "|" ignored); steps_per_beat=4 means 16ths. Drum names match the track's Drum Rack pads (case-insensitive, "kick" finds "Kick 808"), else General MIDI (kick 36, snare 38, clap 39, closed hat 42, open hat 46, crash 49, ride 51, toms); notes like "C1" or 36 work too. velocities: {"x": 100, "X": 127, "o": 60}. swing 0..1 delays every second step. mode: "replace" (those drums' notes) or "add".

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoreplace
slotNo
swingNo
trackYes
patternYes
velocitiesNo
steps_per_beatNo
arrangement_clipNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and non-idempotent, and the description meaningfully supplements that by explaining that 'replace' mode overwrites those drums' notes and that patterns are looped across the clip. It does not discuss permissions, undo, or failure behavior, but it adds real context beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action with a concrete example, then layers step syntax, naming resolution, velocities, swing, and mode. Dense and mostly waste-free, though the drum-name/GM mapping sentence is long and slightly packed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter mutation tool with no output schema, the description covers the hard parts (pattern grammar, drum-name resolution, velocity and swing semantics). Gaps remain around the track, slot, and arrangement_clip parameters, but the critical creative input is well specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage and 8 parameters, the description carries the full burden, and it documents pattern syntax (x/X/o/-/.), steps_per_beat=4 meaning 16ths, default velocities per symbol, swing range 0..1, and mode values. It leaves track, slot, and arrangement_clip unexplained, so it is strong but incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Write drums from step strings') plus the key behavior of repeating the pattern across the clip's loop, with a concrete example pattern. An agent can distinguish this drum-oriented step-string writer from generic siblings like write_notes without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the mode parameter's 'replace' vs 'add' semantics, which is a usage choice, but never says when to prefer this tool over write_notes/edit_notes or under what conditions it should be used. Usage is inferable from the domain but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_notesA
Destructive

Write MIDI notes into a clip. mode: "add", "replace" (clears the clip first) or "replace_range" (clears notes starting in [start, end); defaults to the span of the new notes).

Each note: pitch (60 or "C3"), start (clip beats or "1.3.1"; 1.1.1 = clip start), duration (beats, "1/8", "1/16T"), optional velocity=100, probability=1, velocity_deviation=0, release_velocity=64, mute=false. Chords: "pitches": [...] or "chord": "Am7" (+ octave, inversion, voicing). music_theory progression "notes" fit as-is. Example: [{"pitch": "C3", "start": 0, "duration": 1}, {"chord": "F", "start": 4, "duration": 4}].

ParametersJSON Schema
NameRequiredDescriptionDefault
endNo
modeNoadd
slotNo
notesYes
startNo
trackYes
arrangement_clipNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=false, but the description adds important details: 'replace' clears the clip first, 'replace_range' clears notes starting in [start, end), and default note values are listed. It does not cover permissions or return behavior, but for a destructive write it adds meaningful context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well organized: purpose first, then mode behavior, note format, chord support, and a concrete example. Every sentence adds value; no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, nested note objects, no output schema) and 0% schema coverage, the description covers the core note-writing mechanics well but omits definitions for several top-level parameters and does not clarify broader write semantics (e.g., how 'add' interacts with existing notes).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It thoroughly explains the complex 'notes' parameter structure (pitch, start, duration, velocity, etc.) and the 'mode' enum, but leaves several top-level parameters (track, slot, arrangement_clip, end, start) undefined despite being 7 parameters total.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Write MIDI notes into a clip.' This clearly distinguishes it from pure readers like get_notes and from related mutators like edit_notes or transform_notes, though it does not name any sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains mode behaviors but gives no guidance on when to choose this tool over alternatives such as edit_notes, delete_notes, or write_drum_pattern. It only implies usage from the core purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 78 tool updatesv2.0.0
    • First observedadd_device
    • First observedanalyze_audio
    • First observedarrange_from_scenes
    • First observedbounce
    • First observedbrowse
    • First observedcancel_bounce
    • First observedclear_arrangement
    • First observedclear_automation
    • First observedclip_action
    • First observedcreate_bus
    • First observedcreate_clip
    • First observedcreate_locator
    • First observedcreate_release
    • First observedcreate_scene
    • First observedcreate_track
    • First observeddelete_clip
    • First observeddelete_device
    • First observeddelete_locator
    • First observeddelete_notes
    • First observeddelete_scene
    • First observeddelete_track
    • First observeddevice_action
    • First observedduplicate_clip
    • First observedduplicate_device
    • First observedduplicate_scene
    • First observedduplicate_track
    • First observededit_notes
    • First observedexport_audio
    • First observedfire_clip
    • First observedfire_scene
    • First observedget_arrangement
    • First observedget_automation
    • First observedget_bounce_status
    • First observedget_clip
    • First observedget_device
    • First observedget_devices
    • First observedget_grooves
    • First observedget_meters
    • First observedget_mixer
    • First observedget_notes
    • First observedget_routing_options
    • First observedget_song_overview
    • First observedget_status
    • First observedget_track
    • First observedload_from_browser
    • First observedlom_call
    • First observedlom_describe
    • First observedlom_get
    • First observedlom_set
    • First observedmove_device
    • First observedmusic_theory
    • First observednew_set
    • First observedopen_set
    • First observedredo
    • First observedreload_remote_script
    • First observedrespond_to_dialog
    • First observedsave_set
    • First observedsearch_browser
    • First observedselect
    • First observedset_chain
    • First observedset_clip
    • First observedset_device
    • First observedset_device_parameters
    • First observedset_groove
    • First observedset_locator
    • First observedset_mixer
    • First observedset_scene
    • First observedset_sidechain
    • First observedset_song
    • First observedset_track
    • First observedshow_message
    • First observedstop_clip
    • First observedtransform_notes
    • First observedtransport
    • First observedundo
    • First observedwrite_automation
    • First observedwrite_drum_pattern
    • First observedwrite_notes

TDQS

A3.5/5.0

Scored across 78 tools

Disambiguation3/5

The set is massive (78 tools), and while most tools target distinct resources/actions, there are overlapping areas such as set_device vs set_device_parameters, get_device vs get_devices, and catch-all tools (clip_action, device_action, lom_*) that duplicate or extend narrower tools. Descriptions are detailed but an agent could still misselect among the many options.

Naming Consistency4/5

Names are overwhelmingly snake_case and follow verb_noun or noun_action patterns (create_track, get_clip, set_mixer), with clear grouping prefixes (get_, set_, create_, delete_, duplicate_, move_). Minor deviations like new_set, transport, select, bounce, music_theory, and lom_* prefixes are readable but not perfectly uniform.

Tool Count1/5

78 tools is extreme for any server; even a complex DAW control surface can be consolidated. This far exceeds the 50+ threshold for severe mismatch, likely overwhelming an agent and reducing usability.

Completeness5/5

The surface covers set management, tracks, clips, notes, devices, mixer, routing, browser, automation, arrangement, bounce, release, and audio analysis, plus a LOM fallback for anything missing. This is effectively complete for the stated domain.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    Connects Ableton Live to AI through MCP, enabling prompt-assisted music production with extended tools and a 33-personality style system for generating parts in various artist styles.
    62
    5
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Enables AI agents to control Ableton Live 12 for music production, including generating grooves, basslines, and percussion, and executing live set operations through MCP.
    3
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Connects AI clients to Ableton Live 12, enabling deep control and editing of live sets, sound search, listening/evaluation, and version exploration through MCP tools.
    622 npm
    Business Source 1.1