Skip to main content
Glama
ntworm

Ableton MCP Server

ableton-mcp-server

:globe_with_meridians: Live Landing Page & Interactive 97-Tool Catalog · Architecture Diagram · Agent Playbook · Tool Index

An open Model Context Protocol (MCP) server that enables AI agents (Antigravity, Gemini, Codex) and audio developers to query, analyze, drive, and automate a running Ableton Live 12 Set.

The current tool surface is 97 tools over TCP, WebSockets, composed routes, and local execution (with primary device resolution via device_name, track_index, and clip_index); the current v0.7.0 release ships 97 tools. Historical milestones exposed 65 certified tools in v0.5.2 , 88 tools in the v0.5.6 source milestone , and 96 tools in the v0.6.0 release . v0.7.0 adds plan_user_journey, an updated retrieval seed v3 with per-collection SD3/GM articulation mapping, and a dedicated UDP realtime control channel. Groove retrieval, evidence, generation, and comparison stay offline; only the guarded apply path reaches Live. A FastMCP server in Python communicates with a MIDI Remote Script on TCP 127.0.0.1:9888 and an Extension Host bridge over WebSockets on 127.0.0.1:9889.

Groove Intelligence is offline by default. Its deterministic generator needs no provider installation; an optional neural provider is isolated behind a fixed allowlist, bounded local IPC, resource limits, and signed laboratory gates. Provider failures always return the equivalent deterministic artifact, and no provider receives corpus paths, raw MIDI, notes, SQL, credentials, or network access. See the provider laboratory contract. The curated seed ships inside the wheel; ABLETON_GROOVE_SEED_BUNDLE can override it explicitly, while derived artifacts stay in LocalAppData. Groove retrieval, evidence, comparison, and deterministic generation are portable and do not depend on the private source library. A generation request can use one primary groove plus up to seven references; incompatible PPQ, meter, or rights are rejected explicitly. Within the Groove Intelligence surface, the only Live mutation is guarded groove_apply, which must be previewed against an explicit target and empty slot before one commit.


⚡ What is Model Context Protocol (MCP) & How Agents Use It

Model Context Protocol (MCP) is an open standard for secure, local communication between Large Language Models (LLMs) and desktop applications.

Local IPC / stdio (Not a Cloud Service):
ableton-mcp-server runs locally on your host OS over standard input/output (stdio) or IPC loopback. The AI agent spawns the ableton-mcp-server.exe process directly. There are no external cloud endpoints or API keys required, guaranteeing zero network latency and maximum privacy.

How AI Agents Interact with Ableton Live:

  1. Tool Discovery (tools/list): When an MCP client (Antigravity, Cursor, Windsurf) launches the server, it automatically discovers all 97 tool schemas .

  2. Tool Execution (tools/call): When the LLM decides to manipulate Ableton Live, it issues JSON-RPC messages (e.g. set_tempo(tempo=128.0) or create_clip(...)).

  3. Write-Then-Verify Loop: The server writes to Live's local socket and verifies object model state before returning a result.

  4. Self-Correcting Error Taxonomy: If an error occurs, the server returns structured codes (CAPABILITY_UNAVAILABLE, AMBIGUOUS_MATCH, VERIFICATION_FAILED), enabling the agent to reason and adapt.

You have direct access to an active Ableton Live Set via ableton-mcp-server (97 tools) <!-- TOOL_COUNT: active_total -->.
1. Always start by inspecting the project state using `get_session_overview()` or `get_track_list()`.
2. To modify track properties, resolve the target track index using `live_find_track(name_pattern)` first.
3. For parameter adjustments, query parameters via `get_device_list()` and `get_parameter_value()`, then apply changes using `set_parameter_value()`.
4. When executing multiple operations, bundle them using `run_batch(commands)` for one grouped undo step; a successful prefix persists if a later command fails.
5. Respect the error taxonomy: if you receive `AMBIGUOUS_MATCH` or `VERIFICATION_FAILED`, inspect track context and retry.

Related MCP server: io.github.peterkolbe/ableton-for-ai

🛠️ Use It

License is MIT. Copy, fork, ship — see LICENSE.

Windows Install (one-shot):

powershell -ExecutionPolicy Bypass -File .\scripts\setup_windows.ps1

Preview the exact Remote Script copy plan without creating .venv-win, installing dependencies, or writing to Ableton's User Library:

powershell -ExecutionPolicy Bypass -File .\scripts\setup_windows.ps1 -DryRun

If the environment already exists, the equivalent CLI preview is:

.\.venv-win\Scripts\ableton-mcp.exe install-script --dry-run

Then restart Live, select AbletonMCPServer under Preferences -> Link, Tempo & MIDI -> Control Surfaces, and verify the installation:

.\.venv-win\Scripts\ableton-mcp.exe doctor --json

Verify Install

You can verify your installation integrity using either the built-in CLI tool or direct SHA-256 hash comparison:

1. CLI Remote Script Status

Run install-status to compare installed Remote Script files against the bundled source:

.\.venv-win\Scripts\ableton-mcp.exe install-status --json

A healthy, up-to-date installation returns "status": "current":

{
  "status": "current",
  "source": "C:\\path\\to\\ableton-mcp-server\\AbletonMCPServer_RemoteScript",
  "target": "C:\\Users\\<user>\\Documents\\Ableton\\User Library\\Remote Scripts\\AbletonMCPServer_RemoteScript",
  "missing_files": [],
  "mismatched_files": []
}

2. SHA-256 Checksum Audit

During setup, setup_windows.ps1 automatically verifies and prints the Remote Script's SHA-256 hash:

Remote Script verification:
  algorithm: SHA256
  hash: 3E3504D661FA2DCE7582F50C56F0C71EB79892F7A4520BD3F1B8571EEDBB14DE
  path: C:\Users\<user>\Documents\Ableton\User Library\Remote Scripts\AbletonMCPServer_RemoteScript\__init__.py

To manually compute and verify the SHA-256 checksum of the installed __init__.py at any time:

  • Windows (PowerShell):

    Get-FileHash "$HOME\Documents\Ableton\User Library\Remote Scripts\AbletonMCPServer_RemoteScript\__init__.py" -Algorithm SHA256
  • macOS / Linux:

    shasum -a 256 "$HOME/Music/Ableton/User Library/Remote Scripts/AbletonMCPServer_RemoteScript/__init__.py"

Agent Configuration (mcp.json):

{
  "mcpServers": {
    "ableton": {
      "command": "C:\\path\\to\\ableton-mcp-server\\.venv-win\\Scripts\\ableton-mcp-server.exe",
      "args": []
    }
  }
}

If you operate from WSL2, point the MCP client at the Windows binary so loopback stays in the host network namespace:

/path/to/ableton-mcp-server/.venv-win/Scripts/ableton-mcp-server.exe

MCP Bundle (.mcpb)

scripts/build_mcpb.py packs the server as an MCP Bundle for Windows. The bundle carries the wheel and a locked launcher project; on first launch the host's uv installs Python and the dependencies from PyPI. It contains the server only, so the Remote Script and the Extension still install as described above.

.\.venv-win\Scripts\python.exe scripts\build_mcpb.py build --out-dir dist\mcpb
.\.venv-win\Scripts\python.exe scripts\build_mcpb.py smoke dist\mcpb\ableton-mcp-server-<version>.mcpb

build needs uv, Node.js (npx runs the pinned @anthropic-ai/mcpb CLI), and network access. smoke extracts the bundle, launches it over stdio, and checks initialize, tools/list against the catalog, and one offline tool, without Ableton Live.


📦 What It Does (97 MCP Tools)

v0.6.0 extends the certified 65-tool v0.5.2 baseline . v0.5.3 introduced colour writes, clip-target diagnostics, and five hierarchy tools that validate then return CAPABILITY_UNAVAILABLE; v0.6.0 adds offline music generation, Groove retrieval, and guarded apply. See the offline music reference.

The 97 MCP tools are grouped into operational domains :

  • Transport & Session: get_session_info, set_tempo, start_playback, stop_playback, get_loop_settings, set_loop, set_loop_start, set_loop_length, set_current_song_time, get_song_length, get_session_overview, get_scenes, get_scene_state, fire_scene, fire_clip.

  • Tracks & Devices: get_track_list, live_find_track, live_find_device, live_find_clip, get_track_state, get_device_list, list_device_params, get_parameter_value, get_plugin_presets, set_plugin_preset, get_clip_summary, set_parameter_value, create_clip, get_clip_notes, add_notes_to_clip, delete_clip, clear_clip_notes, set_clip_properties, get_clip_info, set_track_property, set_track_color, set_clip_color, diagnose_clip_targets, create_midi_track, create_audio_track, rename_track, move_track, reorder_tracks, move_track_to_group, ungroup_track, merge_groups, get_routing, diff_snapshots_tool, take_snapshot, get_selected_context, get_composition_structure, diagnose_midi_clip, search_browser, load_device_to_track, get_warp_state, set_warp_state.

  • Lifecycle & Automation: lifecycle_status, save_set, quit_ableton, live_fade, create_clip_automation.

  • Offline Mix Analysis: analyze_audio, find_frequency_masking, analyze_mix, extract_single_cycle (LUFS-I, True Peak, dynamic range, spectral collision).

  • Groove Intelligence (offline by default): groove_search, groove_evidence, groove_generate, groove_compare, groove_apply (genre/subgenre/style/section taxonomy, V2 projections, deterministic multi-parent generation, late kit mapping, and one guarded Live commit).

  • Inspection & Batch Execution: run_batch, get_locators, create_cue_point, delete_cue_point, bulk_create_cue_points, get_control_surfaces, get_browser_categories, get_project_metadata, get_ableton_logs, get_bridge_status.

Offline Music Generation

Inventory

Tools

Live boundary

Deterministic music generation

music_generate_drum_groove, music_generate_bass, music_plan_production

Offline by default; only an explicit apply request reaches Live.


💡 Inspiration & Prior Art

This project builds on design insights from seminal open-source projects:

Full notes in docs/INSPIRATION.md.


⚠️ Known Bugs

Live's Object Model exposes a number of traps (path-id drift, undo semantics, WSL loopback, protocol drift, allowlist surprises) that an AI agent can hit without warning. Each one has a known workaround in the codebase; every trap is documented in docs/KNOWN_BUGS.md. Read the executive summary at the top of that file before relying on track indexes, run_batch, or a TCP loopback to Live.


📜 License

MIT — Copyright (c) 2026 Gabriel Worm (ntworm). See LICENSE.

Available Tools

97 tools
add_notes_patternA

Repeat one note cell N times instead of sending every note.

Side effects: adds notes in one Live undo step; existing notes remain. Example: add_notes_pattern(59, 0, cell, cell_length=4, repeats=16, transpose_per_repeat=0) writes a sixteen-bar ostinato from one bar. Edge cases: the same validation as add_notes_to_clip applies to every expanded note; pitch and velocity are clamped to the MIDI range.

ParametersJSON Schema
NameRequiredDescriptionDefault
cellYes
repeatsYes
clip_indexYes
cell_lengthYes
track_indexYes
transpose_per_repeatNo
velocity_scale_per_repeatNo

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses that notes are added in a single Live undo step, that existing notes remain, that per-note validation matches add_notes_to_clip, and that pitch/velocity are clamped. It does not describe error responses or the return payload, but the mutation and undo semantics are clearly 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?

Well front-loaded: purpose, then side effects, then a concrete example, then edge cases. Every section adds signal. The example line is slightly dense but earns its place by demonstrating several parameters at once.

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 annotations and no output schema, the description supplies purpose, undo behavior, a usage example, and validation/clamping edge cases. The main residual gap is per-parameter meaning, especially velocity_scale_per_repeat and transpose_per_repeat units.

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% across 7 parameters, so the description must compensate. The worked example illustrates track_index, clip_index, cell, cell_length, repeats, and transpose_per_repeat in positional context, but velocity_scale_per_repeat is never mentioned and no parameter's meaning is spelled out, so compensation is only partial.

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: 'Repeat one note cell N times instead of sending every note.' It also references the sibling add_notes_to_clip, which helps an agent place it in the tool family. The clip-writing nature is implied rather than stated outright, so it's clear but not maximally sharp.

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 'instead of sending every note' implies the use case (write repetitive patterns compactly), and add_notes_to_clip is named as the tool whose validation applies. But there is no explicit when-to-use/when-not or a directive comparison against add_notes_to_clip, leaving the agent to infer the routing.

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

add_notes_to_clipA

Add validated MIDI notes to an existing Session clip.

Side effects: adds notes in one undo step; existing notes remain. Example: add_notes_to_clip(0, 0, [{"pitch": 60, ...}]). Edge cases: audio clips, empty slots, and invalid MIDI ranges are rejected.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesYes
clip_indexYes
track_indexYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose meaningful behavior: single-undo-step mutation and the crucial fact that existing notes are preserved (append, not replace). It still omits how validation failures surface and whether the clip/track must be MIDI beforehand.

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?

Four tightly packed lines: purpose first, then side effects, example, and edge cases. Every sentence adds a distinct piece of information with zero 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 annotations and no output schema, the description covers purpose, side effects, usage example, and failure cases well. The remaining gap is the shape of the primary 'notes' payload, whose required fields are only hinted at by a truncated example.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate for all three parameters. The example partially does this by showing positional usage (track_index=0, clip_index=0, notes=[...]), but the note-object fields are elided ('...') and index meaning/range is 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?

States a specific verb and resource ('Add validated MIDI notes') scoped to a precise target ('existing Session clip'). The word 'add' plus 'existing' implicitly separates it from create_clip, clear_clip_notes, and get_clip_notes, so an agent can route correctly 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 operating context ('existing Session clip') and enumerates rejection conditions (audio clips, empty slots, invalid MIDI ranges), which functions as when-not guidance. It does not, however, name the alternative sibling (e.g. add_notes_pattern) or state when that should be preferred.

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

analyze_audioA

Compute LUFS-I, true-peak, RMS, and per-band energy summary for a local audio file.

Side effects: reads the file from disk. Example: analyze_audio(path="/stems/kick.wav") returns LUFS-I plus per-band energy summary. Edge cases: missing files and unsupported encodings return a structured {"ok": False, "reason": ...}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it declares the side effect (reads the file from disk), and specifies the failure contract — missing files and unsupported encodings return a structured {"ok": False, "reason": ...}. It omits anything about cost, latency, or supported formats, which is the 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.

Conciseness5/5

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

Tightly structured with front-loaded purpose, then labelled Side effects, Example, and Edge cases blocks. Every sentence adds information an agent needs; 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 must describe the return value, and it does list the metrics returned (LUFS-I, true-peak, RMS, per-band energy) plus the error shape. It stops short of describing result structure or units, so a little is left to discovery, but nothing critical is missing for a 1-parameter 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?

Schema coverage is 0% and the single parameter is undocumented in the schema, so the description must compensate — and it does via the worked example path="/stems/kick.wav", which conveys that path is a local filesystem path string. Absolute-vs-relative and platform conventions are still left to inference.

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 (compute) and resource (a local audio file) plus the exact metrics produced: LUFS-I, true-peak, RMS, and per-band energy. This is far more specific than its sibling analysis tools (analyze_mix, find_frequency_masking), though it never explicitly names how it differs from them.

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: the metric list tells the agent this is for objective loudness/level measurement of a single file, and the example demonstrates the call shape. However, there is no statement of when to prefer this over analyze_mix or find_frequency_masking, and no preconditions are described.

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

analyze_mixA

Run per-stem analysis and pair-wise masking across up to 16 local audio files.

Side effects: reads each stem from disk. Example: analyze_mix(stems=["/stems/kick.wav", "/stems/bass.wav"]) returns per-stem LUFS plus pair-wise masking scores. Edge cases: more than 16 stems raises a structured error; missing files are reported per-stem via {"ok": False, "reason": ...}.

ParametersJSON Schema
NameRequiredDescriptionDefault
stemsYes

TDQS

A4.2/5.0
Behavior4/5

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

No annotations, so the description carries the full burden and does well: it discloses the disk-read side effect, the 16-stem cap error behavior, and the per-stem missing-file error shape. Missing only details on failure modes for other errors or expected runtime.

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 purpose, then side effects, example, and edge cases in four tight, information-dense blocks. 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 one-parameter analysis tool with no output schema, the description covers purpose, side effects, example, and error behavior. What remains unsaid is how to interpret the returned LUFS/masking values and typical performance, but the essentials for correct invocation 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?

Schema coverage is 0% and there is one parameter, so the example call ('stems=[...]') and the edge-case note (>16 raises error, missing files reported per-stem) supply the semantics the schema lacks. This meaningfully compensates for the absent schema descriptions.

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

Purpose5/5

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

States a specific verb (run) and resource (per-stem analysis and pair-wise masking across local audio files), with a concrete example call. Distinguishes itself from audio tooling siblings like analyze_audio and find_frequency_masking by naming the exact outputs (LUFS, masking scores).

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 an example that implies usage (batch stems of a mix), but never explicitly says when to use this versus find_frequency_masking or analyze_audio. No exclusion criteria or prerequisite context beyond the 16-file limit.

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

build_extensionA

Run a build of an Ableton Extension project.

Side effects: runs npm install and npm run build in the supplied project directory.

Contract (v0.5.1): the JSON document returned by this tool has the following shape::

{
    "status": "built" | "error",
    "entrypoint": "dist/extension.js",
    "entrypoint_exists": true,
    "steps": [
        {"step": "install", "returncode": 0,
         "stdout": "...", "stderr": "..."},
        {"step": "build", "returncode": 0,
         "stdout": "...", "stderr": "..."}
    ],
    "artifacts": ["dist/extension.js", "..."]
}

entrypoint is read from package.json["main"] (falling back to manifest.json["entry"] when main is missing) so the contract reflects the project's own declaration. artifacts is populated when status == "built" and lists every file under dist/ relative to the project root. When the build completes but the declared entrypoint is missing on disk, status flips to "error" and entrypoint_exists is false.

Example: build_extension("/path/to/my-extension") runs npm install then npm run build and returns the JSON document above. Requires Node.js and npm on the host machine. Edge cases: returns {"status": "error", "message": ...} when package.json is missing; never raises during the subprocess execution — every step's returncode is reported in the steps array instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and does so well: it names the side effects (npm install, npm run build in the supplied directory), states that it never raises during subprocess execution, reports each step's returncode instead, lists host requirements, and specifies the missing-package.json error shape. This is exactly the behavioral disclosure a mutation-capable 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.

Conciseness3/5

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

Purpose is front-loaded correctly, but the bulk of the description is a full restatement of the JSON return contract — including field-by-field semantics — even though an output schema already exists for this tool. That block is largely redundant and crowds out the smaller amount of information the schema cannot supply.

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 build-runner with filesystem side effects and no annotations, the description covers side effects, error modes, host prerequisites, and failure semantics well enough to invoke safely. Its only meaningful gap is the directory-path contract for project_path, which is left to inference.

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 project_path parameter, so the schema contributes nothing. The description partially compensates — it implies the value is a project root directory ('supplied project directory', 'relative to the project root') and shows an example call — but never states whether the path must be absolute, whether it must contain package.json, or how relative paths resolve.

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: 'Run a build of an Ableton Extension project.' It is clearly a build/compile operation, distinct from the read-oriented Ableton Live siblings. However, it never names the nearest sibling (scaffold_extension) or otherwise explicitly draws the boundary between scaffolding and building, so the agent must infer 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 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 example shows a direct invocation and prerequisites (Node.js and npm) are named. There is no explicit guidance on when to invoke this versus scaffold_extension, or at what point in a workflow a rebuild is warranted. Adequate but leaves sequencing to inference.

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

bulk_create_cue_pointsA

Create or rename multiple cue points as one command.

Side effects: mutates all successful items inside one undo step. Example: bulk_create_cue_points([{"name": "A", "time": 0}]). Edge cases: per-item errors are aggregated instead of aborting later items; off-grid snaps are reversed and reported as CUE_SNAPPED_TO_GRID.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYes

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations to lean on, the description carries the full burden and does so well: it discloses mutation of successful items within a single undo step (transactional scope), aggregated per-item errors that don't abort later items, and off-grid snapping reversal reported as CUE_SNAPPED_TO_GRID. This is exactly the behavioral context an agent needs for a bulk mutating call.

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 is front-loaded, followed by clearly labeled 'Side effects' and 'Edge cases' sections and a compact example. Every sentence earns its place, though the labeled list format is slightly more verbose than a tight prose sentence would be.

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

Completeness4/5

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

Given no annotations, no output schema, and an opaque parameter, the description covers the critical behavioral unknowns (undo atomicity, error aggregation, snapping). It stops short of the full per-item field set and any return-value shape, but for a bulk mutation tool this is close to 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% and the single 'items' param is an untyped array of objects with additionalProperties, so the schema alone is useless. The inline example [{"name": "A", "time": 0}] meaningfully reveals the item shape, though it doesn't enumerate all possible fields or types, so it compensates substantially but not completely.

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 ('create or rename') and resource ('multiple cue points') plus the batching scope ('as one command'). The word 'multiple'/'bulk' cleanly distinguishes it from the singular create_cue_point sibling without needing schema inspection.

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 batch framing implies when to use it (multiple items at once), and it notes renaming behavior. However, it never explicitly names create_cue_point as the single-item alternative or states the condition that should route an agent to one vs the other, leaving the choice to inference.

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

clear_clip_notesA

Remove every MIDI note from one Session clip and report the observed delta.

Side effects: clears notes in one Live undo step. Example: clear_clip_notes(0, 1) empties a MIDI clip without deleting it. Edge cases: empty or audio clips return structured errors.

ParametersJSON Schema
NameRequiredDescriptionDefault
clip_indexYes
track_indexYes

TDQS

A3.7/5.0
Behavior4/5

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

No annotations are provided, so the description must carry the behavioral burden. It discloses key side effects: clears notes in one Live undo step, reports observed delta, and returns structured errors for empty/audio clips. This goes beyond schema. Missing info on permissions or exact return format, but 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 purpose, then side effects and example, then edge cases. Three short sentences, no waste, well-structured. Could be slightly more concise but effective.

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 annotations and no output schema, the description covers purpose, side effects, example, and edge cases. It lacks parameter definitions and return format details, but given the simplicity (2 params, no output schema), it's largely 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 description coverage is 0%, so the description must compensate. It provides an example ``clear_clip_notes(0, 1)`` showing track_index and clip_index usage, but does not explicitly define parameter meanings or types. The example helps but is insufficient for full semantic clarity.

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?

Specific verb+resource: 'Remove every MIDI note from one Session clip' clearly states what it does. The example clarifies it empties a MIDI clip without deleting it. However, it doesn't explicitly differentiate from sibling tools like delete_clip or add_notes_to_clip, though the MIDI note scope is distinct.

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 (empties a MIDI clip) and mentions edge cases for empty or audio clips, but does not state when to use this versus alternatives like delete_clip or add_notes_to_clip. No explicit when-not guidance.

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

create_audio_trackA

Create a new audio track in Ableton Live.

Side effects: mutates the Set by adding an audio track in one undo step. Example: create_audio_track(name="vocals") appends a named audio track; create_audio_track(index=2) inserts at position 2. Edge cases: raises LIVE_UNAVAILABLE when the Live host does not expose Song.create_audio_track. Note: this audio variant does not reuse the 96-track TRACK_LIMIT_REACHED guard — Live itself enforces the per-host track cap.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
indexNo

TDQS

A3.7/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and meets it: it discloses the mutation and its one-undo-step reversibility, the LIVE_UNAVAILABLE error condition, and a subtle caveat that the 96-track TRACK_LIMIT_REACHED guard does not apply here. This is exactly the kind of behavioral context annotations would otherwise supply.

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, then side effects, examples, and edge cases in a logical order. Dense but every section earns its place; the prose is slightly terse in spots but not padded.

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 annotations and no output schema, the description covers side effects, error behavior, and track-limit nuances well. It stops short of stating what is returned or any host/permission prerequisites, but is largely complete for correct invocation.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It partially does via examples (name='vocals' appends a named track; index=2 inserts at position 2), but it never explains the meaning of the default index=-1 or the null default for name, leaving the default/append semantics to inference.

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 ('Create a new audio track in Ableton Live') and the phrase 'this audio variant' implicitly signals the existence of a MIDI counterpart. It distinguishes the tool well but never explicitly names the sibling create_midi_track, so an agent must infer the pairing.

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 examples show how to call it (name vs index) but offer no guidance on when to use an audio track versus a MIDI track or other creation tools. There is no when-to-use, when-not-to-use, or alternative-selection guidance.

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

create_clipA

Create an empty MIDI clip in an empty Session slot.

Side effects: creates a clip in one undo step. Example: create_clip(0, 1, 4.0) creates a four-beat clip. Edge cases: only empty slots on MIDI tracks accept this operation. With dry_run=True, the change is validated but not committed.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
clip_indexYes
track_indexYes
length_beatsYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the undo footprint (one undo step), the dry_run semantics, and the failure condition. It stops short of stating permission prerequisites or what the call returns on success.

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 labeled Side effects / Example / Edge cases blocks, each earning its place. The labeled structure is slightly heavier than needed but nothing 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?

For a mutation tool with no annotations and no output schema, it covers side effects, undo scope, dry-run, and the key edge case. Remaining gaps are the return value and the meaning/range of track_index and clip_index, both of which the schema leaves undocumented.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate, and it partially does: it explains dry_run and the example create_clip(0, 1, 4.0) implies positional order with length_beats in beats. However, track_index and clip_index semantics (what a Session slot index means, valid ranges) 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?

States a specific verb (Create) and resource (empty MIDI clip in an empty Session slot), including the scoping constraint that distinguishes it from siblings like add_notes_to_clip, delete_clip, or create_clip_automation. An agent can tell what this 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?

Gives a clear precondition (only empty slots on MIDI tracks accept this) and explains the dry_run validation path, which tells the agent when the call will succeed or is a rehearsal. It does not name a sibling alternative for the non-empty-slot case, so it stops short of explicit routing.

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

create_clip_automationA

Replace one Session clip parameter envelope with verified breakpoints.

Side effects: clears and rewrites one clip envelope in one Live undo step. Example: create_clip_automation(0, 1, "volume", [{"time": 0, "value": 0.5}]). Edge cases: requires Session-clip automation APIs and accepts at most 500 points. A parameter name carried by several devices of the track returns AMBIGUOUS_MATCH; pass device_index to choose one. Envelopes are stepped, so a smooth ramp needs dense points — or use create_clip_automation_curve and let the server expand it.

ParametersJSON Schema
NameRequiredDescriptionDefault
clip_indexYes
track_indexYes
device_indexNo
parameter_nameYes
automation_pointsYes

TDQS

A4.6/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full burden and does so well. It discloses the destructive side effect ('clears and rewrites one clip envelope in one Live undo step'), the API prerequisite, a hard limit (max 500 points), error behavior (AMBIGUOUS_MATCH) with a recovery path (device_index), and semantic gotcha (stepped 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?

Front-loads purpose in one line, then labels blocks 'Side effects:', 'Example:', 'Edge cases:'. Every sentence is load-bearing — no restated name, 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 5-param mutation tool with zero annotations, no output schema, and 0% schema coverage, the description supplies side effects, limits, errors, an example, and alternative routing. Only the return/response behavior is unspecified, which is a minor gap for a mutating write 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?

Schema coverage is 0%, so the description must compensate, and it largely does: it explains device_index's role (disambiguating a parameter name shared across devices), the automation_points format via a concrete example ({"time", "value"}), and the 500-point cap. track_index and clip_index are only shown positionally in the example, not explained, so it falls short of full coverage.

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

Purpose5/5

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

States a specific verb and resource: 'Replace one Session clip parameter envelope with verified breakpoints.' The scope (one clip, one parameter, Session clip) is precise and lets an agent distinguish it from the sibling create_clip_automation_curve without opening either 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 to the alternative for a concrete case: 'Envelopes are stepped, so a smooth ramp needs dense points — or use create_clip_automation_curve.' It also flags the Session-clip context requirement. It stops short of a full when-to-use vs when-not comparison across all automation siblings, but the key alternative is named with its selecting condition.

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

create_clip_automation_curveA

Write a smooth envelope from a handful of control points.

Side effects: replaces one clip envelope in one Live undo step. Example: create_clip_automation_curve(38, 0, "FILTER", [{"time": 0, "value": 12}, {"time": 16, "value": 110}], shape="exp") expands into contiguous steps on the server. Edge cases: Live's envelopes are stepped, so the expansion is a dense staircase capped at 500 steps; raise resolution if it overflows.

ParametersJSON Schema
NameRequiredDescriptionDefault
shapeNolinear
clip_indexYes
resolutionNo
track_indexYes
device_indexNo
control_pointsYes
parameter_nameYes

TDQS

A3.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the destructive side effect ('replaces one clip envelope in one Live undo step'), the server-side expansion into contiguous steps, and a hard 500-step cap with resolution as the remedy. It stops short of stating permission/auth requirements or exactly which envelope is overwritten when device_index is null.

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, then organizes the rest under Side effects / Example / Edge cases. Dense with useful detail and little waste; only mildly longer than strictly necessary.

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 annotations and no output schema, this covers side effects, undo semantics, an invocation example, and a real failure mode with its mitigation. The main gap is the unexplained device_index parameter and no statement of return behavior.

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% across 7 params, so the description must compensate. It clarifies control_points format (time/value objects), shape usage (shape="exp"), and resolution's role in avoiding overflow — solid for those — but never explains device_index, track_index, clip_index, or parameter_name, and lists no valid shape values.

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: 'Write a smooth envelope from a handful of control points.' An agent can tell it writes clip automation, but the description never distinguishes it from the sibling create_clip_automation or get_clip_automation, leaving the reader to infer the difference from name alone.

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

Usage Guidelines2/5

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

There is no when-to-use guidance and no mention of alternatives such as create_clip_automation or set_parameter_value. The example shows a valid call but does not say under what circumstances this tool should be preferred over its siblings.

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

create_cue_pointA

Create or idempotently rename a cue point at a beat time.

Side effects: mutates the Set in one undo step and temporarily moves the playhead. Example: create_cue_point("Verse", 8.0) creates a locator. Edge cases: verified movement failure raises PLAYHEAD_NOT_MOVED before toggling. Arrangement-grid snap is reversed and raises CUE_SNAPPED_TO_GRID.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
timeYes

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and largely delivers: it discloses that the Set is mutated in one undo step, that the playhead moves temporarily, and names two specific failure modes (PLAYHEAD_NOT_MOVED, CUE_SNAPPED_TO_GRID). It stops short of a 5 because it does not describe the return value or what happens if the name collides at a different time.

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 uses labeled lines ('Side effects:', 'Example:', 'Edge cases:') that make it scannable. Every sentence carries content; the only cost is that the error-code details are dense for the space they occupy.

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 annotations, no output schema, and 0% schema coverage, the description covers side effects, an example, and error conditions well. It leaves out the return value and how it relates to the sibling cue-point tools, keeping it from a 5.

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% for two parameters, so the description must compensate. The example create_cue_point("Verse", 8.0) and the phrase 'at a beat time' imply that 'name' is a text label and 'time' is a numeric beat position, which adds real meaning, but neither parameter is explicitly defined.

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 ('Create or idempotently rename a cue point at a beat time'), and the example clarifies the operation. It does not name any sibling (bulk_create_cue_points, delete_cue_point, get_locators) to differentiate itself, 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?

No explicit when-to-use or when-not guidance is given. The 'idempotently rename' phrasing implies it is safe to call repeatedly at an existing beat, which is a mild usage signal, but alternatives like bulk_create_cue_points or delete_cue_point are never referenced.

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

create_midi_trackA

Create a new MIDI track inside Ableton Live under safe constraints.

Side effects: mutates the Set by adding a track in one undo step. Example: create_midi_track("Bass") appends a named MIDI track. Edge cases: fails with TRACK_LIMIT_REACHED when ≥ 96 tracks exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoMIDI Track
indexNo

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does well: it discloses the mutation, that it occurs in one undo step, and the concrete failure mode (TRACK_LIMIT_REACHED at >=96 tracks). It omits permission/auth context and what happens if the index is out of range, but the disclosure is well above average for a mutation tool.

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

Conciseness5/5

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

Tight and front-loaded: purpose first, then labeled Side effects, Example, and Edge cases segments. Every sentence adds distinct value and none 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?

For a mutation tool with no annotations or output schema, the description covers mutation semantics, undo behavior, and one hard failure mode. The remaining gap is the index parameter's meaning and range, which is needed to call it correctly beyond the default path.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate and only partially does. The example illustrates the name parameter, but the index parameter is entirely unexplained in both schema and description, and the default placement behavior is only hinted at by the word "appends".

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 new MIDI track") and scopes it to Ableton Live. The MIDI qualifier cleanly distinguishes it from create_audio_track and other create_* siblings without needing 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?

Usage is implied by the purpose and the edge-case note, but there is no explicit when-to-use or when-not-to-use guidance and no reference to alternatives such as create_audio_track or create_clip. An agent must infer when this is the right tool.

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

delete_arrangement_clipA

Delete one clip from the Arrangement timeline.

Side effects: removes one Arrangement clip in one Live undo step. Example: delete_arrangement_clip(3, 2) deletes the third clip of the track's Arrangement lane. Edge cases: clip_index indexes Track.arrangement_clips; re-read it after any structural change because the indices shift.

ParametersJSON Schema
NameRequiredDescriptionDefault
clip_indexYes
track_indexYes

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it states that deletion removes one clip in one Live undo step, which is essential for understanding reversibility, and warns that clip_index indexes Track.arrangement_clips and must be re-read after structural changes because indices shift. This is meaningful behavioral context beyond the schema. It does not mention permissions, failure modes, or what happens if the clip is referenced elsewhere, so it is strong but not exhaustive.

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

Conciseness4/5

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

The description is front-loaded with the core action, then organized into side effects, example, and edge cases. It is appropriately sized and each section adds value. The edge-case sentence is dense but necessary; no sentence is clearly wasteful.

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

Completeness3/5

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

This is a mutation tool with no annotations, no output schema, and 0% schema description coverage for two parameters. The description covers side effects, undo behavior, and the critical index-shifting edge case, which is good. However, it omits when to prefer this tool over siblings like delete_clip or move_arrangement_clip, and does not fully compensate for the lack of parameter descriptions on track_index. It is adequate for a simple two-parameter deletion but not 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 description coverage is 0%, so the description must compensate for both parameters. It explains clip_index's semantic scope ('indexes Track.arrangement_clips') and gives a concrete example with two integers, but track_index is only indirectly clarified through the example. It adds useful meaning for one parameter and partial context for the other, which is adequate but leaves room for more explicit parameter documentation.

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: 'Delete one clip from the Arrangement timeline.' It clearly distinguishes Arrangement clips from Session clips, which matters because the sibling list contains delete_clip, fire_clip, and multiple arrangement-specific tools (get_arrangement_clips, move_arrangement_clip, set_arrangement_clip_properties). An agent can identify the exact operation without ambiguity.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus delete_clip, move_arrangement_clip, or clear_clip_notes. The example and edge-case note imply usage but do not state conditions or alternatives. The description says what it does but not when the agent should choose it over similar deletion or arrangement tools.

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

delete_clipB

Delete one occupied Session clip slot.

Side effects: deletes a clip in one Live undo step. Example: delete_clip(0, 1) removes the clip in slot one. Edge cases: empty slots return BAD_INPUT.

ParametersJSON Schema
NameRequiredDescriptionDefault
clip_indexYes
track_indexYes

TDQS

B3.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well by disclosing the destructive side effect ('deletes a clip in one Live undo step') and an edge case ('empty slots return BAD_INPUT'). It doesn't cover whether permissions are needed or whether associated data is removed, but the core behavioral traits are present.

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 three compact sentences, front-loading the core action and then adding side effects and edge cases. No wasted words, though the example sentence could be slightly more informative.

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 delete tool with no annotations and no output schema, the description covers the action, side effects, and an error condition. However, it leaves a significant gap in parameter semantics and does not explain return values or any prerequisites, so it is adequate but not complete.

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. It provides only an example ('delete_clip(0, 1) removes the clip in slot one') without explaining what track_index and clip_index mean, whether indexing is 0-based or 1-based, or how the parameters relate to Ableton's track/slot model.

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 ('Delete') and resource ('Session clip slot'), making it clear that this operates on session clips rather than arrangement clips. However, it does not explicitly name the sibling 'delete_arrangement_clip' to sharpen 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 Guidelines3/5

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

Usage is implied by the operation itself, and the edge case note about empty slots returning BAD_INPUT gives a constraint. But there is no explicit guidance on when to choose this tool over alternatives like clear_clip_notes or delete_arrangement_clip.

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

delete_cue_pointA

Delete a cue point by verified move-and-toggle.

Side effects: mutates the Set in one undo step and temporarily moves the playhead. Example: delete_cue_point(8.0) deletes a cue near beat eight. Edge cases: no cue at the time returns deleted: false; an Arrangement-grid snap is reversed and raises CUE_SNAPPED_TO_GRID.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeYes

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations present, the description carries the full behavioral burden and does so well: it discloses the mutation ('mutates the Set in one undo step'), the side effect on the playhead ('temporarily moves the playhead'), the no-op return case ('deleted: false'), and a named failure mode ('raises CUE_SNAPPED_TO_GRID'). This is exactly the kind of side-effect and error disclosure an agent needs before invoking a destructive operation.

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

Conciseness4/5

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

Front-loaded with the action and mechanism, then ordered side effects, example, and edge cases in a compact block with no filler sentences. 'Verified move-and-toggle' is mildly jargon-y but is immediately grounded by the concrete example.

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 mutation with no output schema and no annotations, the description covers side effects, failure modes, and the negative return case, which is nearly complete. It stops short of describing the successful return payload or idempotency/retry behavior after a CUE_SNAPPED_TO_GRID failure.

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 lone 'time' number parameter has no description), so the description must compensate. The example 'delete_cue_point(8.0) deletes a cue near beat eight' establishes that time is expressed in musical beats rather than seconds and that matching is approximate — meaningful information absent from the schema, though the tolerance/precision itself is left unspecified.

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 cue point') with an unambiguous target, and no sibling in the list performs this operation (create_cue_point and bulk_create_cue_points are additive). The added mechanism note ('verified move-and-toggle') further pins down what the operation actually does at the DAW level.

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

Usage Guidelines3/5

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

The description gives a concrete invocation example and edge-case behavior, which implies usage, but never states when to prefer this tool over related deletion tools such as delete_arrangement_clip, nor any prerequisites or when-not conditions. Usage is inferable but not explicit.

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

describe_instrumentA

Describe a track's instrument and what the user must still set up.

Side effects: none. Example: describe_instrument(60) returns the SWAM plugin's automatable parameters, or a setup_requests entry asking the user to press Configure when a plugin exposes none. Edge cases: a track without an instrument returns has_instrument: false with the request to load one.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_indexYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations are absent, so the description must carry the behavioral load. It explicitly states 'Side effects: none', gives a concrete example of the return shape (automatable parameters or setup_requests), and describes edge cases including has_instrument: false. It does not cover permissions, rate limits, or determinism, 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?

Front-loaded with the core action, then side effects, example, and edge cases in a compact, well-organized structure. 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?

For a one-parameter inspection tool with no output schema, the description covers purpose, side effects, example output, and edge cases. The main missing piece is guidance on where track_index comes from and how this relates to sibling inspection tools.

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% and the single parameter track_index is undocumented in the schema. The description's example uses track_index=60 but never explains the index's origin, range, or relation to other track-identifying tools, leaving a real 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 states a clear verb ('describe') and resource (a track's instrument) and adds the distinguishing scope of what the user must still set up. It is not a tautology. It does not explicitly name siblings like get_track_state or get_device_list to differentiate, so it falls 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?

The example and edge-case notes imply when the tool is useful (checking whether an instrument exists or needs setup), but there is no explicit when-to-use or when-not-to-use guidance and no named alternatives for similar queries such as get_track_state.

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

diagnose_clip_targetsA

Report which clips set_clip_color can and cannot reach.

Side effects: none; a read-only sweep of Session slots and Arrangement clips. Example: diagnose_clip_targets(0) inspects one track; diagnose_clip_targets() sweeps the whole Set. Edge cases: returns arrangement_supported: false and an inaccessible entry for a host that does not expose Track.arrangement_clips, instead of reporting zero Arrangement clips.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_indexNo

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations, the description carries the full load and does so: it declares 'Side effects: none; a read-only sweep', and discloses the edge-case behavior (returns arrangement_supported:false plus an inaccessible entry rather than reporting zero clips). This is exactly the behavioral context an agent needs before trusting the output.

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, then side effects, examples, and edge cases in a compact block. Every sentence earns its place, though the edge-case sentence is dense enough to slow a quick scan.

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

Completeness5/5

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

For a single-param read-only diagnostic with no output schema, the description covers purpose, safety, both call forms, and a non-obvious return edge case. Nothing an agent needs to invoke or interpret the tool 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 compensate, and it does: it explains that a supplied index inspects one track while the no-argument form sweeps the whole Set. That fully specifies the meaning and default behavior of the single optional parameter.

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 (report) and resource (clips reachable by set_clip_color), and ties itself to the sibling tool it supports. An agent can tell it apart from get_clip_info or get_arrangement_clips: this is a diagnostic reachability check, not a data fetch.

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 two examples give clear context for when to pass a track index versus sweep the whole Set, which effectively distinguishes a per-track check from a full-set audit. It doesn't explicitly say 'run this before set_clip_color', but the framing makes the intended workflow evident.

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

diagnose_midi_clipA

Scan a MIDI clip for overlapping notes, notes outside scale, and quantization issues.

Side effects: none. Example: diagnose_midi_clip(0, 0, "C", "major") checks scale conformance. Edge cases: audio clips return WRONG_TYPE; omitting scale skips pitch analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
clip_indexYes
scale_rootNo
scale_typeNo
track_indexYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does well by stating 'Side effects: none' and documenting edge cases like audio clips returning WRONG_TYPE and omitting scale skipping pitch analysis. It still does not describe the returned diagnostic structure, but the key safety and behavior context is present.

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

Conciseness5/5

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

The description is compact, front-loaded with the core action, and uses labeled lines for side effects, example, and edge cases. Every sentence adds useful information without redundancy.

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

Completeness3/5

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

For a tool with no annotations, no output schema, and 0% schema coverage, the description covers purpose and some edge cases but leaves return values and detailed parameter meaning undocumented. It is adequate but incomplete given the weak structured metadata.

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 partially does so through the example call and the note that omitting scale skips pitch analysis, but it does not explain what track_index and clip_index represent or what values scale_root and scale_type accept beyond the example.

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

Purpose5/5

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

The description uses a specific verb, 'Scan', names the exact resource, 'MIDI clip', and enumerates the diagnostics: overlapping notes, notes outside scale, and quantization issues. It also distinguishes itself from audio analysis by noting that audio clips return WRONG_TYPE.

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 example and edge cases imply when the tool is useful, but the description does not explicitly compare it to alternatives such as get_clip_notes, diagnose_clip_targets, or analyze_audio. Usage is inferable but not directly guided.

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

diff_snapshots_toolA

Compare two snapshots recursively on the MCP-server side.

Side effects: none; no socket call is made. Example: diff_snapshots_tool(old, new) reports changed paths. Edge cases: list entries are compared by position, not object identity.

ParametersJSON Schema
NameRequiredDescriptionDefault
snap_aYes
snap_bYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose key behavior: "Side effects: none; no socket call is made" and the edge case that lists are compared by position, not identity. These are genuinely useful traits not derivable from the schema. Return-format detail is thin, though the output schema covers that.

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, then labeled subsections (side effects, example, edge cases). It is efficient, though the fragmented "Example:/Edge cases:" labeling is slightly choppier than a flowing sentence would be.

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

Completeness4/5

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

An output schema exists, so return values need not be described, and the description still adds the changed-paths behavior. Combined with the explicit side-effect and comparison-semantics notes, this is nearly complete; only the upstream relationship to take_snapshot is left implicit.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. The example ``diff_snapshots_tool(old, new)`` hints at ordering (old vs new) and the params are clearly two snapshots, but the description does not define what a "snapshot" object should contain or how the two args differ. It partially compensates but leaves the parameter meaning under-specified.

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 ("Compare two snapshots") plus the scope qualifier "on the MCP-server side," and the example clarifies it "reports changed paths." It does not explicitly distinguish itself from the related take_snapshot sibling, so it falls short of the top mark.

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 agent can infer this runs over snapshots (presumably from take_snapshot), but no when-to-use, prerequisites, or named alternatives are given. The example supplies a calling pattern rather than guidance on 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.

duplicate_session_clip_to_arrangementA

Place a Session clip onto the Arrangement timeline at an exact beat.

Side effects: adds one Arrangement clip in one Live undo step. The Session clip stays where it is, and clip envelopes travel with the copy. Example: duplicate_session_clip_to_arrangement(38, 0, 468.0) drops slot one of track 38 at beat 468. Edge cases: an empty slot returns BAD_INPUT; a host without Track.duplicate_clip_to_arrangement returns CAPABILITY_UNAVAILABLE.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeYes
clip_indexYes
track_indexYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does so well: it discloses that it adds exactly one Arrangement clip in one undo step, that the Session clip is unchanged, that envelopes travel with the copy, and it names two error codes (BAD_INPUT for empty slot, CAPABILITY_UNAVAILABLE for unsupported hosts). It stops short of stating the successful return value or any permission requirements.

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 purpose, then cleanly sections side effects, an example, and edge cases. Every sentence carries information (undo semantics, envelope behavior, error codes) 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 mutation tool with no annotations and no output schema, the description covers purpose, side effects, a concrete example, and failure modes. The only meaningful gap is the success return value, which the absence of an output schema leaves slightly open.

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. The worked example maps each positional argument to a meaning — 38 = track, 0 = slot one (zero-based), 468.0 = beat — and 'at an exact beat' clarifies the time unit. This effectively documents all three parameters, though it does so by example rather than explicit per-parameter prose.

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: placing a Session clip onto the Arrangement timeline at an exact beat. This clearly distinguishes it from siblings like move_arrangement_clip, delete_arrangement_clip, and get_arrangement_clips, which operate on existing Arrangement clips rather than duplicating from a Session slot.

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 example and edge cases imply intended usage, but there is no explicit guidance on when to use this versus alternatives (e.g., fire_clip, create_clip, or move_arrangement_clip). Usage is demonstrated rather than framed, so it is adequate but leaves the routing decision to inference.

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

extract_single_cycleB

Find a candidate single-cycle loop in a local audio file plus its detected pitch.

Side effects: reads the file from disk. Example: extract_single_cycle(path="/stems/kick.wav") returns the detected pitch plus the single-cycle sample buffer. Edge cases: aperiodic content returns {"ok": False, "reason": ...} instead of crashing.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
frame_sizeNo

TDQS

B3.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does so reasonably: it discloses the side effect ('reads the file from disk'), states what is returned (detected pitch plus single-cycle sample buffer), and describes edge-case behavior (aperiodic content returns {ok: False, reason: ...} instead of crashing). It stops short of covering invalid paths or permission failures.

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, then side effects, example, and edge cases follow as labeled fragments. Every line carries signal and there is no filler, though the formatting is a bit terse and line-broken.

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

Completeness3/5

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

For a 2-param tool with no annotations or output schema, the description supplies return content and error behavior, which is helpful. However, the undocumented frame_size parameter and absence of any when-to-use guidance leave gaps an agent must guess around.

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 description only demonstrates 'path' through the example. The 'frame_size' parameter (default 2048) is never mentioned in the description, so an agent has no added meaning for what it controls or how it affects detection.

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 ('Find') and resource ('a candidate single-cycle loop in a local audio file plus its detected pitch'), so an agent knows exactly what comes out. It implicitly separates itself from session-state siblings by specifying 'a local audio file', but it never explicitly names a sibling alternative like analyze_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?

The concrete example (extract_single_cycle(path="/stems/kick.wav")) and the 'local audio file' framing imply the intended context, but there is no explicit when-to-use vs. when-not guidance and no reference to related tools like analyze_audio or the groove family.

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

find_frequency_maskingA

Identify frequency bands where target_path exceeds reference_path by threshold_db dB or more.

Side effects: reads both files. Example: find_frequency_masking(target_path=master, reference_path=kick) suggests band-level cuts. Edge cases: mismatched sample rates raise a structured error; identical paths are rejected at the model.

ParametersJSON Schema
NameRequiredDescriptionDefault
target_pathYes
threshold_dbNo
reference_pathYes

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does reasonably well: it discloses side effects (reads both files), an error path (mismatched sample rates raise a structured error), and a guard (identical paths are rejected). It stops short of describing the return payload or any performance/rate concerns.

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 core comparison is front-loaded, followed by succinct side-effect, example, and edge-case lines. Every line adds information, though the 'Side effects: reads both files' line is thin relative to its dedicated slot.

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 3-parameter, annotation-free tool with no output schema, the description covers inputs and error behavior but only vaguely gestures at the return ('suggests band-level cuts') without saying what data comes back. That leaves an agent unable to anticipate the response shape.

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 explains that target_path is compared against reference_path and that threshold_db is the dB margin (default 6 in schema) above which a band qualifies. The path parameters' expected content (e.g., file vs track identifiers) is still 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?

The description states a specific operation: identify frequency bands where target_path exceeds reference_path by threshold_db dB. The verb ('Identify') and resource ('frequency bands') are concrete and computable. It doesn't explicitly contrast with near-neighbour analysis tools like analyze_mix or analyze_audio, so it falls 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?

The worked example shows a concrete invocation, and edge cases note the failure modes, which implies when it applies. However there is no explicit when-to-use or when-not-to-use guidance versus alternatives, and no stated prerequisites beyond implied file paths.

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

fire_clipA

Fire an existing Session clip through its clip slot.

Side effects: launches playback in one undo-scoped command. Example: fire_clip(0, 1) launches slot one on track zero. Edge cases: empty or invalid slots are rejected.

ParametersJSON Schema
NameRequiredDescriptionDefault
clip_indexYes
track_indexYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the side effect ('launches playback in one undo-scoped command') and failure behavior ('empty or invalid slots are rejected'). It omits launch quantization/queuing semantics, but the safety-relevant behavior is covered.

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?

Four short labeled lines (purpose, side effect, example, edge cases) with the primary action front-loaded. Every sentence contributes something the agent cannot get from the schema.

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 return values need not be explained, and the description supplies purpose, side effect, example and failure modes for a simple two-parameter mutation. Adequate for this complexity level, with room only for launch-timing detail.

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 both params are bare integers, but the example 'fire_clip(0, 1) launches slot one on track zero' disambiguates argument order (track_index first, clip_index second) plus the numbering, which is the key ambiguity an agent would otherwise face.

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: 'Fire an existing Session clip through its clip slot.' This is enough to tell it apart from get_clip_info and fire_scene (a clip vs a scene), though it never names the nearest 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?

'Fire an existing Session clip' implies the launch use case and the precondition that the clip must exist, but there is no explicit when/when-not guidance or mention of alternatives such as fire_scene or start_playback. Usage is inferable rather than stated.

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

fire_sceneA

Fire one Session scene using Live's current launch quantization.

Side effects: triggers all playable clips in the selected scene. Example: fire_scene(0) launches the first scene. Edge cases: an out-of-range index returns INVALID_PARAMS.

ParametersJSON Schema
NameRequiredDescriptionDefault
scene_indexYes

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and largely succeeds: it discloses the side effect (triggers all playable clips in the selected scene), the timing behavior (uses current launch quantization), and the error case (out-of-range index returns INVALID_PARAMS). It omits reversibility and what happens on partially-empty scenes, keeping it 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?

Three tight sentences, each earning its place: purpose first, then side effects, then example and edge case. Front-loaded and scannable 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 single-parameter action tool with no annotations and no output schema, the description covers purpose, side effects, an example, and the failure mode. Near-complete; only the acceptable index range is left implicit.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. The example 'fire_scene(0) launches the first scene' does establish that the index is zero-based, which the bare integer schema does not convey, but range bounds and valid max are not given beyond the generic INVALID_PARAMS note.

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 (fire) plus resource (Session scene) and adds the launch-quantization qualifier, so the agent knows exactly what action occurs. It does not explicitly name the closely-related sibling fire_clip, but the resource distinction makes them separable.

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

Usage Guidelines3/5

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

Usage context is implied ('one Session scene') and reinforced by a concrete example, but there is no explicit when-to-use / when-not guidance and no reference to alternatives such as fire_clip or get_scenes for discovering valid indices.

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

get_ableton_logsA

Read the tail of the newest Ableton Log.txt on Windows.

Side effects: reads a local log file; it does not contact Live. Example: get_ableton_logs(50) returns the last fifty lines. Edge cases: returns a diagnostic string when no log can be located.

ParametersJSON Schema
NameRequiredDescriptionDefault
linesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the load and does well: it discloses the side effect (local file read, no Live contact) and the edge case (diagnostic string when no log is found). It omits permission requirements and any bound on read size beyond the example.

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 purpose, then side effects, a concrete example, and edge cases. Four short lines with zero filler; every sentence adds usable information.

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

Completeness5/5

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

For a single-optional-param, read-only diagnostic tool with an output schema already covering the return shape, the description supplies purpose, side effects, usage example, and failure behavior. Nothing needed 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% and the lone 'lines' parameter is undocumented in the schema, but the example get_ableton_logs(50) -> last fifty lines clearly conveys the parameter's meaning and unit. The default of 100 is only in 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 and resource (read the tail of the newest Ableton Log.txt) with a Windows platform scope. It also distinguishes itself from every sibling by clarifying it operates on a local file rather than the Live session.

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 'does not contact Live' note implies diagnostics use, but no explicit when-to-use condition or named alternative is given. An agent must infer that this is the fallback when the bridge/session tools fail.

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

get_arrangement_clipsA

List one track's Arrangement clips with their placement on the timeline.

Side effects: none. Example: get_arrangement_clips(3) returns each clip's start_time, end_time and length in beats, sorted by position. Edge cases: a host without Track.arrangement_clips returns CAPABILITY_UNAVAILABLE instead of an empty list.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_indexYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it declares 'Side effects: none', specifies the return fields (start_time, end_time, length in beats, sorted by position), and documents the CAPABILITY_UNAVAILABLE edge case rather than an empty list. It does not state permissions or pagination behavior, but for a local read tool the disclosure is above average.

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 cleanly separates Side effects, Example, and Edge cases. Every sentence earns its place, though the sectioned formatting is slightly more verbose than a single tight paragraph would be.

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

Completeness4/5

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

For a one-param read tool with no output schema, the description covers return shape, ordering, side effects, and a failure mode, which is close to complete. The remaining gap is how to obtain a valid track_index and the indexing convention.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate for the single required track_index. The example get_arrangement_clips(3) demonstrates that the argument is an integer track index, but it never explains what the index refers to (0- vs 1-based) or that it comes from get_track_list, leaving a real 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 ('List'), resource ('Arrangement clips'), scope ('one track's'), and the aspect returned ('their placement on the timeline'). The phrase 'Arrangement clips' distinguishes it from the many session-clip siblings (get_clip_summary, get_clip_info, get_clip_notes), so an agent can route correctly 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?

Usage is only implied by the tool's purpose; there is no explicit 'use this when…' or a named alternative such as get_clip_info for session clips. The agent can infer it is for inspecting a track's arrangement timeline, but no when-not or prerequisite guidance is given.

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

get_bridge_statusA

Probe the Live bridge and explain environment-specific connection failures.

Side effects: opens a loopback connection and performs one read-only session query. Example: get_bridge_status() distinguishes MCP discovery from Live availability. Edge cases: WSL NAT failures include a Windows-Python launcher hint.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does so well: it discloses side effects ('opens a loopback connection and performs one read-only session query'), implying a safe read operation, and flags an edge case (WSL NAT failures with a Windows-Python launcher hint). It omits anything about latency or failure semantics beyond the edge case.

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 followed by labeled 'Side effects', 'Example', and 'Edge cases' lines — every sentence earns its place with no padding. The labeled structure is compact and scannable.

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

Completeness4/5

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

An output schema exists, so return-value detail is unnecessary. For a zero-parameter diagnostic probe, purpose, side effects, and one edge case are sufficient to invoke it correctly; only alternative-routing guidance 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 schema-side burden is nil and the baseline is 4. The example call 'get_bridge_status()' confirms the no-argument invocation.

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

Purpose4/5

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

States a specific verb and resource — 'Probe the Live bridge' — and frames the goal as explaining connection failures, which is distinct from the session-data siblings like get_session_overview. It doesn't explicitly name a sibling, but the diagnostic intent 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 usage ('explain environment-specific connection failures', 'distinguishes MCP discovery from Live availability') but never states when to reach for it versus alternatives, nor any explicit when-not condition. Adequate but leaves the trigger context to inference.

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

get_browser_categoriesA

List top-level Live Browser categories available in this version.

Side effects: none. Example: get_browser_categories() returns category display names. Edge cases: version-specific missing categories are omitted.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full behavioral burden. It states 'Side effects: none' and documents edge cases (version-specific missing categories omitted), which is useful transparency for a read-only listing tool, though it does not discuss connection requirements or pagination.

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 cover purpose, side effects, return example, and edge cases with no filler. The purpose is front-loaded.

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

Completeness5/5

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

Given the tool's simplicity, no output schema, and no annotations, the description supplies enough context to call it correctly: it explains the return type and edge cases. The only missing piece is when-to-use guidance versus siblings, which is already penalized in usage_guidelines.

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?

There are zero input parameters, so the schema has no parameter semantics to convey. The description's example `get_browser_categories()` confirms the no-argument call, which is a minor addition beyond the empty schema.

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

Purpose4/5

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

The description states a specific verb ('List') and resource ('top-level Live Browser categories') and scopes it to the current version. It does not explicitly name alternatives such as search_browser or get_device_list, but the resource distinction 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 when-to-use guidance or alternatives are provided. The example shows how to call it, but it does not explain when an agent should choose this over search_browser or other browser-related tools.

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

get_clip_automationA

Read back one clip envelope as a sampled curve.

Side effects: none. Example: get_clip_automation(38, 0, "FILTER", resolution=0.5) returns the written shape so intent can be compared against reality. Edge cases: the LOM exposes no breakpoint list, so the answer is sampled at resolution beats; a parameter name shared by several devices returns AMBIGUOUS_MATCH unless device_index is given.

ParametersJSON Schema
NameRequiredDescriptionDefault
clip_indexYes
resolutionNo
track_indexYes
device_indexNo
parameter_nameYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations the description carries the full burden, and it does so well: it declares 'Side effects: none,' discloses that results are sampled at 'resolution' beats because the LOM exposes no breakpoint list, and warns that a duplicate parameter name yields AMBIGUOUS_MATCH unless device_index is supplied. Return shape is described only loosely ('sampled curve'), 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?

The core purpose is front-loaded in the first sentence, followed by labeled 'Side effects' and 'Edge cases' blocks and a compact example. Most sentences earn their place; the 'intent compared against reality' clause is slightly rhetorical but still useful framing.

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 read tool with no annotations and no output schema, the description covers side effects, sampling semantics, disambiguation, and an invocation example. It is complete enough to call correctly; only an explicit return-format description is missing, which is acceptable given the sampled-curve framing.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate, and it largely does: it clarifies resolution (sample spacing in beats), device_index (disambiguation under AMBIGUOUS_MATCH), and parameter_name (may be shared across devices). The positional example (38, 0, 'FILTER', resolution=0.5) implicitly documents track_index and clip_index order.

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: 'Read back one clip envelope as a sampled curve.' The read framing cleanly distinguishes it from siblings that write automation (create_clip_automation, create_clip_automation_curve) and from clip-metadata readers like get_clip_info or get_clip_notes.

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 gestures at usage via 'returns the written shape so intent can be compared against reality,' which implies a verification use case, but it never states when to prefer this over get_parameter_value, get_clip_info, or the read counterpart of the automation tools. Usage is implied rather than explicit, and there are no exclusions.

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

get_clip_infoA

Read stable metadata for one Session clip slot.

Side effects: none. Example: get_clip_info(0, 1) returns loop, type, color, and signature fields. Edge cases: empty slots return has_clip=false instead of an error.

ParametersJSON Schema
NameRequiredDescriptionDefault
clip_indexYes
track_indexYes

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it explicitly declares "Side effects: none", lists the returned fields (loop, type, color, signature), and discloses the empty-slot behavior of returning has_clip=false rather than erroring. It omits permission requirements and the shape/exact types of the return object, but the core behavioral profile is clear.

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?

Four tight lines, front-loaded with the purpose, then labeled Side effects / Example / Edge cases. Every sentence earns its place and nothing is padded.

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?

There is no output schema or annotation, so the description is the sole source of truth and does cover the safety profile, sample return fields, and the empty-slot edge case. It would be stronger if it named the index semantics and a representative return structure, but it is sufficient to call the tool correctly.

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% — neither parameter has a description — so the description must compensate. The example `get_clip_info(0, 1)` implies positional order but never states which argument is track_index vs clip_index, nor what valid ranges or addressing scheme apply. This leaves a real gap for a two-parameter lookup.

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 ("Read stable metadata for one Session clip slot") and the word "stable" hints at a distinction from mutable/derived views. However, it does not name sibling alternatives like get_clip_summary, get_clip_notes, or get_clip_automation, so the agent must infer which clip reader to pick.

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 agent gathers that this is the tool for slot-level metadata. There is no explicit when-to-use/when-not guidance against the many sibling clip tools, though the edge-case note (empty slots return has_clip=false) usefully tells the agent this call is safe to probe blind.

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

get_clip_notesA

Read MIDI notes from one Session clip.

Side effects: none. Example: get_clip_notes(0, 1) reads slot one on track zero. Edge cases: audio clips return WRONG_TYPE and empty slots return an empty list.

ParametersJSON Schema
NameRequiredDescriptionDefault
clip_indexYes
track_indexYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does well: it states 'Side effects: none,' documents an example invocation, and specifies concrete edge-case behavior (WRONG_TYPE for audio clips, empty list for empty slots). It doesn't state auth/permission needs or whether the operation requires the clip to be loaded/armed, but covers the key failure modes.

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

Conciseness5/5

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

Three compact lines: purpose, side effects, example, edge cases. No filler, front-loaded with the core purpose, and structured for fast scanning.

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

Completeness4/5

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

No output schema exists, so the description reasonably fills the gap by naming return behavior (MIDI notes, empty list, WRONG_TYPE). It could specify return shape (note fields: pitch, velocity, timing) to fully substitute for a missing output schema, but overall it is adequately complete for a simple two-param read 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 coverage is 0% with no param descriptions, so the description must compensate. The example 'get_clip_notes(0, 1) reads slot one on track zero' clarifies that the first arg is track_index and the second is clip_index, which is useful. It doesn't explain index origin (0-based confirmed by example) or valid ranges, and relies on a single example.

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

Purpose5/5

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

States a specific verb+resource+scope: 'Read MIDI notes from one Session clip.' It distinguishes itself from siblings like get_clip_info, get_clip_summary, and get_clip_automation by naming the exact return (MIDI notes) and the exact container (one Session clip).

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

Usage Guidelines3/5

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

The description implies the usage context (reading notes from a single clip) but doesn't state when to prefer this over get_clip_info, get_clip_summary, or diagnose_midi_clip. No explicit 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.

get_clip_summaryA

List Session clip slots and clip metadata for one track.

Side effects: none. Example: get_clip_summary(0) lists the first track's slots. Edge cases: return and master tracks produce WRONG_TYPE.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_indexYes

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden and does disclose the key traits: 'Side effects: none' establishes it as a safe read, and the edge case documents the WRONG_TYPE failure for return/master tracks. It stops short of describing return format or ordering, which would complete the picture.

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 line, followed by a labeled side-effects note, a concrete example, and an edge-case warning. Every sentence is short and load-bearing, with no redundant restatement of the tool name.

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

Completeness3/5

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

There is no output schema and no annotations, so the description is the only source of information. It covers purpose, safety, example, and one error case, but says nothing about what the returned slot/clip metadata contains or its ordering, leaving an agent guessing about the response shape for a listing 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?

Schema coverage is 0% and the lone parameter (track_index) has no schema description, so the description must compensate. The example 'get_clip_summary(0)' combined with 'lists the first track's slots' communicates that the argument is a zero-based track index, which is real semantic value beyond the bare integer type.

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) plus the resources (Session clip slots and clip metadata) and scope ('for one track'), so an agent can tell it enumerates clips on a track rather than returning a single clip. It does not explicitly differentiate itself from siblings like get_clip_info, get_clip_notes, or get_track_list, which keeps it just 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?

The example ('get_clip_summary(0) lists the first track's slots') implies intended usage and the edge case ('return and master tracks produce WRONG_TYPE') gives a partial when-not-to-use constraint. However, no sibling alternative is named for retrieving clip details versus a slot listing, so 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.

get_composition_structureB

Retrieve the full track layout, scene count, and composition properties.

Side effects: none. Example: get_composition_structure() returns tracks, scenes, unnamed tracks. Edge cases: large Sets produce correspondingly large JSON results.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose 'Side effects: none' (read-only) and warns that large Sets produce large JSON results, which is useful behavioral context, but it says nothing about output structure or size thresholds beyond the vague warning.

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 in the first sentence, followed by compact side-effect, example, and edge-case notes. Reasonably tight, though the example line restates the summary somewhat.

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 no-arg read tool with no output schema, the description adequately signals what comes back (tracks, scenes, unnamed tracks) and that results scale with Set size. It falls short on differentiating from the several read siblings that return overlapping data.

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 there is nothing for the description to clarify. Baseline 4 applies.

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 'Retrieve' with a specific resource: 'full track layout, scene count, and composition properties'. However, it does not distinguish itself from overlapping siblings like get_track_list, get_scenes, get_session_overview, and get_project_metadata, leaving the agent to guess which one to pick.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance is provided. Given the heavy overlap with get_track_list, get_scenes, and get_session_overview, the absence of any routing condition is a notable gap.

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

get_control_surfacesA

List MIDI Remote Scripts currently exposed by Live.

Side effects: none. Example: get_control_surfaces() confirms this script loaded. Edge cases: unavailable surfaces may be omitted by Live.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the burden and explicitly states 'Side effects: none' plus the edge case that unavailable surfaces may be omitted. That is meaningful behavioral disclosure for a read-only list 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?

Three compact sentences front-loaded with purpose, then side effects, example, and edge case. 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 zero-parameter, read-only discovery tool with no output schema, the description covers purpose, safety, example, and a relevant caveat. It does not describe the return shape, but that is the only notable gap.

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

Parameters4/5

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

Zero parameters, so baseline is 4. The description correctly implies no arguments via the empty call example, and no parameter semantics are needed.

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

Purpose5/5

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

States a specific verb and resource: list MIDI Remote Scripts exposed by Live. It is clearly distinguishable from session/device/track siblings because no other tool references control surfaces.

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 a concrete example use case ('confirms this script loaded') and notes that unavailable surfaces may be omitted, but provides no when-to-use vs alternatives or exclusions. Adequate but limited for a discovery tool.

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

get_device_chainsA

Open one rack and list its chains, their mixer state and inner devices.

Side effects: none. Example: get_device_chains(39, 0) reveals the four guitar chains and the volume of each, which get_device_list cannot show. Edge cases: a device that is not a rack returns WRONG_TYPE.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_indexYes
device_indexYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose useful behavior: 'Side effects: none' (read-only) and an edge case (a non-rack device returns WRONG_TYPE). It does not describe pagination or the exact return shape, but the safety and failure profile are covered.

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 purpose, then side effects, example, and edge cases in clearly labeled fragments. Every sentence adds value and nothing 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?

For a moderate read tool with no output schema and no annotations, the description covers purpose, read-only nature, error behavior, and a concrete example. The main gap is that the two undocumented parameters are only weakly explained via the example.

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% and the two parameters are undocumented in the schema, so the description must compensate. The example get_device_chains(39, 0) only implies argument order/roles (track_index, device_index) without explaining them, so compensation is partial.

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 ('list its chains, their mixer state and inner devices') and scopes it to 'one rack.' It explicitly contrasts with the sibling get_device_list, noting what that tool 'cannot show,' so an agent can distinguish them without opening either 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 names the alternative (get_device_list) and the reason to prefer this tool (chain-level and mixer-volume detail), plus a concrete example. It lacks explicit when-not-to-use conditions or prerequisites, but the routing 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_device_listA

List devices and parameter snapshots on one track.

Side effects: none. Example: get_device_list(0) returns device path-ids. Edge cases: special tracks may expose an empty device list.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_indexYes

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations present the description carries the full burden, and it does disclose key traits: explicit "Side effects: none," the return format ("returns device path-ids"), and a meaningful edge case about special tracks returning empty lists. It stops short of permissions or pagination, but for a simple read tool this is solid disclosure.

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

Conciseness5/5

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

Four short, labeled lines that are front-loaded with the purpose and each add distinct information (side effects, example, edge cases). 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 one-parameter read tool with no output schema or annotations, the description supplies the purpose, safety profile, sample return shape, and an edge case. The only gap is that the sole parameter's meaning is left partially implicit.

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% and the single parameter track_index is undocumented in the schema. The example "get_device_list(0)" implicitly conveys that it is a zero-based track index, but no explicit semantics, valid range, or relationship to other track identifiers is given.

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

Purpose4/5

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

States a clear verb and resource ("List devices and parameter snapshots") scoped to a single track. An agent can identify the operation, though the phrase "parameter snapshots" slightly blurs the line with the sibling list_device_params, and no sibling is named to disambiguate.

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 phrase "on one track" hints at scope, but there is no explicit when-to-use guidance, no prerequisites, and no routing to alternatives such as list_device_params, get_device_chains, or get_track_list. The agent must infer selection from the name alone.

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

get_locatorsA

List Arrangement cue points with names and beat times.

Side effects: none. Example: get_locators() returns [{"name": "Verse", "time": 8.0}]. Edge cases: Live beat-time objects are serialized as floats.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: 'Side effects: none' establishes the read-only profile, the example shows the return shape, and the edge case about Live beat-time objects serializing as floats is a genuinely useful implementation detail. It does not cover pagination or whether very large cue lists are truncated, but for a zero-argument read tool this is solid disclosure.

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

Conciseness5/5

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

Three short labeled segments (purpose, side effects, example, edge case) that are front-loaded and waste-free; each sentence adds information an agent would otherwise have to guess.

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 carry the return contract, and it does so with a concrete example object and the float-serialization caveat. Combined with the clean side-effect statement, nothing needed to call and interpret this tool 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 nothing for the description to clarify or compensate for on this dimension.

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 ('List') and resource ('Arrangement cue points') plus the payload ('names and beat times'), which cleanly separates it from the mutating cue-point siblings (create_cue_point, bulk_create_cue_points, delete_cue_point). An agent can identify it 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 Guidelines3/5

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

Usage is implied by 'List Arrangement cue points' and the read-only framing, but the description never says when to reach for this versus get_arrangement_clips, get_composition_structure, or the cue-point creation tools. No explicit alternatives or exclusions are given.

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

get_loop_settingsB

Read Arrangement loop enablement, start, and length.

Side effects: none. Example: get_loop_settings() returns loop geometry in beats. Edge cases: values can change with user interaction during a session.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose 'Side effects: none' plus the useful edge case that values can change with user interaction during a session. It adds nothing about permissions, caching, or refresh/polling behavior, so it is only partially complete for an annotation-free 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-loaded with the purpose and organized under clear labels (Side effects, Example, Edge cases). The Example line is nearly redundant for a zero-argument call, a small amount of padding against an otherwise tight structure.

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

Completeness4/5

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

For a simple, zero-parameter tool with no output schema and no annotations, the description usefully states the return content ('loop geometry in beats'), the safety profile ('Side effects: none'), and a behavioral caveat. It is complete enough to call correctly, missing only the read-only confirmation an annotation would normally supply.

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 there is nothing to disambiguate and the baseline is 4. The description does not introduce parameter concepts that could mislead.

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 ('Read') and precise resource ('Arrangement loop enablement, start, and length'), so the agent knows exactly what is returned. It implicitly contrasts with the write siblings (set_loop, set_loop_start, set_loop_length) but never names the distinction, so it falls short of the 5 bar for explicit 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 Guidelines2/5

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

There is no guidance on when to use this versus the many read siblings (get_scenes, get_track_state, get_locators) or versus the set_loop* writers. The example just restates a parameterless call rather than explaining a scenario that selects this tool.

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

get_midi_chain_reportA

Report the MIDI effects that rewrite what a clip says, before writing one.

Side effects: none. Example: get_midi_chain_report(58) reveals that a Note Length device overrides every written duration and which parameter actually controls it. Edge cases: a track with no such device returns rewrites_input: false.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_indexYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose the key traits: 'Side effects: none' (safe read), the edge-case return value rewrites_input: false for tracks without such a device, and a worked example of what the report surfaces. It omits connection/permission requirements and any timing or rate considerations.

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 purpose sentence followed by labeled Side effects, Example, and Edge cases lines. Every sentence carries distinct information and nothing is padded.

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 does its part by naming the rewrites_input field and explaining the Note Length scenario. Rewriting the response shape and the index convention would make it fully self-sufficient for a one-parameter read 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% for the single required track_index integer, so the description must compensate. The example get_midi_chain_report(58) confirms an integer index is expected, but it never clarifies whether the index is zero-based or what ordering it indexes into, leaving a real gap for a required parameter.

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 (report) and a narrowly defined resource: MIDI effects that rewrite clip input. The phrase 'rewrite what a clip says' plus the Note Length example makes the scope concrete enough to separate it from generic siblings like get_device_chains or list_device_params, though it does not name those alternatives directly.

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 timing cue ('before writing one'), which implies it should be consulted prior to add_notes_to_clip or clip creation so written durations aren't silently overridden. It stops short of naming an explicit alternative tool or a when-not-to-use condition.

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

get_parameter_valueA

Read a named device parameter and its bounds.

Side effects: none. Example: get_parameter_value(0, 0, "Device On") reads a top-level parameter; get_parameter_value(4, 1, "Out Low", chain_index=0, chain_device_index=0) reads one nested inside a rack chain. Edge cases: names are exact and missing parameters return INVALID_PARAMS. chain_index without chain_device_index addresses the chain's mixer, which exposes only volume and panning.

ParametersJSON Schema
NameRequiredDescriptionDefault
chain_indexNo
track_indexYes
device_indexYes
parameter_nameYes
chain_device_indexNo

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses 'Side effects: none', describes the return of bounds, and explains an edge case where missing parameters return INVALID_PARAMS. It doesn't discuss authentication or performance, but for a read operation the disclosed behavior is substantial.

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

Conciseness4/5

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

The description is front-loaded with purpose and side effects, followed by concise examples and edge cases. It is slightly long due to the examples, but each section earns its place by disambiguating complex nested parameters.

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 tool with no output schema and no annotations, the description covers purpose, side effects, parameter usage, and critical edge cases. It is nearly complete, though it could mention the return format or whether bounds are always returned.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It provides concrete examples showing how track_index, device_index, chain_index, chain_device_index, and parameter_name are used, including the behavioral nuance that chain_index alone addresses a chain mixer with limited parameters. This adds significant meaning beyond the bare schema.

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

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 ('Read a named device parameter and its bounds'), which clearly distinguishes it from the sibling set_parameter_value and other get_* tools. The purpose is unambiguous and scoped to exactly one operation.

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 examples show how to call the tool for top-level and nested parameters, which implies when to use it, but there is no explicit guidance on when to use this tool versus list_device_params or get_selected_context. The context is clear enough to infer, but alternatives are not named.

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

get_plugin_presetsA

List a VST/VST3/AU plugin's presets and report its Configure state.

Side effects: none. Example: get_plugin_presets(2, 2) returns the preset names plus selected_preset_index for the plugin on track two. Edge cases: native Live devices return WRONG_TYPE; a plugin whose parameters were never added through Live's Configure button reports plugin_state.hint = "PLUGIN_NOT_CONFIGURED".

ParametersJSON Schema
NameRequiredDescriptionDefault
track_indexYes
device_indexYes

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and largely meets it: 'Side effects: none' declares the read-only nature, and the error codes (WRONG_TYPE, PLUGIN_NOT_CONFIGURED) disclose failure behavior beyond the schema. It omits prerequisites such as the Live bridge needing to be running and any notes on result size for plugins with many presets.

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 purpose sentence, then labeled Side effects / Example / Edge cases sections, each earning its place with distinct information. No filler or restatement of the name.

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

Completeness4/5

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

Without an output schema or annotations, the description steps in by naming return fields (preset names plus selected_preset_index) and enumerating error states. The remaining gap is index resolution — which base the indices use and how to discover device_index for a track.

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 both parameters (track_index, device_index) are undescribed in the schema, so the description must compensate. The example get_plugin_presets(2, 2) implies the first argument is the track, but the indexing base (0- vs 1-based) is ambiguous, the device_index semantics are never explained, and there is no pointer to how to obtain a valid device index.

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 ('List a VST/VST3/AU plugin's presets') plus an extra output facet ('report its Configure state'), which clearly separates it from set_plugin_preset and list_device_params. It does not explicitly name a sibling to contrast with, but an agent can still route correctly.

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 edge-case section gives an effective when-not condition: native Live devices return WRONG_TYPE and unconfigured plugins report PLUGIN_NOT_CONFIGURED, so the agent knows which inputs won't work. It stops short of naming an alternative to use instead (e.g. set_plugin_preset or browser search) for those cases.

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

get_project_metadataA

Read Set name, file path, and dirty state.

Side effects: none. Example: get_project_metadata() identifies the loaded Set. Edge cases: unsaved Sets can have an empty file path.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior4/5

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

No annotations are provided, so the description carries the behavioral burden, and it does disclose 'Side effects: none,' making the read-only nature explicit. It also surfaces a non-obvious edge case (unsaved Sets have an empty file path), which is genuinely useful behavioral context, though it says nothing about error or return semantics.

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?

It is front-loaded with the payload before side effects, examples, and edge cases, and every sentence adds some value. The example line ('get_project_metadata() identifies the loaded Set') is mildly redundant with the opening sentence and could be trimmed.

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?

There is no output schema, so the description must cover returns, and it does by enumerating the three fields (name, path, dirty state) plus the unsaved-Set edge case. It would be stronger if it distinguished the returned data from the overlapping get_session_* siblings, but for a zero-param read it is otherwise complete.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4 and there is no parameter behavior the description could clarify. The schema's empty object is self-explanatory and the description correctly implies a callable-with-no-args operation.

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 verb ('Read') and the exact fields returned (Set name, file path, dirty state), so the resource and payload are unambiguous. It does not, however, differentiate itself from overlapping siblings like get_session_overview or get_session_info, which likely also expose project/session identity data.

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 only usage signal is the example 'get_project_metadata() identifies the loaded Set,' which implies a scenario but gives no explicit when-to-use, when-not, or alternatives. With several sibling introspection tools (get_session_info, get_session_overview, get_selected_context) available, the absence of routing guidance is a real gap.

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

get_routingA

Read input and output routing labels for one track.

Side effects: none. Example: get_routing(0) reports the first track's routes. Edge cases: unavailable routes are returned as empty strings.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_indexYes

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does so well: it explicitly declares 'Side effects: none' and documents a real edge case (unavailable routes returned as empty strings). It stops short of describing return structure beyond the label concept, but the key behavioral traits are disclosed.

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?

Four short lines, each earning its place: purpose first, then side effects, a concrete example, and edge-case behavior. Front-loaded and waste-free.

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 read tool with no output schema, the description supplies an example and edge-case behavior, which is sufficient to call it correctly. The main residual gap is the absence of any detail on the shape of the returned routing labels.

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 integer track_index is undocumented in the schema. The example 'get_routing(0) reports the first track's routes' implies a 0-based track index, adding meaningful interpretation, but does not define valid range or behavior for out-of-range indices.

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 ('Read input and output routing labels') with a clear scope ('for one track'). No sibling tool handles routing, so it is naturally distinguishable, though it never explicitly contrasts itself with the many other get_* readers such as get_track_state or get_track_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 by the purpose and the example call, and the 'for one track' scope clarifies the granularity, but there is no explicit when-to-use or when-not-to-use guidance and no mention of alternatives to consult instead.

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

get_scenesA

List Session View scenes and whether each scene is empty.

Side effects: none. Example: get_scenes() returns scene indexes and names. Edge cases: a scene is non-empty when any contained slot has a clip.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations available, the description carries the full burden and does well: 'Side effects: none' explicitly declares the read-only profile, and the edge-case sentence defines exactly what non-empty means ('any contained slot has a clip'). It stops short of stating ordering, count, or whether empty scenes are still returned, which would round out the 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?

Four short, labeled sentences: purpose first, then side effects, then an example, then edge cases. Nothing is redundant and the most important information is front-loaded.

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

Completeness4/5

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

No output schema exists, so the description reasonably steps in by describing the return content (scene indexes and names) and the emptiness semantics. It is nearly complete for a zero-argument read tool, missing only ordering and how many scenes are returned.

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 per the rubric the baseline is 4. The schema is trivially empty and the description correctly does not invent parameter semantics; there is nothing further needed 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?

States a specific verb and resource ('List Session View scenes') plus the extra output dimension (emptiness), so an agent knows exactly what it returns. It does not, however, differentiate itself from the close sibling get_scene_state, leaving the boundary between 'list all scenes' and 'scene detail' to inference.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance, and the very relevant sibling get_scene_state is never mentioned as the alternative for per-scene detail. Usage is only implicit from the tool name, which the description neither reinforces nor qualifies.

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

get_scene_stateB

Read one scene and its per-track clip-slot summary.

Side effects: none. Example: get_scene_state(0) inspects the first scene. Edge cases: an invalid scene index returns INVALID_PARAMS.

ParametersJSON Schema
NameRequiredDescriptionDefault
scene_indexYes

TDQS

B3.3/5.0
Behavior4/5

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

No annotations provided, so the description carries full burden. It correctly states 'Side effects: none' (a read operation) and the error behavior ('invalid scene index returns INVALID_PARAMS'). This covers the key behavioral facts an agent needs. Missing detail on rate limits or return format, but strong for a read-only 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?

Four short, front-loaded lines with no waste. The example and edge case are useful, not filler. Slightly fragmented structure (labeled lines) but each 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-param read tool with no output schema, the description covers purpose, side effects, an example, and error behavior. The main miss is not clarifying indexing semantics or the parameter explicitly, and not distinguishing from get_scenes.

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 single parameter (scene_index) is undocumented in the schema. The description helps indirectly: the example 'get_scene_state(0) inspects the first scene' implies 0-based indexing, and the edge case mentions invalid indices. However, it never states the parameter name, type, or that it's required. Partial compensation but a clear 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?

Clear specific verb+resource: 'Read one scene and its per-track clip-slot summary.' An agent understands exactly what it gets. Doesn't explicitly differentiate from siblings like get_scenes (plural) or get_clip_summary, but the singular-scene scope is reasonably inferable.

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

Usage Guidelines2/5

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

No when-to-use guidance or alternatives named. The example shows a call but not when to prefer this over get_scenes. An agent must infer the distinction. This is a significant gap given the large sibling set containing get_scenes.

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

get_selected_contextA

Read the currently selected track, scene, and device.

Side effects: none. Example: get_selected_context() returns selected path-ids. Edge cases: absent selections use null or index -1.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden, and it does add real behavioral context: 'Side effects: none' declares the safety profile, and the edge-case note (absent selections return null or index -1) is exactly the kind of return-value behavior an agent needs. It doesn't describe output shape, but the empty input schema and no-param nature limit what else is required.

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?

Three short sentences, front-loaded with the purpose, then side effects and edge cases. Each sentence earns its place, though the 'Example:' framing adds little beyond restating the call signature.

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

Completeness3/5

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

For a zero-param read tool with no output schema, the description covers purpose, safety, and edge cases, but the absence of any output shape or field list is a gap since there is no output schema to fall back on, and it should say which ids/values are returned.

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 no parameter documentation is needed; the baseline is 4. The description correctly implies the tool is driven entirely by the current selection rather than arguments.

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

Purpose4/5

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

States a specific verb+resource: reads the currently selected track, scene, and device. This is clearer than the generic sibling names (e.g. get_track_state, get_scene_state), but it doesn't explicitly distinguish itself from those siblings, 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 Guidelines2/5

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

No when-to-use guidance and no alternatives named. An agent cannot tell from the description whether this is preferable to get_scene_state/get_device_list for retrieving the same objects.

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

get_session_infoA

Read top-level transport and time-signature state.

Side effects: none. Example: get_session_info() returns tempo and playhead state. Edge cases: fails when the Remote Script is unavailable.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does reasonably well: it declares 'Side effects: none', gives a concrete example call, and discloses an edge case (fails when the Remote Script is unavailable). It stops short of describing the exact return shape, but the behavioral profile is well covered for a read 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?

Four short, front-loaded lines that each earn their place: purpose first, then side effects, example, and edge cases. No padding or redundancy.

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

Completeness4/5

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

There is no output schema, so the description must convey return values, and the example ('returns tempo and playhead state') partially does so. It is adequate for a simple 0-param read tool, though a fuller enumeration of returned fields would close the remaining gap.

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

Parameters4/5

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

The tool takes zero parameters, so there are no parameter semantics to document; the baseline of 4 applies. The description correctly implies a no-argument invocation via the empty example call.

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 ('Read') and resource ('top-level transport and time-signature state'), so the agent knows exactly what it retrieves. It does not, however, distinguish itself from close siblings like get_session_overview or get_bridge_status, leaving overlap for the agent to infer.

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

Usage Guidelines2/5

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

There is no guidance on when to prefer this over the many sibling state readers (get_session_overview, get_bridge_status, get_loop_settings). The only conditional information is a failure edge case, not a usage routing rule.

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

get_session_overviewA

Compose a compact Session snapshot from three existing read tools.

Side effects: none; performs three read-only TCP bridge calls. Example: get_session_overview() returns session, tracks, and scenes. Edge cases: a bridge failure is returned by the corresponding component read.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does a solid job: it discloses side effects ('none; performs three read-only TCP bridge calls') and error behavior ('a bridge failure is returned by the corresponding component read'). It does not describe latency or partial-failure semantics beyond that, but the safety and failure profile is well 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 purpose, then side effects, an example, and edge cases in clearly separated sentences. Every line earns its place, though the example line is mildly redundant given the output schema.

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?

An output schema exists, so the description needn't explain return values, and it correctly focuses on side effects and failure behavior. For a zero-param read-only aggregator this is nearly complete; only the relationship to the individual sibling calls is left implicit.

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 the baseline is 4. The description adds no param information, but none is needed.

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 ('Compose a compact Session snapshot') and names the components returned (session, tracks, scenes), which maps to the sibling tools get_session_info, get_track_list, and get_scenes. The agent can tell it is an aggregator rather than a primitive, 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?

The phrase 'from three existing read tools' implies the tool is a convenience aggregator, hinting that it replaces three separate calls. However, there is no explicit when-to-use vs when-to-prefer-the-individual-calls guidance, so the agent must infer the tradeoff.

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

get_song_lengthA

Read the derived Arrangement song length in beats.

Side effects: none. Example: get_song_length() returns {"song_length": 64.25}. Edge cases: the LOM property is read-only; no setter tool exists.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden, and it does disclose that there are no side effects and that the LOM property is read-only with no setter. It also gives a concrete return example, though it says nothing about auth or failure modes.

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

Conciseness5/5

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

The core purpose is front-loaded in the first sentence, followed by tightly labeled side-effect, example, and edge-case notes. Every sentence adds information an agent can use, with no 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 simple no-argument read with no output schema, the description supplies the return shape and value type via example plus the read-only constraint, which is everything needed to call it correctly.

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

Parameters4/5

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

The tool takes zero parameters, so the schema provides complete coverage and there is nothing for the description to clarify. Baseline 4 applies for a parameterless 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 description states a specific verb and resource: read the derived Arrangement song length in beats. That is unambiguous and distinct from most siblings, but it does not explicitly contrast itself with any related tool (e.g. get_loop_settings), 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 only implied by the read verb; there is no statement of when to prefer this tool over alternatives or any prerequisite context. The read-only framing hints at its role but is not real 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.

get_track_listA

List regular, return, and master tracks with session path-ids.

Side effects: none. Example: get_track_list() returns [{"id": "track:0", ...}]. Edge cases: path-ids must be refreshed after structural track changes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it explicitly declares 'Side effects: none' and warns that path-ids go stale after structural track changes, a real behavioral caveat. It stops short of describing ordering, pagination, or completeness of the returned list.

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?

Four short, front-loaded lines: purpose first, then side effects, example, and edge case. Every sentence 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?

For a zero-parameter read tool with no output schema, the description supplies a return-shape example, a side-effect statement, and a staleness caveat, which is nearly everything an agent needs. Only return ordering/field detail is left to inference.

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 there is nothing to disambiguate and the baseline of 4 applies. The schema coverage is 100% and the description adds no parameter claims that could mislead.

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 ('tracks'), and narrows the scope to regular, return, and master tracks plus the session path-ids it returns. It does not explicitly name the sibling it differs from (e.g. get_track_state, get_session_overview), so it falls 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 only implied: the mention of session path-ids and the note that they must be refreshed after structural track changes hints at when the call is needed, but there is no explicit when-to-use or when-to-prefer-an-alternative guidance against siblings like get_track_state or get_session_overview.

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

get_track_stateA

Read mixer, device, and Session clip-slot state for one track.

Side effects: none. Example: get_track_state(0) inspects the first track. Edge cases: an out-of-range index returns INVALID_PARAMS.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_indexYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does meaningful work: it declares 'Side effects: none' and specifies the error contract (out-of-range index returns INVALID_PARAMS). What is missing is any hint about the shape or size of the returned state, which matters since there is no output schema.

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

Conciseness5/5

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

Four short lines, front-loaded with purpose, then labeled Side effects, Example, and Edge cases. Every sentence conveys distinct information with no repetition or filler.

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

Completeness4/5

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

For a one-parameter read tool with no annotations and no output schema, the description covers purpose, safety profile, indexing convention, and error behavior. The remaining gap is that it never characterizes the returned state payload beyond naming the three state categories.

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% for the single track_index parameter, so the description must compensate, and it does: the example get_track_state(0) 'inspects the first track' resolves the 0-based vs 1-based ambiguity, and the out-of-range/INVALID_PARAMS note defines the valid domain.

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 (Read) plus a precisely enumerated resource: mixer, device, and Session clip-slot state, scoped to 'one track'. That scope immediately separates it from list-style siblings such as get_track_list and session-wide siblings such as get_session_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?

Usage is only implied by the resource description; there is no explicit when-to-use or when-not-to-use guidance, and no sibling is named as an alternative (e.g. get_track_list for enumeration vs. this for detailed state). The worked example hints at the typical call but does not set routing conditions.

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

get_warp_stateA

Retrieve warping status, warp mode, and warp markers of an audio clip.

Side effects: none. Routed via the Extension Host WebSocket bridge. Example: get_warp_state(1, 0) reads warp data from track 1, clip 0. Edge cases: requires the AbletonMCPServer Extension to be installed.

ParametersJSON Schema
NameRequiredDescriptionDefault
clip_indexYes
track_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the burden well: it declares 'Side effects: none', explains routing through the Extension Host WebSocket bridge, and states the prerequisite that the AbletonMCPServer Extension must be installed. It omits return-shape and error behavior, but the output schema covers returns.

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

Conciseness4/5

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

The purpose is front-loaded in the first sentence, followed by clean labeled sections for side effects, example, and edge cases. Every line earns its place with minimal 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 two-parameter read tool with an output schema, the description covers purpose, safety, invocation, and prerequisite. The only real gap is index-base/validity guidance, which is minor given the example and output schema.

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

Parameters3/5

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

Schema coverage is 0% so the description must compensate. The example 'get_warp_state(1, 0) reads warp data from track 1, clip 0' maps both required positional parameters to meaning, which adds real value, but it never states index base or valid ranges.

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

Purpose5/5

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

States a specific verb ('Retrieve') and resource ('audio clip') and enumerates exactly what is returned: warping status, warp mode, and warp markers. The read-only scope clearly complements the sibling set_warp_state without needing to name it.

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 example shows invocation and the sibling set_warp_state implies this is the read counterpart, but there is no explicit statement of when to use this rather than alternatives or what preconditions select it. 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.

groove_applyB

Preview or explicitly commit one mapped groove to one empty clip slot.

Side effects: preview is offline; commit performs one guarded Live batch. Example: groove_apply(..., mode="preview") returns a bounded receipt. Edge cases: rights, mapping, capability, epoch, and slot races are explicit.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNopreview
clip_indexYes
artifact_idYes
track_indexYes
schema_versionYes
source_channelNo
source_track_indexNo
expected_empty_slotNo
kit_mapping_profileYes

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does add real value: preview is offline while commit performs one guarded Live batch, and it flags rights/mapping/capability/epoch/slot-race edge cases. But 'are explicit' is opaque, and it omits reversibility, permission/rights prerequisites, and what the guarded batch can modify beyond the target slot.

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?

Four short sentences, front-loaded with the action and side effects, and the inline mode example is useful. The final 'edge cases ... are explicit' sentence is vague filler that consumes space without conveying actionable detail.

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 complex 9-param mutation tool with no annotations and no output schema, the description covers the critical side-effect asymmetry (offline preview vs guarded commit) but leaves parameter meanings and the shape of the returned 'bounded receipt' largely unexplained. It is partially complete rather than adequate end-to-end.

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 9 parameters. The description only clarifies mode (preview/commit) and gestures at the target slot; artifact_id, kit_mapping_profile, schema_version, source_channel, source_track_index, and expected_empty_slot remain completely undocumented in both schema and prose. For a 9-param tool it does not compensate for the coverage 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?

States a specific verb (apply) and a precisely scoped resource (one mapped groove to one empty clip slot), and disambiguates the two modes (preview vs commit). It is distinguishable from siblings like groove_generate, groove_search, and groove_compare, though it never names those alternatives 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 preview/commit split implies a safe preview-first workflow, and the default mode=preview reinforces this. However, it gives no explicit when-to-use/when-not guidance and never routes the agent to a sibling tool (e.g. when to search vs apply a groove). 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.

groove_compareB

Compare bounded cards and projections without exposing event payloads.

Side effects: none; this is an offline deterministic read. Example: groove_compare(artifact_ids=["ga1_...", "ga1_..."], metrics=["features"]). Edge cases: incompatible projection sets remain explicit in compatibility.

ParametersJSON Schema
NameRequiredDescriptionDefault
metricsYes
normalizeNo
artifact_idsYes
schema_versionYes

TDQS

B3.2/5.0
Behavior4/5

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

The description explicitly states 'Side effects: none; this is an offline deterministic read', which fully clarifies behavior. It also notes that 'incompatible projection sets remain explicit in compatibility', adding useful behavioral context about error handling. With no annotations, the description carries the burden and does so well, though it doesn't detail output format or error specifics.

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

Conciseness4/5

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

The description is concise and front-loaded with the core purpose. It includes an example and edge case note without excessive verbosity. The side effect statement is brief, and every sentence serves a purpose, though the example could be considered slightly redundant given the schema.

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

Completeness2/5

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

Given that the tool has 4 parameters (3 required) with 0% schema description coverage and no output schema, the description is incomplete. It fails to explain the required parameters, their expected formats, or what the comparison returns. The mention of compatibility is helpful but not sufficient for an agent to invoke the tool correctly.

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

Parameters1/5

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

With 0% schema description coverage and 4 parameters, the description provides no information about parameter semantics. The example shows two parameters but doesn't explain the meaning, constraints, or usage of 'schema_version', 'normalize', or the exact format of 'metrics' and 'artifact_ids'. The schema itself is underspecified, and the description does not compensate.

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: 'Compare bounded cards and projections'. This is clearly distinct from siblings like groove_search, groove_generate, and groove_apply. The concept of 'bounded cards and projections' is somewhat jargon-heavy but sufficiently specific to identify the operation.

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 an example and mentions handling incompatible projection sets, but does not explicitly state when to use this tool versus alternatives like groove_search (retrieval) or groove_evidence (evidence gathering). Usage context is implied through the operation type, but explicit guidelines are absent.

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

groove_evidenceB

Return bounded provenance and projection evidence for one artifact.

Side effects: none; this is an offline deterministic read. Example: groove_evidence(artifact_id="ga1_..."). Edge cases: raw notes, payloads, paths, and SQL are never returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
query_hashNo
artifact_idYes
schema_versionYes
include_projectionsNo

TDQS

B3.3/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and delivers real value: 'Side effects: none; this is an offline deterministic read' plus an explicit redaction boundary ('raw notes, payloads, paths, and SQL are never returned'). It still omits the shape of what is returned and any auth/permission notes, so it is not complete.

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?

Four short labeled lines — purpose, side effects, example, edge cases — front-loaded with the purpose. Every line adds information and nothing is padded.

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 4-param tool with no annotations and no output schema, the description covers purpose, safety profile, redaction, and a call example, but leaves return shape and three of four parameters undocumented. Adequate but with material gaps.

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% across four parameters, so the description must compensate, but it only exercises artifact_id in the example. query_hash, schema_version, and especially include_projections (whose enum values drive the response) are left entirely unexplained.

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 (return) and resource (bounded provenance and projection evidence for one artifact), and the artifact_id pattern 'ga1_...' ties it to a concrete object. However, 'provenance and projection evidence' is jargon that an agent must infer means audit/traceability data, so it is clear but not maximally sharp against siblings.

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

Usage Guidelines2/5

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

No when-to-use statement or relationship to alternatives (groove_generate, groove_compare, groove_apply, groove_search) is given. The only operational cue is 'offline deterministic read,' which does not tell the agent when this tool is the right choice versus another groove tool.

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

groove_generateA

Create a deterministic derived artifact in the local content store.

Side effects: writes only a content-addressed local artifact; never calls Live. Example: groove_generate(source={"artifact_id": "ga1_..."}, transforms={}, bars=4, seed=7). Edge cases: rights, bounds, and unknown transform axes fail explicitly.

ParametersJSON Schema
NameRequiredDescriptionDefault
barsYes
seedYes
sourceYes
providerNodeterministic
transformsYes
schema_versionYes
reference_artifact_idsNo

TDQS

A3.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does meaningful work: it declares the write scope ('writes only a content-addressed local artifact'), states it never touches the Live host, asserts determinism, and names failure classes (rights, bounds, unknown transform axes fail explicitly). It still omits whether the run is expensive, whether artifacts are immutable/deduplicated, and what a successful call returns.

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, followed by side effects, a call example, and failure modes in four tight lines with no filler. Each sentence adds distinct information for an agent deciding whether and how to call it.

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 nested-object tool with no annotations and no output schema, the description covers purpose, side effects, an example and failure modes, but leaves three parameters and the entire return value (presumably an artifact id the agent needs for downstream groove_apply/groove_compare calls) undocumented. Adequate, but gaps remain that matter for chaining.

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% across 7 parameters (5 required, one nested object), so the description must compensate. The worked example usefully pins down the shapes of source (an object keyed by artifact_id) and transforms (a map), but provider, schema_version and reference_artifact_ids are never explained, and the enum choice between deterministic and neural goes unmentioned despite the description's blanket claim of determinism.

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: 'Create a deterministic derived artifact in the local content store.' An agent can distinguish this from read/inspect siblings such as groove_search, groove_evidence and groove_compare. It does not, however, differentiate itself from the other generators (music_generate_drum_groove, music_generate_bass, groove_apply), leaving ambiguity about which generation tool to pick.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance, no prerequisites (e.g., must a source artifact exist first?), and no named alternative among the many groove_* and music_generate_* siblings. The 'never calls Live' remark constrains scope but is not usage guidance for choosing this tool over groove_apply or music_generate_drum_groove.

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

lifecycle_statusA

Read Live save/quit API availability and return a GUI-workflow fallback.

Side effects: none. Example: lifecycle_status() reports song_save_available and app_quit_available. Edge cases: missing Live APIs degrade to False flags; never raises.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does a decent job: 'Side effects: none', 'never raises', and 'missing Live APIs degrade to False flags' are concrete behavioral disclosures. It does not discuss permissions or timing/latency, but for a zero-arg read 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 capability first, then side effects, example, and edge cases. The example line slightly restates what the return fields already convey, but overall it is compact and well-ordered.

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 compensates by naming the key return fields (song_save_available, app_quit_available) and the degradation behavior. Sufficient for a zero-arg status probe, though it stops short of explaining how a caller should act on the fallback.

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?

There are zero parameters and schema coverage is complete, so the baseline of 4 applies. Nothing about parameters needs further clarification.

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 (Read) and resource (Live save/quit API availability) plus the output shape (GUI-workflow fallback), which distinguishes it from write siblings like save_set and quit_ableton. It does not name those siblings explicitly, so the distinction must be inferred.

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 'return a GUI-workflow fallback' implies when to reach for it, but there is no explicit when-to-use or when-not-to-use rule and no named alternative. Usage is left to inference against a very large sibling set.

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

list_device_paramsA

Resolve a track path-id and list all device parameters.

Side effects: none. Example: list_device_params("track:0") returns parameter path-ids. Edge cases: missing targets return STALE_REFERENCE with a recovery hint.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_idYes

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: 'Side effects: none' declares the safety profile, and the edge-case note discloses that missing targets return STALE_REFERENCE with a recovery hint. It also hints at the return ('parameter path-ids'), though it doesn't cover ordering or pagination.

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?

Four short labeled lines, front-loaded with the core action and with example and edge cases clearly separated. No filler, though the labeled-line format is slightly more mechanical than necessary.

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 read tool with no output schema or annotations, the description supplies side effects, an invocation example, and error behavior. What remains thin is the exact shape of the returned parameter path-ids, but overall it is sufficient to call the tool correctly.

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 schema only says track_id is a string. The description partially compensates by revealing that the value is a 'track path-id' and giving a concrete example ('track:0'), which clarifies format, but it stops short of documenting valid path syntax or resolution failure modes for the parameter itself.

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 pair (resolve, list) and resource (device parameters), and 'list all device parameters' positions it against get_parameter_value (single value) and get_device_list. It does not explicitly name those siblings, 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?

The embedded example ('list_device_params("track:0")') implies when and how to call it, which is more than nothing. However, there is no explicit statement of when to prefer this over get_parameter_value, get_device_chains, or get_device_list, and no when-not guidance.

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

live_fadeA

Interpolate one track's mixer volume to a target value over duration seconds.

Side effects: blocks the Live main thread for up to duration seconds plus steps; first such command in our bridge. Writes mixer_device.volume in one undo step. Example: live_fade(track_index=0, target_percent=0) ramps the first track to silence; live_fade(track_index=0, target_percent=120, allow_over_unity=True) exceeds unity and may clip. Edge cases: rejects duration above 60 seconds and target_percent above 100 without allow_over_unity. Provide exactly one of target_percent or target_value.

ParametersJSON Schema
NameRequiredDescriptionDefault
curveNosmoothstep
stepsNo
durationNo
track_indexYes
target_valueNo
target_percentNo
allow_over_unityNo

TDQS

A4.6/5.0
Behavior5/5

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

Without any annotations, the description carries the full burden and delivers critical behavioral details: it blocks the main thread, has side effects on mixer_device.volume, creates one undo step, may clip if exceeding unity, and enforces rejection rules for duration and target_percent. This is exactly the kind of transparency needed for a potentially destructive, blocking operation.

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

Conciseness4/5

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

The description is structured with clear sections: purpose, side effects, examples, edge cases. It's front-loaded with the core action, then adds necessary details. Slightly dense but every sentence adds value; could be tightened by integrating the example more seamlessly, but no wasted text.

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

Completeness5/5

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

Given 7 parameters with 0% schema description coverage, no annotations, and no output schema, the description covers the essential operational context: blocking behavior, undo, clipping risk, parameter mutual exclusivity, and rejection conditions. It's complete for an agent to use correctly without needing to infer unsafe behaviors.

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 clarifies that exactly one of target_percent or target_value must be provided, gives default duration behavior contextually, and mentions allow_over_unity's effect. It doesn't explain curve or steps parameters, nor does it specify expected value ranges for target_value, leaving some gaps, but it covers the most critical constraint.

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 (interpolate) and resource (track's mixer volume) with target and duration. It's unique among siblings, most of which are read-only getters or unrelated operations; live_fade explicitly performs automated volume ramping, clearly distinguishing it from set_parameter_value which does a static 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?

Provides examples (ramping to silence, exceeding unity) that show intended use, and notes it inserts 'the first such command' suggesting it's for time-based transitions. However, it doesn't explicitly contrast with set_track_property or set_parameter_value, leaving the agent to infer that it's for smooth fades rather than instant changes.

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

live_find_clipA

Find clip slots in a track by case-insensitive name substring and return fresh path-ids.

Side effects: none. Example: live_find_clip(0, "verse") resolves matching clips on track 0. Edge cases: no match is a valid empty result.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
track_indexYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose 'Side effects: none' plus a note that returned path-ids are fresh rather than cached. It stops short of clarifying match multiplicity (first match vs all matches), whether session and arrangement clips are both searched, or what a result element contains, which are the behaviors an agent most needs 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?

Four short lines with the core purpose front-loaded, then side effects, an example, and an edge case. No filler or repetition; each sentence adds a distinct fact.

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 must describe the return value, and 'fresh path-ids' only partially does so — the shape and contents of the match list are unstated. It also leaves open whether arrangement clips are searched, a meaningful gap given the many arrangement/clip siblings.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate and largely does: it defines query as a case-insensitive name substring, and the example live_find_clip(0, "verse") fixes the positional order of track_index and query. It does not explain what track_index indexes into or how to obtain it (e.g. from get_track_list/live_find_track), leaving one parameter partially under-specified.

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 ('Find clip slots in a track'), the matching rule (case-insensitive name substring), and what comes back (fresh path-ids). The scope within a single track separates it from the session-wide listing siblings, but it never names an alternative finder like live_find_track or live_find_device to make the boundary explicit.

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 matching semantics and the inline example imply when this tool applies (resolving a clip you know by name), and 'no match is a valid empty result' preempts a common agent confusion. However, it gives no explicit when-not guidance against siblings such as get_clip_summary, diagnose_clip_targets, or get_arrangement_clips, so selection still requires inference.

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

live_find_deviceA

Find devices in a track by case-insensitive name substring and return fresh path-ids.

Side effects: none. Example: live_find_device(0, "operator") resolves matching devices on track 0. Edge cases: no match is a valid empty result.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
track_indexYes

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations present, the description carries the full burden and does meaningful work: it declares 'Side effects: none', states that results are fresh path-ids, and documents the empty-match edge case. It still omits what happens on an invalid track_index and any cost or caching behavior, so it is not complete.

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?

Four short lines, front-loaded with the core purpose and then cleanly partitioned into side effects, example, and edge cases. Every sentence adds information and nothing is repeated from structured fields.

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, annotation-free, output-schema-free tool, the description covers return shape ('fresh path-ids'), side-effect profile, and the empty-result case. Remaining gaps — failure behavior for a bad track index and the relationship of track_index to the track list — are minor but real.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate, and it only partially does: 'case-insensitive name substring' effectively defines query, and the example call implies track_index is a zero-based track position, but the example orders arguments (track, query) opposite to the schema's declared order, which could mislead. Types and constraints remain undocumented.

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 (find) and resource (devices) with matching semantics (case-insensitive name substring) and the scope (within a track). It is clearly distinguishable from live_find_track and live_find_clip by the resource noun, but it never contrasts itself with the sibling get_device_list, which plausibly overlaps.

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 verb and reinforced by a concrete example call, but there is no explicit when-to-use guidance against alternatives such as get_device_list or list_device_params. The agent must infer that this is the search-style device lookup while the others are enumerations.

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

live_find_trackA

Find tracks by case-insensitive name substring and return fresh path-ids.

Side effects: none. Example: live_find_track("bass") resolves matching tracks. Edge cases: no match is a valid empty result.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

TDQS

A4.1/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden, and it does disclose the key traits: 'Side effects: none', a resolvable return ('fresh path-ids'), and the empty-match edge case. It stops short of return shape detail, but for a read-only lookup this is solid behavioral disclosure.

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

Conciseness4/5

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

Four short front-loaded lines: purpose first, then side effects, example, edge case. Each line carries distinct information with no padding, though the labelled 'Example'/'Edge cases' structure is slightly boilerplate.

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, no-output-schema lookup, the description covers purpose, safety, result type, and the empty-result case. It is close to complete; only the meaning of 'path-id' is assumed rather than explained.

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 define the sole parameter, and it does: 'query' is a case-insensitive name substring, reinforced by the example. That compensates well for the undocumented schema field.

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 ('Find') and resource ('tracks') plus the exact matching mechanism ('case-insensitive name substring') and the return value ('fresh path-ids'). This is distinguishable from sibling list/state readers like get_track_list and get_track_state 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 name-substring framing implies when the tool applies, and the example illustrates a call, but it never names an alternative (e.g., get_track_list for enumerating all tracks) or states when-not to use it. Usage 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.

load_device_to_trackA

Load a device onto a track using the Extensions SDK browser API.

Side effects: mutates the track device chain via the Extension Host. Example: load_device_to_track(0, device_name="Operator") loads Operator on track 0. device_uri is retained as a deprecated alias for callers that still pass a query URI. Edge cases: requires the AbletonMCPServer Extension to be installed.

ParametersJSON Schema
NameRequiredDescriptionDefault
device_uriNo
device_nameNo
track_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description must carry the behavioral load, and it does disclose the key one: 'mutates the track device chain via the Extension Host,' plus the hard external dependency on the extension being installed. It stops short of stating error behavior, idempotency, or what happens to devices already in the chain.

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 followed by clearly labeled 'Side effects', 'Example', and 'Edge cases' blocks, which makes scanning easy. The 'using the Extensions SDK browser API' clause is mildly redundant with the later Extension Host mention, but nothing is wasted overall.

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?

An output schema exists, so return values need not be explained, and the description covers the mutation semantics, an example call, the dependency requirement, and the deprecated parameter. For a mutating 3-parameter tool with no annotations, only failure/error behavior and parameter precedence remain unaddressed.

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 clarifies device_name via the example, explains that device_uri is a deprecated alias, and shows track_index as a zero-based index. However, it never states precedence when both device_name and device_uri are supplied, or what happens if neither is provided.

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 ('Load a device onto a track') and names the mechanism (Extensions SDK browser API / Extension Host). It is clearly distinguishable from read-only siblings like get_device_list and list_device_params, which only inspect devices rather than load them.

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?

Prerequisite is given ('requires the AbletonMCPServer Extension to be installed') and an example invocation implies usage, but there is no explicit when-to-use/when-not-to-use guidance and no named alternative (e.g., set_plugin_preset or live_find_device) for the case where you only want to locate or tweak an existing device.

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

merge_groupsA

Attempt to move one group's members into another; Live's API cannot.

Side effects: none — the request is validated and refused. This bridge never deletes a track, so an emptied group would always be left in place. Example: merge_groups(5, 1) returns CAPABILITY_UNAVAILABLE with the API evidence in details. Edge cases: both indexes must be Group Tracks (WRONG_TYPE otherwise), must differ, and must not nest into each other (BAD_INPUT). delete_empty_source=True is rejected with BAD_INPUT.

ParametersJSON Schema
NameRequiredDescriptionDefault
source_group_indexYes
delete_empty_sourceNo
destination_group_indexYes

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it declares 'Side effects: none — the request is validated and refused', states that no track is ever deleted, and specifies the returned code (CAPABILITY_UNAVAILABLE) with API evidence in details. It also enumerates validation edge cases with their error codes (WRONG_TYPE, BAD_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 fact (the API cannot merge) before side effects, an example, and edge cases, using labeled sub-sections that scan quickly. Dense but every sentence conveys distinct, actionable 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 no annotations, the description supplies return-code behavior, side-effect profile, and error conditions, which is nearly everything an agent needs. A little more on the structure of the details payload or an explicit 'do not call to merge' directive would close the remaining gap.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate, and it largely does: it explains that both indexes must refer to Group Tracks, must differ, and must not nest, and that delete_empty_source=True is rejected with BAD_INPUT. The positional example merge_groups(5, 1) helps map the two index arguments, though it does not spell out which position is source vs destination.

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 ('move one group's members into another') and immediately qualifies it with the crucial fact that Live's API cannot perform it, so an agent understands this tool never succeeds as named. This distinguishes it from sibling mutation tools like move_track_to_group and ungroup_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 strongly implies the tool should not be relied on for actual merging (the API refuses the request), which is implicit negative guidance. However, it never names an alternative tool (e.g. move_track_to_group, ungroup_track) or states explicitly when an agent should still call it.

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

move_arrangement_clipA

Move one Arrangement clip to a new beat.

Side effects: copies the clip to time and deletes the original, both verified. The LOM exposes no setter for Clip.start_time, so this is the only way to reposition; a failed copy leaves the original in place. Example: move_arrangement_clip(3, 2, 96.0). Edge cases: indices shift after the move — re-read with get_arrangement_clips.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeYes
clip_indexYes
track_indexYes

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and does so well: it discloses that the move is implemented as copy-then-delete, that both steps are verified, and critically that a failed copy leaves the original in place (non-destructive failure mode). It also warns that indices shift after the move.

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 side effects, a concrete example, and edge cases in clearly labeled segments. Every sentence earns its place and none is redundant.

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 3-param mutation tool with no annotations and no output schema, the description covers side effects, failure behavior, and post-move state well. It stops short of stating what a successful call returns (only 'both verified'), a minor gap.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate, and it partially does: the example 'move_arrangement_clip(3, 2, 96.0)' fixes the positional order of the three required args, and 'new beat' establishes that time is in musical beats rather than seconds. track_index and clip_index remain only inferable from their names.

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

Purpose5/5

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

States a specific verb and resource with scope: 'Move one Arrangement clip to a new beat.' It also implicitly distinguishes itself from sibling set_arrangement_clip_properties by noting the LOM exposes no setter for Clip.start_time, so this is the only way to reposition.

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 condition under which this tool is required (no setter exists for start_time) and routes the agent to get_arrangement_clips for re-reading after index shifts. No explicit when-not guidance or named alternative for repositioning, but the context is clear.

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

move_trackA

Attempt to move one track to another index; Live's API cannot do this.

Side effects: none — the request is validated and refused. Example: move_track(3, 0) returns CAPABILITY_UNAVAILABLE with the LOM and Extension SDK evidence in details. Edge cases: invalid indexes return INVALID_PARAMS and return/main tracks return WRONG_TYPE, so a malformed request stays distinguishable from the capability gap. Create tracks at the index you want, or reorder by hand in Live.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_indexYes
destination_indexYes

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and does so well: it states 'Side effects: none — the request is validated and refused', documents the refusal return code (CAPABILITY_UNAVAILABLE with LOM/SDK evidence in details), and separates edge-case codes (INVALID_PARAMS for bad indexes, WRONG_TYPE for return/main tracks). This is exactly the behavioral disclosure an agent needs for a deliberately failing 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?

Front-loads the single most important fact (the operation is impossible) in the first clause, then labels Example / Edge cases / alternatives. No filler, and the dense structure is appropriate for a multi-faceted error contract.

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 no-op probe tool with no output schema and two bare integer parameters, the description supplies everything needed to call it correctly and interpret the result: outcome code, error differentiation, side-effect status, and workarounds. Nothing material is missing.

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 partially does. The example 'move_track(3, 0)' establishes that the first argument is the source track and the second the destination, and the edge cases clarify accepted value ranges. However it never states the indexing base (0- vs 1-based) or behavior when the two indexes are equal, leaving real ambiguity about parameter values.

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 one track to another index') and immediately discloses the crucial fact that it cannot succeed. It implicitly differentiates itself from working tools by declaring the capability gap, but it never names the siblings that actually perform reordering (reorder_tracks, move_track_to_group), so an agent must infer that distinction.

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-call context (only to probe/confirm the capability gap) and offers alternatives ('Create tracks at the index you want, or reorder by hand in Live'). The weakness is that the alternatives are non-tool actions, ignoring the sibling tools reorder_tracks and move_track_to_group that would let an agent accomplish the same goal programmatically.

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

move_track_to_groupA

Attempt to move a track into a Group Track; Live's API cannot do this.

Side effects: none — the request is validated and refused. Example: move_track_to_group(4, 1) returns CAPABILITY_UNAVAILABLE with the API evidence in details. Edge cases: Track.group_track is read-only in the LOM and the Extension SDK exposes only a getter. A non-foldable target returns WRONG_TYPE; a self-nesting or cyclic request returns BAD_INPUT.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_indexYes
group_track_indexYes

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and delivers: 'Side effects: none — the request is validated and refused', plus the concrete failure codes (CAPABILITY_UNAVAILABLE, WRONG_TYPE, BAD_INPUT) and the root cause (Track.group_track read-only in the LOM). This is exactly the behavioral context an agent needs and cannot get 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.

Conciseness5/5

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

Front-loaded with the purpose and the critical caveat, then organized into side-effects, example, and edge-cases blocks. Sentences are short and each carries distinct information; nothing is redundant.

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 or annotations exist, yet the description still documents return codes, side effects, and failure edge cases, which is nearly everything needed to call it correctly. The remaining gap is the unstated semantics of the two indices.

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. The example 'move_track_to_group(4, 1)' gives positional context and the WRONG_TYPE/'non-foldable target' note hints at group_track_index, but neither parameter's meaning is stated outright (which index is the source track vs the target group). Partial compensation only.

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 clause names a specific verb and resource ('move a track into a Group Track') and immediately clarifies the true nature of the tool: the underlying API cannot do this. That scope statement distinguishes it clearly from siblings like move_track, reorder_tracks, or ungroup_track 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?

It makes the operative condition explicit ('Live's API cannot do this', 'the request is validated and refused'), so an agent knows this is a validation/probe call rather than a real mutation. It does not name a sibling alternative for achieving the grouping, so it stops just short of full when-to-use/when-not guidance.

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

music_generate_bassA

Generate a deterministic root-only bass line, optionally into a clip.

Side effects: none unless apply is true, which creates one clip and its notes in a single undo step. Example: music_generate_bass(bars=4, seed=7, root_midi=40) returns an E bass line without touching Live. Edge cases: every note is root_midi in some octave, folded back into the MIDI range, octave leaps from weirdness included. traits behaves exactly as it does for the drum groove.

ParametersJSON Schema
NameRequiredDescriptionDefault
barsNo
seedNo
applyNo
traitsNo
root_midiNo
clip_indexNo
track_indexNo

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does well: it states the default is non-mutating, that apply creates one clip plus its notes in a single undo step, and that without apply it does not touch Live. It omits permission/auth requirements and any pagination-style concerns, so it is strong but not exhaustive.

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

Conciseness4/5

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

Front-loads purpose, then side effects, example, and edge cases in clearly labeled blocks. Mostly efficient, though the example and edge-case lines are somewhat loosely worded and the example sentence is broken across lines.

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-param tool with no annotations and no output schema, the description covers the core behavior, side effect, and a return example. Delegating 'traits' semantics to a sibling tool and leaving clip_index/track_index undocumented are the main remaining 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 description coverage is 0%, so the description must compensate across 7 parameters. It gives meaning to bars, seed, root_midi, apply, and traits (delegated to the drum-groove tool), but clip_index and track_index are never explained, and 'weirdness' is referenced without clarifying that it is a trait key rather than a parameter.

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 ('Generate a deterministic root-only bass line') and clarifies the optional clip-writing mode. It does not explicitly name or distinguish itself from likely siblings like music_generate_drum_groove or groove_generate, though the 'root-only bass' qualifier is distinctive.

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 agent can infer the preview-vs-apply distinction from 'optionally into a clip' and the apply side-effect note. There is no explicit when-to-use or when-not-to-use guidance relative to the other generative siblings such as music_generate_drum_groove or groove_generate.

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

music_generate_drum_grooveA

Generate a deterministic kick-and-hat groove, optionally into a clip.

Side effects: none unless apply is true, which creates one clip and its notes in a single undo step. Example: music_generate_drum_groove(bars=4, seed=7) returns the notes without touching Live. Edge cases: apply without track_index and clip_index is rejected at the model. traits accepts groove, electro, weirdness and space in 0..1, applied in that fixed order; the response names the axes that actually changed the notes under traits_applied.

ParametersJSON Schema
NameRequiredDescriptionDefault
barsNo
seedNo
applyNo
traitsNo
clip_indexNo
track_indexNo

TDQS

A4.4/5.0
Behavior5/5

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

With zero annotations the description carries the full burden and does so well: it discloses that there are no side effects unless apply is true, that apply creates exactly one clip plus its notes atomically in a single undo step, that output is deterministic, and that invalid apply calls are rejected at the model. It even names the return field traits_applied and the fixed application order of the traits axes.

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 verb, then clearly labeled Side effects / Example / Edge cases sections. Four short paragraphs, each carrying distinct information (write semantics, invocation template, validation rule, trait semantics) with no 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 six-parameter generative mutation tool with no annotations and no output schema, it covers safety, atomicity, determinism, validation and return-field naming. What is missing is minor: the shape of the returned notes and whether a target track/clip must already exist in session are not spelled out.

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

Parameters4/5

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

Schema coverage is 0% and none of the six parameters carry descriptions, so this text does the documentation work: it explains apply, ties track_index/clip_index to the apply precondition, lists the four valid traits keys with their 0..1 range and fixed ordering, and shows bars/seed in the example. bars and seed are only implicitly explained (length, determinism), keeping it short of 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 and resource ('Generate a deterministic kick-and-hat groove') plus the optional output target ('optionally into a clip'). The coupled content-and-verb phrasing distinguishes it from siblings like music_generate_bass and groove_generate without the agent 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 Guidelines3/5

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

It clarifies the use-mode split (generate notes only by default, write a clip when apply=true) and shows a concrete call example, which implies when to reach for it. However, it never names or contrasts an alternative sibling (e.g. groove_generate, add_notes_pattern, create_clip), so the agent must infer routing from names alone.

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

music_plan_productionA

Lay a conventional section grid over a prompt and report what is missing.

Side effects: none; this tool never reaches Live. Example: music_plan_production(prompt="a track at 128 bpm", bars=64) returns six tiled sections plus the resolved tempo. Edge cases: no language model backs this tool. It reads only what the prompt states literally and lists everything else under unresolved instead of inventing it.

ParametersJSON Schema
NameRequiredDescriptionDefault
bpmNo
barsNo
promptYes

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it declares 'Side effects: none; this tool never reaches Live' and explains the tool is not backed by a language model, reading only literal prompt content. This discloses safety and determinism, though it doesn't say whether the call is idempotent or what the unresolved list's shape is.

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?

Short, front-loaded, and structured with side-effect, example, and edge-case labels. Every line earns its place, with only minor redundancy between 'never reaches Live' and 'no language model backs this tool'.

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 3-param tool with no annotations and no output schema, the description covers return shape, side effects, and non-LLM behavior, but leaves parameter semantics and the exact contents of the 'unresolved' output underspecified.

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% across 3 params, so the description must compensate. The example touches prompt, bars, and bpm (via 'resolved tempo'), but it never explains the semantics or defaults of bpm/bars or how they interact with the section grid, leaving real 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?

States a specific verb+resource: it lays a conventional section grid over a prompt and reports what is missing. This is clear and distinguishable from the get_*/generate_* siblings by its planning nature, though it never names an alternative tool 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 only implied through the example and the 'report what is missing' framing. It never states when to prefer this over siblings like music_generate_drum_groove or plan_user_journey, nor any exclusions.

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

plan_user_journeyA

Plan a capability-aware guided journey as a fixed stage grid.

Side effects: none; the plan names tools but calls none of them. Example: plan_user_journey("sequence_drums", "half time, dark"). Edge cases: identity or exact-copy language returns a clarification request.

ParametersJSON Schema
NameRequiredDescriptionDefault
traitsYes
journey_typeYes

TDQS

A3.5/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden. It explicitly declares no side effects, that the plan names tools but calls none, and that identity or exact-copy language triggers a clarification request. This is solid disclosure, though it does not describe the returned plan format or any auth/rate limits.

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 purpose, then adds side effects, an example, and edge cases in compact form. Every sentence adds value and there is no filler.

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

Completeness3/5

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

The tool has no annotations, no output schema, and 0% parameter description coverage. The description covers side effects and edge cases, but leaves the return shape and journey_type semantics unspecified, so an agent cannot fully anticipate the plan's contents.

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% and parameters are undocumented in the schema. The description supplies an example mapping the arguments (journey_type='sequence_drums', traits='half time, dark') and an edge-case constraint, but does not explain the journey_type enum values or the traits format and max length.

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: plan a capability-aware guided journey. The side-effects sentence clarifies that it plans rather than executes, distinguishing it from execution siblings. However, 'fixed stage grid' is jargon and the journey_type options are not explained, so it is not fully self-contained.

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 or when-not-to-use guidance is given relative to siblings like music_plan_production or the music_generate_* tools. The example implies a scenario but does not state selection criteria or prerequisites.

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

quit_abletonB

Save the Live Set (when requested) then schedule Application.quit after a small UI delay.

Side effects: invokes Song.save() and schedules Application.quit. Example: quit_ableton(quit_delay_ticks=5) waits five UI ticks. Edge cases: missing APIs return a structured GUI workflow refusal.

ParametersJSON Schema
NameRequiredDescriptionDefault
saveNo
quit_delay_ticksNo
force_without_saveNo

TDQS

B3.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it explicitly names the side effects (Song.save(), scheduling Application.quit), the UI-tick delay, and the edge-case behavior of a structured GUI workflow refusal. It stops short of stating irreversibility or what happens to unsaved changes when force_without_save is used.

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

Conciseness4/5

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

The main action is front-loaded, and the labeled sections (Side effects/Example/Edge cases) make it scannable. Minor redundancy: 'Application.quit' is stated in both the opening sentence and the side-effects line.

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 mutation tool with no annotations and no output schema, the description covers side effects and failure modes but leaves force_without_save semantics and the destructiveness of discarding unsaved work unexplained. Adequate but with real gaps.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate. It conveys the meaning of quit_delay_ticks ('five UI ticks') and implies the save toggle ('when requested'), but force_without_save is never mentioned and no defaults or interactions are explained, leaving one of three parameters fully undocumented.

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 (quit) and resource (Ableton Live), and adds a meaningful nuance: it saves first, then schedules the quit after a UI delay. It is the only quit tool among the siblings, so it is distinguishable, though it never explicitly positions itself against 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 Guidelines2/5

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

The example shows how to call it but gives no when-to-use guidance, no when-not-to-use, and no alternatives. With save_set present as a sibling, the description should clarify how quit-with-save differs from simply saving, but does not.

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

rename_trackA

Rename a track in the Live Set.

Side effects: mutates the track name in one undo step. Example: rename_track(0, "Drums") renames the first track. Edge cases: an out-of-range index returns INVALID_PARAMS.

ParametersJSON Schema
NameRequiredDescriptionDefault
new_nameYes
track_indexYes

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses that the operation mutates the track name in a single undo step and that an out-of-range index yields INVALID_PARAMS. It stops short of stating whether the change is persisted (save required) or whether any name validation applies.

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?

Four short sentences, purpose front-loaded, then side effects, example, and edge case. 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.

Completeness4/5

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

For a simple two-parameter mutation with no annotations and no output schema, the description covers purpose, mutation semantics, a concrete example, and error behavior. The remaining gap is persistence/save expectations, which is minor.

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 schema contributes nothing about the two parameters. The example 'rename_track(0, "Drums")' usefully clarifies argument order and that track_index is 0-based, but there is no stated range, bound, or constraint on new_name.

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 gives a specific verb and resource ('Rename a track in the Live Set'), which is unambiguous. It does not, however, differentiate itself from the sibling set_track_property, which could plausibly also target track names, so an agent gets no explicit routing signal.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as set_track_property or live_find_track for locating the index first. The agent must infer usage entirely from the name and example.

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

reorder_tracksA

Attempt to reorder every track at once; Live's API cannot do this.

Side effects: none — the request is validated and refused. Example: reorder_tracks([2, 0, 1]) returns CAPABILITY_UNAVAILABLE with the API evidence in details. Edge cases: order must be a permutation of the regular track indexes; anything else returns BAD_INPUT before the capability refusal.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderYes

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: side effects are 'none', the request is 'validated and refused', and the exact refusal tokens are named (CAPABILITY_UNAVAILABLE with API evidence in details, and BAD_INPUT for non-permutation input). It even specifies validation order — input validation happens before the capability refusal.

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 crucial fact that the operation is impossible, then layered as side effects, example, and edge cases. Every sentence carries information; none is 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?

No output schema exists, so the description must explain returns — and it does (CAPABILITY_UNAVAILABLE with details, BAD_INPUT). With one param, no annotations, and a documented refusal path, nothing an agent needs to invoke and interpret this tool 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%, so the schema documents nothing about 'order'. The description compensates by defining it as a permutation of the regular track indexes and gives a concrete example (reorder_tracks([2, 0, 1])). This adds real meaning beyond the bare array-of-integers 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 (reorder) and resource (every track at once) and immediately declares that the capability is unavailable via Live's API. The scope 'every track at once' distinguishes it from the single-track siblings like move_track and move_track_to_group without needing 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?

It clearly signals that this is a capability-denial probe: 'Live's API cannot do this' and 'the request is validated and refused.' An agent knows the call will not perform a real reorder, which is strong context. However, it never names an alternative (e.g., move_track) for actually moving tracks, so it stops short of explicit when-to-use routing.

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

run_batchA

Run allowed mutations sequentially inside one Live undo step.

Side effects: successful prefix mutations persist until one Ctrl+Z; no rollback occurs. Example: run_batch([{"type": "set_tempo", "params": {"tempo": 128}}]). Edge cases: execution aborts at the first error and nested batches are rejected.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandsYes

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does it well: it discloses that prefix mutations persist (no rollback), that one Ctrl+Z reverts the whole batch, that execution aborts at the first error, and that nested batches are rejected. It omits any auth/permission requirements and what the call returns, keeping it short of 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 purpose, then uses labeled blocks (Side effects, Example, Edge cases) with no filler. Every line earns its place; only the purpose sentence runs slightly long.

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 batch executor with no annotations and no output schema, the description covers side effects, error semantics, and nesting limits well. The remaining gap is not enumerating which mutation types are permitted inside 'allowed mutations', which an agent would need to construct a valid call.

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% for the single 'commands' parameter, which the schema only types as an array of open objects. The embedded example supplies the {type, params} command shape, which genuinely adds meaning beyond the schema. However, it never enumerates the accepted command types, so compensation is only partial.

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 (run) and resource (a batch of allowed mutations) plus the scoping concept of one Live undo step. The batch/sequential framing clearly separates it from single-mutation siblings like set_tempo or set_parameter_value. It does not explicitly name an alternative, so it stops just short of 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?

The example demonstrates invocation and 'aborts at the first error' implies batching intent, but the description never says when to prefer this over firing the individual mutation tools, nor which mutations count as 'allowed'. 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.

save_setA

Save the Live Set via Song.save() when exposed, otherwise return a GUI workflow.

Side effects: invokes Song.save() in one undo step when available. Example: save_set(require_api=True) raises when the API is missing. Edge cases: missing API returns a structured GUI workflow response.

ParametersJSON Schema
NameRequiredDescriptionDefault
require_apiNo

TDQS

A4.1/5.0
Behavior4/5

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

With zero annotations the description carries the full load and does well: it discloses the mutation ('invokes Song.save()'), that it happens 'in one undo step', that require_api=True raises on a missing API, and that a missing API otherwise yields a structured GUI workflow. It omits permission/auth requirements and what a save overwrites, keeping it 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?

Front-loaded with the core purpose, then side effects, example, and edge cases in labeled blocks. Efficient overall, though the 'Edge cases' line partly restates the opening 'otherwise return a GUI workflow', a minor redundancy.

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

Completeness4/5

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

For a one-parameter, no-annotation, no-output-schema mutation tool, the description covers purpose, side effects, parameter behavior, and failure modes. Remaining gaps (shape of the GUI workflow response, permission requirements) are minor for this scope.

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% for the single parameter, so the description must compensate; the example 'save_set(require_api=True) raises when the API is missing' plus the default-path GUI behavior together explain both the true and false semantics of require_api. The default value itself is only in the schema, not restated in prose.

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 ('Save the Live Set') and immediately distinguishes the two execution paths (Song.save() vs GUI workflow). No sibling tool performs a session save, so an agent can pick this out unambiguously.

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 internal branch (API vs GUI) and shows a call example, which implies usage, but never states when an agent should prefer save_set over anything else or what preconditions must hold. No explicit when-to-use / when-not-to-use guidance is present.

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

scaffold_extensionA

Create a template Ableton Extension project folder.

The scaffold produces an extension that follows the same shape as the repository's own AbletonMCPServer_Extension: it imports @ableton-extensions/sdk, declares dist/extension.js as the package entry in both package.json["main"] and manifest.json["entry"], and bundles via tsx build.ts. Vendor tarballs shipped with the package are copied locally into the new project so local SDK/CLI packages are used during build. In the acceptance report, offline_passed indicates a probe that runs without requiring a connection to Ableton Live.

Side effects: creates files on disk. No Ableton connection required. Example: scaffold_extension("MyEffect", output_directory="/tmp/ext") Edge cases: returns a status="error" JSON when vendor tarballs are missing or output directory is not writable; never raises during disk writes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
authorNontworm
output_directoryNo.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and does so thoroughly: it declares disk side effects, states no Ableton connection is required, documents the error-to-JSON behavior, and guarantees it never raises during disk writes. This is unusually rich disclosure.

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 cleanly segments internals, side effects, example, and edge cases. The internal-producer detail is slightly verbose but earns its place for building a mental model; structure is sound.

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 filesystem-mutating scaffold with an output schema present, the description is complete: purpose, produced artifact shape, side effects, failure modes, and a concrete example are all covered, so no essential behavior is left to guessing.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. The example clarifies 'name' and 'output_directory' usage, but 'author' is never mentioned and no parameter is given explicit semantics, leaving one of three params entirely undefined.

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: 'Create a template Ableton Extension project folder.' The purpose is unambiguous, but it never explicitly contrasts itself with the sibling build_extension, so an agent must infer the scaffold-vs-build distinction.

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 an example call and edge cases (missing vendor tarballs, unwritable output dir), but there is no explicit when-to-use or when-not-to-use guidance, and the natural alternative (build_extension) is never named.

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

search_browserA

Search the Live Browser with bounded TCP-side traversal.

Side effects: none. Example: search_browser("Operator", "instruments", 25) finds native devices. Edge cases: traversal is capped by depth, children, visited nodes, and result limit.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
category_typeNo

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does a fair job: "Side effects: none" declares the operation is a read, and the edge-case note about traversal being capped by depth, children, visited nodes, and result limit warns the agent that results may be partial. It stops short of describing return contents or any permission requirements.

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 in the first sentence, then uses labeled sections (Side effects, Example, Edge cases) with no filler. Well-sized for a three-parameter tool.

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?

Covers the safety profile and traversal bounds, which is the most important missing context given no annotations and no output schema. Still leaves the agent without any indication of what the search returns or what category_type values are valid.

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. The example maps positional arguments (query="Operator", category_type="instruments", limit=25), which clarifies the meaning of category_type beyond the bare schema. However, the meaning of category_type and limit semantics are never stated in prose, leaving 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?

States a specific verb+resource ("Search the Live Browser") that is distinct from sibling read tools like get_browser_categories and get_track_list. It does not, however, explicitly say how it differs from get_browser_categories, which also concerns the browser.

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, via the example ``search_browser("Operator", "instruments", 25)`` finds native devices, which gives a concrete scenario. There is no explicit when-to-use/when-not guidance and no alternative tool is named.

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

set_arrangement_clip_propertiesA

Rename or mute one Arrangement clip, verified by readback.

Side effects: changes one Arrangement clip in one Live undo step. Example: set_arrangement_clip_properties(44, 2, muted=False) unmutes a clip that was silenced by hand. Edge cases: clip_index indexes Track.arrangement_clips and shifts after structural changes; provide at least one of name or muted.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
mutedNo
clip_indexYes
track_indexYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does well: it discloses the mutation scope (one clip), undo granularity (one Live undo step), and readback verification. It omits permission/auth requirements and what readback actually returns on failure, leaving a modest gap for a mutation tool.

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

Conciseness4/5

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

Well front-loaded (purpose first, then side effects, example, edge cases) and every block adds distinct information. Slightly dense with four labeled sections for a single-clip mutator, but 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?

For a mutation tool with no annotations and no output schema, the description covers side effects, an example, index-instability caveats, and the 'verified by readback' return contract. The remaining gaps (track_index meaning, failure modes) are minor.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate and only partly does: it clarifies clip_index semantics (indexes Track.arrangement_clips, shifts after structural changes) and the 'at least one of name/muted' rule, plus the example implies argument order. It never explains track_index or what name/muted values mean beyond the obvious.

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 pair (rename/mute) and a precisely scoped resource (one Arrangement clip), and the 'Arrangement' qualifier distinguishes it from session-clip siblings like set_clip_properties. An agent can identify the operation and its target 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 worked example ('unmutes a clip that was silenced by hand') gives a concrete usage context, and the edge-case note establishes the precondition of supplying at least one of name/muted. However, it never explicitly routes the agent to or away from an alternative tool, so no exclusions are stated.

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

set_clip_colorA

Set and verify one clip colour, by palette index or packed RGB.

Side effects: writes Clip.color_index or Clip.color in one Live undo step and reads the value back. Only the addressed clip changes. Example: set_clip_color(0, 1, color_index=12) colours a Session clip; set_clip_color(0, 0, scope="arrangement", color=0x336699) colours the first Arrangement clip on that track. Edge cases: exactly one of color_index (0..69) and color (0x000000..0xFFFFFF) is required. An empty Session slot returns BAD_INPUT. Arrangement scope needs Track.arrangement_clips (Live 11+); a host without it returns CAPABILITY_UNAVAILABLE — run diagnose_clip_targets to see what is reachable. The write is issued once and never retried.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNo
scopeNosession
clip_indexYes
color_indexNo
track_indexYes

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: it discloses the exact fields mutated (Clip.color_index / Clip.color), that it is a single undo step, that it reads back to verify, that only the addressed clip changes, and that the write is never retried. Named error codes (BAD_INPUT, CAPABILITY_UNAVAILABLE) and the Live-11+ dependency are exactly the behavioral detail an agent 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 purpose, then side effects, then examples, then edge cases — a clean structure where each block adds distinct value. It is dense but every sentence earns its place; the only mild cost is length.

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 annotations and no output schema, the description covers side effects, verification, error paths and capability requirements. It does not spell out the shape of the verified read-back result, but that is a minor omission given everything else is covered.

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 documents the mutual-exclusivity rule (exactly one of color_index 0..69 vs color 0x000000..0xFFFFFF), which the schema cannot express, and demonstrates track_index, clip_index and scope through examples. track_index/clip_index themselves are only implied by example rather than defined, so it falls just short of 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?

States a precise verb+resource ('Set and verify one clip colour') and immediately scopes it to a single clip, which cleanly distinguishes it from siblings like set_track_color and set_clip_properties. 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?

Provides concrete worked examples for both Session and Arrangement scope, plus error-condition guidance (empty Session slot, missing host capability) and routes the agent to diagnose_clip_targets to check reachability. It stops short of explicitly contrasting with the nearest sibling (set_clip_properties), so it is clear context rather than full when/when-not routing.

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

set_clip_propertiesB

Set and verify selected Session clip loop bounds or name.

Side effects: changes one clip in one Live undo step. Example: set_clip_properties(0, 1, loop_end=8, name="Verse") edits a clip. Edge cases: the final loop interval must remain positive and non-empty.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
loop_endNo
clip_indexYes
loop_startNo
track_indexYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses side effects ('changes one clip in one Live undo step') and a constraint ('the final loop interval must remain positive and non-empty'), which is useful. However, it omits permissions, error behavior, and what the 'verify' process returns, leaving gaps for a mutation tool.

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

Conciseness5/5

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

Four tightly written lines: purpose first, then side effects, example, and edge cases. No redundant wording; each sentence adds 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?

Given no annotations, no output schema, and 0% schema coverage, the description supplies side effects, an example, and an edge case, but it leaves key gaps: the meaning of 'verify' (return values), the role of loop_start, and error handling. For a 5-parameter mutation tool, it is adequate but not fully complete.

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

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. The example shows that track_index and clip_index are positional and that loop_end and name can be passed as keywords, but it never mentions the loop_start parameter. The edge case hints at the interaction between loop_start and loop_end but doesn't define them.

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 ('Set and verify') and resource ('Session clip loop bounds or name'), which differentiates it from siblings like set_arrangement_clip_properties and set_clip_color. The word 'selected' is slightly imprecise since the clip is identified by track_index and clip_index parameters, but the core purpose 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?

The description provides an example and an edge case but offers no explicit guidance on when to choose this tool over alternatives such as set_arrangement_clip_properties or set_clip_color. Usage context is only implied through the example.

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

set_current_song_timeA

Move the Arrangement playhead with set/read/retry verification.

Side effects: writes transport state in one undo step. Example: set_current_song_time(32.0) moves to beat thirty-two. Edge cases: a stuck setter raises PLAYHEAD_NOT_MOVED after three attempts.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses that it writes transport state in a single undo step, that it internally verifies with set/read/retry, and that a stuck setter raises PLAYHEAD_NOT_MOVED after three attempts. It omits whether playback must be stopped, whether auth/permissions are needed, and what a success returns, but the side-effect and failure-mode disclosure is unusually strong.

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, then clearly partitioned into side effects, example, and edge cases. Every line earns its place; it is slightly longer than strictly necessary but not padded.

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 mutation tool with no output schema and no annotations, the description covers units, side effects, undo behavior, and a concrete failure mode. The main remaining gap is the absence of return-value or success-state detail, which is 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.

Parameters4/5

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

Schema description coverage is 0% and the single 'time' parameter is undocumented in the schema, so the description must compensate. The example ('set_current_song_time(32.0) moves to beat thirty-two') successfully establishes that the value is in beats, adding meaning beyond the bare number type.

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

Purpose5/5

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

States a specific verb and resource ('Move the Arrangement playhead') that an agent can immediately distinguish from transport siblings like start_playback, stop_playback, and set_tempo. The example confirms the units ('32.0 moves to beat thirty-two'), removing ambiguity about what the target value represents.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as start_playback or the locator tools. The example demonstrates how to call it but not when it is the right choice, and no exclusions or preconditions are stated.

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

set_loopA

Enable or disable the Arrangement loop.

Side effects: writes loop state in one undo step. Example: set_loop(True) enables looping. Edge cases: only a boolean value is accepted.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYes

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations present, the description carries the full burden and does add real behavioral context: it discloses the side effect (writes loop state) and states the change occurs 'in one undo step', which is genuinely useful for a mutation tool. It stops short of noting permissions, error behavior, or what the call returns.

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, then side effects, example, and edge case in short labeled fragments. No filler; slightly choppy but every sentence earns its place.

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

Completeness4/5

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

For a single-boolean mutation tool with no annotations and no output schema, the description covers the action, the side effect, undo granularity, an example, and the type constraint. Return value and failure behavior are unaddressed, but not critical here.

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 schema field 'enabled' has no prose, but it is a lone boolean whose meaning is stated in the body ('Enable or disable'). The example set_loop(True) and the edge case 'only a boolean value is accepted' add a little beyond the type declaration, which is enough to offset the weak coverage but not more.

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 ('Enable or disable') and resource ('the Arrangement loop'), so the agent knows exactly what changes. It does not explicitly differentiate itself from siblings like get_loop_settings, set_loop_start, or set_loop_length, which is the only thing keeping this from 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 clear verb+resource pairing, but there is no explicit statement of when to reach for this versus get_loop_settings (read) or set_loop_start/set_loop_length (boundary edits). No prerequisites or exclusions are given, leaving the routing to inference.

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

set_loop_lengthA

Set Arrangement loop length with read-back verification.

Side effects: writes loop geometry in one undo step. Example: set_loop_length(8.0) makes an eight-beat loop. Edge cases: length must be positive and a stuck setter raises an error.

ParametersJSON Schema
NameRequiredDescriptionDefault
length_beatsYes

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses that this is a write operation, that loop geometry changes occur in one undo step, that read-back verification is performed, and that a stuck setter raises an error. It does not specify permissions or what the read-back returns, but the mutation and failure behavior is well covered.

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

Conciseness5/5

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

The description is front-loaded with the core action, then cleanly separates side effects, an example, and edge cases. Every sentence earns its place, and there is no redundant restatement of the tool name or schema type.

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

Completeness4/5

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

For a simple one-parameter mutation tool with no output schema and no annotations, the description includes side effects, an example, and error conditions. It is nearly complete, lacking only a clear statement of what read-back verification returns or whether the setter can fail for other reasons.

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 for the single parameter. It provides the example set_loop_length(8.0) makes an eight-beat loop, clarifying that the number is in beats, and states that length must be positive. This adds useful meaning beyond the bare type in the schema, though it does not define non-integer behavior.

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 Arrangement loop length." It also names the scope (Arrangement) and distinguishes itself from sibling read tools like get_loop_settings and other setter tools. 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 Guidelines3/5

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

The description implies usage through the example and edge cases, but it never explicitly says when to use this tool versus alternatives such as set_loop or set_loop_start. There are no exclusions or routing conditions to guide selection among siblings.

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

set_loop_startA

Set Arrangement loop start with read-back verification.

Side effects: writes loop geometry in one undo step. Example: set_loop_start(16.0) starts the loop at beat sixteen. Edge cases: a stuck setter raises PLAYHEAD_NOT_MOVED.

ParametersJSON Schema
NameRequiredDescriptionDefault
start_beatYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses read-back verification, that the write occurs in a single undo step, and a concrete failure mode (PLAYHEAD_NOT_MOVED). It omits whether the operation is reversible beyond undo grouping and what the verification step returns.

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?

Four short, front-loaded sentences each carrying distinct information (purpose, side effect, example, edge case). No filler and the core action leads.

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 mutation tool with no annotations and no output schema, this covers the essential behavioral surface: side effect, undo semantics, example, and error path. Only the read-back verification result and parameter bounds are left implicit.

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 start_beat has no type description beyond 'number'. The example set_loop_start(16.0) starts the loop at beat sixteen supplies the missing unit and format, which for a lone numeric parameter is meaningful compensation, though valid ranges or bounds remain unspecified.

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: sets the Arrangement loop start point. This distinguishes it reasonably from look-alikes such as set_loop_length (length) and get_loop_settings (read), though it does not explicitly disambiguate itself from set_loop, which may also touch loop start.

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 example implies usage context (Arrangement loop start at a given beat), but there is no explicit guidance on when to prefer this over set_loop or set_loop_length, nor any prerequisite or when-not-to-use statement. 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_parameter_valueA

Write a named device parameter and verify the observed Live value.

Side effects: mutates one device parameter in one Live undo step. Example: set_parameter_value(0, 0, "Filter Freq", 0.75) updates a device; set_parameter_value(4, 1, "Out Low", 20, chain_index=0, chain_device_index=0) reaches a Velocity device nested inside a rack chain. Edge cases: chain_index alone addresses the chain's own mixer, where only volume and panning exist. Disabled, unknown, and out-of-range parameters return structured errors.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYes
chain_indexNo
track_indexYes
device_indexYes
parameter_nameYes
chain_device_indexNo

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and largely meets it: it discloses the mutation side effect ('mutates one device parameter in one Live undo step'), the verification behavior, and failure semantics for disabled/unknown/out-of-range parameters. It stops short of stating the accepted value range/normalization or any permission/rate considerations.

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 and side effects before examples, and the sentences are dense but purposeful. The two code examples consume real space, though they earn it by resolving the ambiguous chain parameters.

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 6-parameter mutation tool with no annotations and no output schema, the description covers side effects, the nested-target case, and error returns, which is close to complete. The remaining shortfalls are the value range convention and a clear statement of what the verification return contains.

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, and it partially does: the example clarifies chain_index/chain_device_index nesting and hints at a normalized value via 0.75. However track_index, device_index, and the numeric range/units of value are never explained, leaving key parameters undocumented in both places.

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 a named device parameter and verify the observed Live value'), which unambiguously distinguishes it from the sibling get_parameter_value. The scope (one parameter, one device) is clear 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 examples, including the nested-chain case (chain_index/chain_device_index reaching a device inside a rack) and the edge case where chain_index alone targets the chain mixer limited to volume/panning. It does not explicitly route the agent to get_parameter_value for reads, so it falls just short of 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.

set_plugin_presetA

Select one plugin preset by index or exact name and verify the readback.

Side effects: switches the plugin preset in one Live undo step. Example: set_plugin_preset(2, 2, preset_name="Rock Kit") selects a preset without the Configure step set_parameter_value needs. Edge cases: pass exactly one selector; unknown names, out-of-range indexes, and plugins that expose no presets return structured errors.

ParametersJSON Schema
NameRequiredDescriptionDefault
preset_nameNo
track_indexYes
device_indexYes
preset_indexNo

TDQS

A4.4/5.0
Behavior4/5

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

Without annotations, the description carries the full behavioral burden. It discloses the key side effect (switches preset in one Live undo step) and states that edge cases return structured errors. It does not, however, describe any permission or state prerequisites beyond the error cases.

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 main action, then uses clear labels for side effects, example, and edge cases. Every sentence adds distinct value with no redundant phrasing.

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 should cover returns, and it mentions verifying the readback but does not detail the return shape. It adequately covers purpose, side effects, example, and errors, but gaps remain for track_index and device_index semantics given the total lack of schema descriptions.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It clarifies that preset_name is an exact name, that either preset_index or preset_name may be used, and that exactly one selector must be passed. It does not explain track_index or device_index at all, leaving those parameters 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?

The description states a specific verb (Select), resource (plugin preset), and selection methods (by index or exact name). It distinguishes itself from set_parameter_value by noting it skips the Configure step, making its purpose unmistakable relative to that key sibling.

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?

It explicitly names set_parameter_value as an alternative and gives the condition under which this tool is preferred: no Configure step needed. It also gives the usage rule to pass exactly one selector and specifies error conditions for unknown names and out-of-range indexes.

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

set_tempoA

Set the Live Set tempo in BPM.

Side effects: writes tempo in one undo step. Example: set_tempo(128.0) sets 128 BPM. Edge cases: values outside 20..999 or non-finite values are rejected. With dry_run=True, the change is validated but not committed.

ParametersJSON Schema
NameRequiredDescriptionDefault
tempoYes
dry_runNo

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does so well: it discloses the write side effect ('writes tempo in one undo step'), the validation boundary (20..999, non-finite rejected), and dry-run semantics ('validated but not committed'). It omits return value and any permission/authorization context, which keeps it 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.

Conciseness5/5

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

Front-loaded purpose sentence followed by side effects, a concrete example, and edge cases in clearly labeled lines. Every sentence adds information; nothing is redundant.

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

Completeness4/5

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

For a simple two-parameter setter with no output schema, the description covers purpose, constraints, and dry-run behavior adequately. The only gap is what the call returns on success/failure, which is minor given the low complexity.

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 compensate, and it does: tempo is defined as BPM with an explicit valid range and rejection rule, and dry_run is explained as validate-without-commit. Both parameters gain meaning that the bare number/boolean schema does not convey.

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 with unit: 'Set the Live Set tempo in BPM.' The scope (global Live Set tempo, not a device parameter) is unambiguous, and no sibling in the list performs the same operation, so an agent can select it without inspecting the schema.

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

Usage Guidelines3/5

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

Usage is implied by the domain rather than stated: it never says when to prefer this over set_parameter_value or how it relates to playback/arrangement tools. The edge-case clause ('values outside 20..999 or non-finite values are rejected') is useful guidance, but there is no explicit when/when-not or alternative routing.

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

set_track_colorA

Set and verify one track colour, by palette index or packed RGB.

Side effects: writes Track.color_index or Track.color in one Live undo step and reads the value back; clips are never recoloured. Example: set_track_color(0, color_index=12) or set_track_color(0, color=0x336699). Edge cases: exactly one of color_index (0..69) and color (0x000000..0xFFFFFF) is required; a track that does not expose the property returns WRONG_TYPE and a rejected write returns VERIFICATION_FAILED — the write is never retried.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNo
color_indexNo
track_indexYes

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description fully carries behavioral disclosure. It states side effects (writes Track.color_index/Track.color in one undo step), verification (reads back), scope (clips are never recoloured), edge cases (WRONG_TYPE, VERIFICATION_FAILED), and explicitly notes the write is never retried. This is rich, transparent 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 structure is front-loaded and uses clear sections (Side effects, Example, Edge cases). It is appropriately sized, but the use of reStructuredText double-backticks adds minor noise.

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

Completeness5/5

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

Given no output schema and no annotations, the description covers purpose, parameters, side effects, error codes, and failure behavior. Nothing critical is missing for an agent to call this tool correctly.

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

Parameters5/5

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

Schema coverage is 0%, so the description must compensate. It does: it gives valid ranges (color_index 0..69, color 0x000000..0xFFFFFF), specifies exactly one of the two is required, and provides examples like set_track_color(0, color_index=12). It also implies track_index identifies the track.

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 (Set and verify), resource (one track colour), and enumerates the two mutually exclusive parameter modes. It is easy to distinguish from siblings like set_clip_color or set_track_property, which target different resources.

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 clarifies when to provide color_index vs color (exactly one required) but doesn't explicitly name alternatives or when not to use this tool. Still, the mode constraints give clear usage context.

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

set_track_propertyA

Set and verify one boolean track property.

Side effects: changes mute, solo, or arm in one Live undo step. Example: set_track_property(0, "mute", True) mutes the first track. Edge cases: arm is rejected for return and master tracks.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYes
propertyYes
track_indexYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does well: it discloses the side effect (changes mute/solo/arm), the undo granularity (one Live undo step), and a validation constraint that rejects arm on return/master tracks. It stops short of describing error behavior for an invalid track_index or what 'verify' actually returns.

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?

Four short sentences, front-loaded with the purpose, then side effects, an example, and edge cases in descending order of importance. No filler and no repetition of schema content.

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

Completeness4/5

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

For a 3-parameter mutation tool with no annotations, no output schema, and 0% schema coverage, the description covers purpose, side effects, undo semantics, a concrete example, and a key constraint. The only real gap is the meaning of 'verify' — whether the call returns the resulting state — and failure behavior on bad input.

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: the example reveals the 0-based track_index convention ('0 ... mutes the first track'), the boolean nature of value, and the valid property values. It does not explain whether index counts all tracks or a filtered subset, and says nothing about out-of-range indices.

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 and verify one boolean track property') and enumerates the exact property domain (mute, solo, arm), so an agent knows precisely what it mutates. It does not, however, distinguish itself from nearby siblings such as set_parameter_value or set_track_state, which an agent may confuse it with.

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 example call and the stated edge case ('arm is rejected for return and master tracks') give clear conditions for when this tool applies and when a specific property value will fail. There is no explicit comparison to alternative tools like set_parameter_value, but the usage context is unambiguous.

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

set_warp_stateC

Modify warp parameters on an audio clip.

Side effects: mutates warp state via the Extension Host. Example: set_warp_state(1, 0, warping=True, warp_mode="complex") Edge cases: requires the AbletonMCPServer Extension to be installed.

ParametersJSON Schema
NameRequiredDescriptionDefault
warpingNo
warp_modeNo
clip_indexYes
track_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description correctly carries the burden and discloses the key behavioral fact: it mutates warp state via the Extension Host, plus an environmental dependency. However it omits whether changes are reversible, what invalid warping values do, and any auth/rate constraints.

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 followed by labeled sections (Side effects, Example, Edge cases) that are easy to scan. Efficient, though the double-backtick code formatting is slightly noisy.

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 4-param mutation tool with no annotations and 0% schema coverage, the description leaves essential gaps: allowed warp_mode values, default behavior when warping/warp_mode are null, and effect on existing clip state. Output schema exists so return values need not be covered, but parameter semantics remain thin.

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 but largely fails. The example hinting `set_warp_state(1, 0, warping=True, warp_mode="complex")` implies positional meaning and one sample value, but valid warp_mode values, defaults, and what warping toggles are never explained.

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 ('Modify warp parameters on an audio clip'), which reads clearly against the read-oriented 'get_warp_state' sibling. It does not explicitly name that sibling, but the mutation verb makes the distinction inferable.

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

Usage Guidelines2/5

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

No when-to-use guidance is given, no alternatives named, and no conditions for choosing this over get_warp_state or set_clip_properties. Only a prerequisite ('requires the AbletonMCPServer Extension') is offered, which is not usage guidance.

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

start_playbackA

Start Live's transport.

Side effects: starts playback in one undo-scoped command. Example: start_playback() returns the observed playing state. Edge cases: Live can reject the call while shutting down.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations the description carries the full burden, and it delivers real behavioral context: the mutation happens 'in one undo-scoped command' (undo semantics an agent otherwise couldn't know) and the call can be rejected during shutdown. It omits whether the operation is reversible via a single undo step client-side and what state is affected beyond playing.

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?

Four short, front-loaded labelled lines (purpose, side effects, example, edge cases) with no filler; an agent can scan it in one pass. The example line is slightly redundant in phrasing but does supply return-behavior information not available elsewhere.

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 trivial no-arg tool with no annotations and no output schema, the description covers purpose, mutation scope, undo scoping, the observed return state, and a failure mode, which is close to sufficient. Minor gaps remain around whether record-arm or song position interact with the start.

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 per the baseline there is nothing for the description to disambiguate. It correctly says nothing about argument syntax, which is appropriate for a no-arg call.

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: 'Start Live's transport,' which an agent can immediately map to a playback-start operation. It does not, however, name or distinguish itself from the clearly related sibling stop_playback (nor from fire_clip/fire_scene), so sibling differentiation is left to inference.

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 purpose is unambiguous enough that usage is implied, and the edge-case note ('Live can reject the call while shutting down') warns of one failure context. But it never states when to prefer this over stop_playback or the clip/scene firing tools, so no explicit routing guidance is provided.

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

stop_playbackA

Stop Live's transport.

Side effects: stops playback in one undo-scoped command. Example: stop_playback() returns the observed playing state. Edge cases: Live can reject the call while shutting down.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does real work: it discloses undo scoping ('one undo-scoped command'), the observed return value, and a failure condition ('Live can reject the call while shutting down'). It stops short of stating idempotency or permission/auth requirements, but this is strong disclosure for a simple transport action.

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

Conciseness4/5

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

Front-loaded purpose followed by labeled 'Side effects', 'Example', and 'Edge cases' sections, which scan well. Slightly padded: the 'Example' line is really a return-value note rather than an example, a minor structural inconsistency.

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

Completeness4/5

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

For a zero-parameter, no-output-schema tool, the description covers purpose, side effect, return observation, and an error edge case. The one notable gap is the absence of any usage/routing context relative to start_playback, but otherwise an agent has what it needs to call it correctly.

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

Parameters4/5

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

The schema is empty (0 parameters), so the baseline of 4 applies and there are no parameters for the description to clarify. No missing parameter meaning to compensate for.

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 ('Stop Live's transport'), which is unambiguous and directly distinguishes it from the sibling start_playback. An agent can select this tool confidently 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 Guidelines2/5

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

No when-to-use guidance and no reference to the obvious alternative start_playback or any prerequisite context. The only implicit cue is the verb itself; nothing routes the agent between stopping and starting playback or explains sequencing.

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

take_snapshotA

Capture a normalized full-state debugging snapshot.

Side effects: none. Example: take_snapshot() returns schema version, tracks, and context. Edge cases: large Sets produce correspondingly large JSON results.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full load and does reasonably well: it explicitly declares 'Side effects: none', which is the key safety fact for a zero-arg capture tool. It also discloses the returned contents (schema version, tracks, context) and a real edge case (large Sets produce large JSON results). It stops short of noting whether the snapshot is stored server-side or how it is later compared.

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 three short labeled facets (side effects, example, edge cases). Every sentence earns its place and no filler is present, though the 'Example' line is somewhat redundant with the purpose statement.

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

Completeness4/5

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

For a zero-parameter tool with no output schema and no annotations, the description supplies what is missing: it explains what the call returns, that it has no side effects, and how result size behaves. The main residual gap is not connecting it to diff_snapshots_tool, which limits completeness for the debugging workflow.

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

Parameters4/5

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

The tool takes zero parameters, so there is no parameter semantics to explain and the baseline is 4. The schema's additionalProperties:false is consistent with the parameterless signature and nothing is misrepresented.

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: 'Capture a normalized full-state debugging snapshot'. This distinguishes it from the many single-aspect getters in the sibling list (get_track_state, get_session_info, etc.) by conveying full-state scope, though it never names a sibling to sharpen the distinction and the 'normalized' adjective is left unexplained.

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 word 'debugging' implies the use case, which is enough to infer it is for diagnostic capture rather than routine reads. However, it gives no explicit when-to-use vs when-not guidance and never mentions the obvious companion, diff_snapshots_tool, which an agent would likely need to pair with it.

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

ungroup_trackA

Attempt to take a track out of its group; Live's API cannot do this.

Side effects: none — the request is validated and refused. Nothing is deleted under any circumstance. Example: ungroup_track(2) returns CAPABILITY_UNAVAILABLE with the API evidence in details. Edge cases: a track that is not grouped returns WRONG_TYPE before the capability refusal.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_indexYes

TDQS

A4.1/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so thoroughly: 'Side effects: none,' 'nothing is deleted under any circumstance,' the CAPABILITY_UNAVAILABLE return, and the WRONG_TYPE edge case are all disclosed. This is exemplary behavioral disclosure for a refusal-only tool.

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

Conciseness5/5

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

The key caveat is front-loaded before any details, and the labeled sections (Side effects, Example, Edge cases) let an agent skip to what it needs. Every sentence adds information and none is redundant.

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

Completeness4/5

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

For a tool with no output schema and no annotations, the description covers return codes, side effects, and edge cases adequately. The only real gap is that the track_index parameter is left semantically undocumented.

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 the single required track_index parameter. The example 'ungroup_track(2)' only confirms that an integer is acceptable, which the schema's type already states; it does not explain indexing base, range, or how to obtain a valid index.

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

Purpose5/5

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

States a specific verb+resource ('take a track out of its group') and immediately front-loads the critical fact that Live's API cannot perform it. This distinguishes it cleanly from siblings like move_track_to_group and merge_groups, which the agent might otherwise confuse it with.

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

Usage Guidelines3/5

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

The description implies the tool should not be called with an expectation of success, and the 'edge cases' note clarifies the not-grouped scenario, but it never explicitly names an alternative or states when to choose this versus a working route. 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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 97 tool updatesv0.7.0
    • First observedadd_notes_pattern
    • First observedadd_notes_to_clip
    • First observedanalyze_audio
    • First observedanalyze_mix
    • First observedbuild_extension
    • First observedbulk_create_cue_points
    • First observedclear_clip_notes
    • First observedcreate_audio_track
    • First observedcreate_clip
    • First observedcreate_clip_automation
    • First observedcreate_clip_automation_curve
    • First observedcreate_cue_point
    • First observedcreate_midi_track
    • First observeddelete_arrangement_clip
    • First observeddelete_clip
    • First observeddelete_cue_point
    • First observeddescribe_instrument
    • First observeddiagnose_clip_targets
    • First observeddiagnose_midi_clip
    • First observeddiff_snapshots_tool
    • First observedduplicate_session_clip_to_arrangement
    • First observedextract_single_cycle
    • First observedfind_frequency_masking
    • First observedfire_clip
    • First observedfire_scene
    • First observedget_ableton_logs
    • First observedget_arrangement_clips
    • First observedget_bridge_status
    • First observedget_browser_categories
    • First observedget_clip_automation
    • First observedget_clip_info
    • First observedget_clip_notes
    • First observedget_clip_summary
    • First observedget_composition_structure
    • First observedget_control_surfaces
    • First observedget_device_chains
    • First observedget_device_list
    • First observedget_locators
    • First observedget_loop_settings
    • First observedget_midi_chain_report
    • First observedget_parameter_value
    • First observedget_plugin_presets
    • First observedget_project_metadata
    • First observedget_routing
    • First observedget_scene_state
    • First observedget_scenes
    • First observedget_selected_context
    • First observedget_session_info
    • First observedget_session_overview
    • First observedget_song_length
    • First observedget_track_list
    • First observedget_track_state
    • First observedget_warp_state
    • First observedgroove_apply
    • First observedgroove_compare
    • First observedgroove_evidence
    • First observedgroove_generate
    • First observedgroove_search
    • First observedlifecycle_status
    • First observedlist_device_params
    • First observedlive_fade
    • First observedlive_find_clip
    • First observedlive_find_device
    • First observedlive_find_track
    • First observedload_device_to_track
    • First observedmerge_groups
    • First observedmove_arrangement_clip
    • First observedmove_track
    • First observedmove_track_to_group
    • First observedmusic_generate_bass
    • First observedmusic_generate_drum_groove
    • First observedmusic_plan_production
    • First observedplan_user_journey
    • First observedquit_ableton
    • First observedrename_track
    • First observedreorder_tracks
    • First observedrun_batch
    • First observedsave_set
    • First observedscaffold_extension
    • First observedsearch_browser
    • First observedset_arrangement_clip_properties
    • First observedset_clip_color
    • First observedset_clip_properties
    • First observedset_current_song_time
    • First observedset_loop
    • First observedset_loop_length
    • First observedset_loop_start
    • First observedset_parameter_value
    • First observedset_plugin_preset
    • First observedset_tempo
    • First observedset_track_color
    • First observedset_track_property
    • First observedset_warp_state
    • First observedstart_playback
    • First observedstop_playback
    • First observedtake_snapshot
    • First observedungroup_track

TDQS

B3.1/5.0

Scored across 97 tools

Disambiguation2/5

Several read/snapshot tools overlap heavily (get_session_overview, get_session_info, get_track_state, take_snapshot, get_composition_structure) and clip/device queries plus analysis/generation tools have nearby scopes. Descriptions help, but at 97 tools an agent will frequently struggle to pick the right one.

Naming Consistency3/5

Names are mostly snake_case, but the set mixes patterns: get_, list_, live_find_, diagnose_, music_generate_, groove_, set_, create_, and a stray diff_snapshots_tool. Readable, yet not a single predictable verb_noun convention.

Tool Count1/5

97 tools is far beyond a well-scoped MCP surface (typical 3-15). Many are niche diagnostics, capability-refusal stubs, or overlapping read helpers, making the server heavy and hard to navigate.

Completeness3/5

Coverage is broad across session/transport, tracks, clips, devices, browser, automation, audio analysis, generation, and extension workflows. However, obvious lifecycle gaps remain: no scene create/delete/rename, no track deletion, and no direct clip-stop operation.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers