Skip to main content
Glama

fender-studio-mcp

An MCP server for Fender Studio Pro 8 (the DAW formerly called PreSonus Studio One). It lets Claude and other MCP clients read your songs, control the running app, and listen to what it plays: capture the output, measure loudness, peaks, bands and stereo image, change something, and measure again.

Fork notice. This is a fork of NeanderthalMan/studio-one-mcp by Adam Morgan (MIT), which did the hard work: the .song parser, the in-app bridge device and nearly all of the tools. This fork adds:

  • Studio Pro 8 support, tested on Studio Pro 8.1.2 (macOS): finds the Fender profile instead of an old PreSonus one, recognises the Studio Pro process, uses the renamed Session/Remove Track command, and tells same-named tracks apart (an instrument track's note channel and its audio channel).

  • No IAC Driver needed on macOS: the server publishes its own CoreMIDI port, studio-one-mcp, and every server process shares it. Studio Pro reconnects to it by name.

  • Audio capture and analysis (audio_capture, audio_analyze): records Studio Pro's output through a Core Audio process tap (no BlackHole, no loopback driver, nothing to route) and reports integrated/short-term loudness, LRA, true peak, clipping, crest factor, band energy, low-end mono, width and correlation, with an optional reference comparison and a PNG.

  • Settle delays after edits, because Studio Pro 8 applies some command edits just after the device script returns.

Layer

How

Needs Studio Pro running?

song_* tools

Parse .song files, which are zip archives of XML: tempo map, meter, markers, arranger sections, tracks, takes, clips, mixer, plug-in inserts and media.

No. Reflects the last save or autosave.

live_* tools

A small control-surface device, installed into Studio Pro, that answers requests through a local file mailbox. It uses the app's own JavaScript device SDK.

Yes

audio_* tools

Record the app's output with a macOS process tap, then analyse the WAV in Python.

Yes (macOS 14.4+)

Status: works day-to-day on Studio Pro 8.1.2, macOS. The upstream project was developed on Studio One 5.5.2; Windows is wired in but untested here, and the audio tools are macOS only.

Much of the text below still says "Studio One": read it as Studio Pro 8. Internal names (the studio-one-mcp device in External Devices, the MIDI port, the data folder, STUDIO_ONE_* variables) are kept as they were, so the fork stays a drop-in replacement for the original install.

An independent project, not affiliated with or endorsed by Fender or PreSonus. Studio Pro and Studio One are their trademarks.

Tools

Tool

What it does

song_list

Songs on disk, newest first. This includes songs that exist only as autosaves.

song_read

One song, as a summary (one line per track) or full (every take and clip, instrument notes, each plug-in's saved settings, automation envelopes). Both include the song notes and channel notes when there are any. Positions are given as bar/beat and as seconds.

song_history

A song's autosaves, for comparing versions.

song_diff

What changed between two saves: tempo, meter, markers, sections, tracks (added, removed, renamed, takes, events, notes), mixer (levels, mute/solo, automation mode, output, plug-ins and their settings) and automation. By default it compares the song with its newest autosave, older to newer.

live_status

Whether the bridge is reachable. If not, it says why.

live_song

The open song as it is right now, unsaved changes included: title, file path, transport (playing, recording, loop, position, tempo, loop range, precount, preroll), track count, selected tracks.

live_tracks

Tracks with media type, colour, mixer channel, number of takes, selection, and events (name, start, end, length in seconds, muted).

live_select_track

Select a track by name, so that selection-based commands act on it.

live_transport

Press a transport button: play, stop, record, return to zero, rewind or forward a bar, go to the loop start or end, toggle loop, click, precount or preroll.

live_set_transport

Set the tempo, the playhead position (in seconds, or bars like "9.1.1.0"), and loop, precount or preroll on or off.

live_markers

Markers with number, position (seconds and bars) and name (live, from the marker track). Reading them briefly moves the playhead and puts it back, so it refuses while playing. Studio One only has recall commands for markers 1 to 20.

live_add_marker / live_delete_marker / live_rename_marker

Add a marker at a position (seconds or bars), optionally named; delete one by number or position; rename one by number or name. The playhead is left where it was.

live_select_events

Select every event on some tracks or on all of them, or clear the selection. Selection-based commands then act on those events, e.g. Event/Mute Events, Edit/Split at Cursor, Event/Quantize, Track/Activate Next Layer (switch takes), Edit/Undo.

live_set_loop

Set the loop range in seconds or bars (e.g. "9.1.1.0" to "17.1.1.0"), and turn looping on or off.

live_takes

A track's takes: list them (with names from the last save), switch to the next or previous take or to take N, add an empty take or duplicate the active one, unpack them to separate tracks, or recall a retrospective recording.

live_track_state

Arm, monitor, mute, solo, hide or duplicate a track by name, or show all tracks.

live_edit_events

Clip edits on one track: mute or unmute, quantize, transpose, split or trim at a time, merge, delete.

live_events

One event on a track, by number (in time order) or name: list them (with gain and fades for audio), edit it (move to a position, move to another track, set or add gain in dB, fade in and out) as one undo step, duplicate it N times, or copy it to a position on any track (through the clipboard).

live_add_track

Add an audio (mono or stereo), instrument, folder or automation track.

live_meters

Peak dB for every channel. With duration_ms, it samples during playback and reports the highest peak and any clipping.

live_save, live_undo, live_redo

Save (optionally as a new version), and undo or redo edits, with a step count. Check the result rather than counting undo steps: see Undo.

live_plugins / live_add_plugin

The installed plug-ins by name (PreSonus, VST and AU): effects, or instruments with kind: "instrument". Add an effect to a channel's inserts by name; one undo removes it.

live_add_send

Add an effect send: Studio One makes a new FX channel with the plug-in and a send to it (a reverb or delay send). Sending to an existing bus is not reachable from scripts, and this is not reliably undone.

live_add_instrument_track

Add an instrument track with a new instance of an instrument by name (Mai Tai, Presence…). One undo removes both.

live_inserts / live_bypass_insert

Plug-ins on each channel (slot, name, bypassed), and bypass one slot or the whole rack.

live_sends / live_set_send

Each channel's sends (destination name, level 0..1 and in dB, mute), and set a level or mute.

live_plugin_params / live_set_plugin_param

A plug-in's parameters (value, display text like "2.0:1", range, normalised value), and set one by display text, normalised value or raw value. Studio One cannot list a plug-in's parameters, so names come from its presets and Studio One's remote-control map, which covers the PreSonus plug-ins. For other plug-ins, pass the names.

live_mix_snapshot

Save the whole mix under a name (every channel's volume, pan, mute, solo, monitoring and send levels, per song), restore it later, or list them. Restore sets only what differs. Record-arm and automation mode are not included.

live_plugin_snapshot

Save a plug-in's current settings under a name, and restore them onto the same kind of plug-in on any channel. A stand-in for presets: Studio One's preset commands act on the focused editor window and store through dialogs.

live_record_setup

Read and set the metronome (click, precount and its length in bars, preroll), and set record modes (replace, loop takes or mix, takes to layers, input quantize, note erase). Studio One does not expose record modes for reading, so those are reported as set, not confirmed. Auto Punch: off, in, out or both, with a punch range (Studio One punches between the loop locators; looping is not switched on).

live_set_automation

Set a channel's automation mode: off, read, touch, latch or write. live_channels shows each channel's mode.

live_write_automation

Write volume (in dB) or pan automation along points, straight lines between them. Scripts cannot add envelope points, so it plays the range once in Write mode with the fader following the curve, then leaves the channel in Read. Audible, and only with confirm: true.

live_arranger

Arranger sections: list them (live), go to one by number or name (a jump at the sync point while playing, a playhead move while stopped), step next or previous while playing, set the sync mode, create sections from markers, and add, rename, resize, move or remove a section (each one undo; the events under a section are not moved). With its content on every track: copy a section in at a position (what follows moves later), delete it and close the gap, or move it (content: true). The loop range is kept.

live_macros / live_run_macro

The macros (built-in and your own) by title, and run one by title, or only check whether it is enabled.

live_time_signature

The time signature at any positions; insert one at a bar, or remove one. Each is one undo.

live_tempo

The tempo at any positions, set the tempo of the segment containing a position, or insert a tempo change. Studio One must be stopped; the playhead is put back. Removing an inserted change takes undo, so check with at afterwards.

live_notes

Notes in an instrument track's parts: pitch (number and name, middle C = C3), velocity 0 to 127, start, end and length in seconds, start in beats. Read-only.

live_edit_notes

Edit an instrument track's notes: transpose, set or change velocity, move, change length, quantize (to a grid like 1/16, 1/8T or 1/8., with a strength), delete (with a filter), add notes. Filters by pitch and beat range. Runs through a small edit-task extension installed with the device, so no dialog opens, and Studio One's own quantize setting is left alone.

live_track_edit

By track name: rename, recolour ("#rrggbb"), remove, move it before or after another track, route its output to a bus or output, move it into a folder (creating the folder if asked), or rename its events (numbered in time order if asked). Rename and colour are not on the undo stack; route is set back with the "before" value it returns; remove, move, folder and event renames undo. Move, route, folder and event renames run through the MCP Track Edit task in the extension.

live_bounce

Bounce all events on a track, in place or to a new track (the originals are muted), without dialogs. One undo reverts it; the rendered file stays in the song's Bounces folder. Mixdown and stem export open dialogs, so they are not offered.

live_record

Record, which writes a take into the song. Only runs with confirm: true. It can arm a track first, start from a position, set precount, and stop after N seconds.

live_channels

Live mixer: volume, pan, mute, solo, record-arm, input monitoring, automation mode, and routing (input and output by name) for each channel. To change a track's output, use live_track_edit with route.

live_set_channel

Set volume, pan, mute, solo, record-arm or input monitoring on a channel.

live_add_bus

Create a bus for some tracks (their outputs are routed into it) or a VCA that controls them. One undo removes it and puts the routing back.

live_command

Run any of the roughly 1,000 Studio One commands, e.g. Transport/Start, Edit/Undo, File/Save or View/Console. check_only reports whether one is enabled without running it.

live_list_commands

Discover command names, optionally with whether each is enabled right now.

live_changes

What changed in the song since the previous call: tracks added, removed, renamed or reordered, events on each track, mixer changes (levels, mute and solo, arm, monitor, automation mode, output, plug-ins), tempo, loop, markers and sections. It compares snapshots, so it sees what you did by hand as well, as net changes.

live_eval

Run JavaScript inside Studio One to explore its object model. Opt-in only.

audio_capture

Record what Studio Pro plays to a WAV (32-bit float) through a macOS process tap. If the transport is stopped it plays the requested range, with click and precount off, then puts the playhead back. Never records into the song. macOS 14.4+.

audio_analyze

Analyse a capture: integrated and short-term loudness, LRA, true peak and clipped samples, crest factor, energy per band, low-end mono, width and correlation, per-section stats, and an optional comparison with a reference file or an earlier capture. Writes a PNG overview.

Related MCP server: ableton-mcp-extended

Install

You need Node.js 20 or newer and Studio Pro 8 (Studio One 5–7 should work as upstream). For the audio tools you also need Xcode command-line tools (swiftc) and Python 3.10+.

git clone https://github.com/b4blue/fender-studio-mcp.git
cd fender-studio-mcp
npm install
npm run build:audio      # optional: builds the s1tap recorder and the Python analyser venv
npm run setup

setup walks you through each step and asks before changing anything:

  1. It finds your Studio Pro (or Studio One) user profile.

  2. It installs the MCP Bridge device into it, and a small extension (Extensions/studio-one-mcp.edittasks) that lets the bridge edit notes.

  3. It checks for a virtual MIDI port, which acts as the bridge's doorbell:

    • macOS: nothing to do. If the IAC Driver is online it is used; otherwise the server publishes its own port named studio-one-mcp while it runs.

    • Windows: install loopMIDI and add a port named studio-one-mcp.

  4. It registers this checkout with Claude Code (all projects, as studio-one) and, if you want, Claude Desktop. It backs up the Desktop config before editing it. For any other client, it prints the JSON to paste.

  5. It shows the one step you do in the app: Preferences… (⌘,) on a Mac, Options on Windows → External Devices → Add… → studio-one-mcp → MCP Bridge. Set Receive From to studio-one-mcp (or your IAC bus), and Send To to None. Restart Studio Pro first if it was running. The port only exists while the MCP server runs: start your MCP client before (or restart it after) opening Studio Pro, and the app reconnects to it by name.

  6. It waits for Studio Pro to answer.

Use --yes to accept the defaults, --dry-run to see what it would do, and --profile <dir> to pick a profile.

If something doesn't work, run:

npm run doctor

It checks every link in the chain and tells you how to fix the first broken one: Node, profile, Songs folder, device installed and current, edit-task extension installed and current, MIDI port, app running, bridge loaded, bridge answering, the edit task loaded, and MCP client registration.

To remove the device and the extension: node src/cli.js uninstall, then remove MCP Bridge under External Devices.

To update: git pull, npm install, then npm run setup again, and restart Studio Pro: it loads the device and the extension only at startup.

Without the live bridge: the song_* tools need nothing but the MCP registration. They read your .song files directly.

Tips from use on Studio Pro 8

  • live_set_channel volume is a linear gain (1.0 = 0 dB, 3.162 = +10 dB, 0.5 ≈ −6 dB).

  • Don't add a plug-in and undo it within a second or so, and don't read inserts while an undo is removing plug-ins: Studio Pro 8 can crash in that window.

  • Studio Pro 8 has no script command to remove an instrument from the rack; do that by hand.

  • For short A/B captures, compare the ungated loudnessDeltaLu rather than integrated LUFS (gating can hide the change). Expect about ±0.2 dB true peak and ±3 % width between identical captures.

  • Long audio_capture runs can exceed an MCP client's default 60 s request timeout.

Configuration

Env var

Default

STUDIO_ONE_SONGS

~/Documents/Studio One/Songs (colon-separated list)

STUDIO_ONE_PROFILE

newest …/PreSonus/Studio One * user folder

STUDIO_ONE_MCP_MIDI_PORT

first MIDI output whose name contains IAC; otherwise the server's own port

STUDIO_ONE_MCP_VIRTUAL_PORT

studio-one-mcp (name of the port the server publishes on macOS)

STUDIO_ONE_MCP_HOME

~/Library/Application Support/studio-one-mcp (the mailbox lives here)

How the live bridge works

Studio One runs control-surface scripts in an embedded SpiderMonkey engine. Scripts can read and write files but cannot open sockets, so the bridge is a folder. Studio One 5 also gives scripts no usable timer, so the bridge is event-driven. After writing a request, the server presses MIDI note 119 on a virtual MIDI bus (the macOS IAC Driver). The device's surface file maps that note, as a trigger control, to a toggle on a component parameter, and the component answers on each change.

flowchart LR
  client["MCP client<br/>(Claude)"] <-->|stdio| server["studio-one-mcp<br/>server (Node)"]
  server -->|"1 write request.json"| mailbox[("mailbox folder<br/>request.json<br/>response.json<br/>status.json")]
  server -->|"2 press note 119"| iac["virtual MIDI bus<br/>(IAC Driver)"]
  subgraph s1 ["Studio One"]
    device["MCP Bridge device<br/>(control-surface script)"]
    doc["song, mixer, transport,<br/>commands"]
    task["MCP Edit task<br/>(extension)"]
  end
  iac -->|"3 note wakes the script"| device
  mailbox -->|"4 read request"| device
  device <-->|"5 run the op"| doc
  device -.->|"note edits only"| task
  device -->|"6 write response.json"| mailbox
  mailbox -->|"7 read response"| server
status.json    device → client   session id and heartbeat; refreshed whenever the bridge runs
request.json   client → device   {id, op, args}, written atomically (tmp + rename)
response.json  device → client   {id, ok, result | error}

One request, step by step:

sequenceDiagram
  autonumber
  participant C as MCP client
  participant S as studio-one-mcp server
  participant M as mailbox folder
  participant B as IAC Driver (MIDI)
  participant D as MCP Bridge device in Studio One
  C->>S: tool call, e.g. live_set_channel
  S->>M: read status.json (is the bridge loaded?)
  S->>M: write request.json {id, op, args} (tmp file, then rename)
  loop every 150 ms until answered (5 s timeout)
    S->>B: note 119 (the doorbell)
    B->>D: trigger toggles the bridgeTick parameter
  end
  D->>M: refresh status.json (heartbeat)
  D->>M: read request.json
  Note over D: a new id? run the op in Studio One. An id already answered is skipped, so repeat presses are harmless.
  D->>M: write response.json {id, ok, result | error}
  loop every 20 ms
    S->>M: read response.json
  end
  Note over S: the response id matches the request id
  S->>C: result, or the error as a tool error

The client re-sends the press every 150 ms until a response arrives. The component answers each request id once, and the client sends one request at a time (the mailbox has a single slot).

For note edits (live_edit_notes) there is one more hop inside Studio One, described under Editing notes: the device writes the operations to edit-request.json, runs the MCP Edit command, and reads edit-result.json before it writes its response.

Two rules for anything that runs inside Studio One, both learned on 5.5.2:

  • Never throw. An exception raised while Studio One is calling into a script becomes a modal Scripting Error dialog, even when the code catches it. While that dialog is open, some edits (mute, solo) silently do not apply. The device scripts return errors as values, and a test enforces it.

  • Never call a member of a host object without first checking that it exists. A TypeError on a host object raises the same dialog.

  • The same goes for code sent through live_eval. A throw there popped the dialog in testing, the first time in a session, even though the bridge catches it and reports the error.

Editing notes

A control-surface script can read notes but not change them. Studio One's own Musical Functions (Transpose, Velocity, Quantize…) are edit tasks: scripts that Studio One hands the selected notes and a set of editing functions. studio-one-mcp installs one of its own, MCP Edit, as a user extension: a folder in the profile's Extensions with a ZIP .package inside (a loose Scripts folder is not scanned). It shows up as the command Musical Functions/MCP Edit. For live_edit_notes, the bridge writes the operations to mailbox/edit-request.json, selects the track's parts, runs that command, and reads mailbox/edit-result.json. The task asks for no dialog, so none opens, and it applies only a fixed set of operations, never code from the mailbox.

The extension carries a second task, MCP Track Edit (Track/MCP Track Edit), for what a control-surface script cannot change on tracks: routing a channel's output (through the same connectChannel that Studio One's "Add Bus for Selected Channels" uses), moving tracks into folders, and renaming events. It works the same way, through track-edit-request.json and track-edit-result.json, and needs no selection. Its song-structure operations are in McpTrackOps.js: track order, instrument tracks, plug-ins and FX sends, single events, arranger sections, markers and time signatures. Everything one run of the task changes is one undo step. Studio One reads the package each time the task runs, so a reinstall takes effect without a restart (the bridge device itself still needs one).

What these found out about Studio One 5.5.2, in short:

  • The Marker Track and Arranger Track are the first two tracks the song's own track iterator gives, and their events are the markers and sections, with names. Event times are numbers in each event's own time format (seconds, samples or quarter-note beats), converted through a MediaTime.

  • A track leaves a folder for the top level right after that folder, and a top-level track does not move at all, so reordering goes through a temporary folder made at the target place.

  • DeviceEditFunctions.insertDevice (what Studio One's own Insert FX task uses) puts plug-ins on the undo stack; the insert folder's own insertDeviceClass does not. Into a channel's Sends it makes an FX channel with a send. A send to an existing bus has no scripted route.

  • Commands that open a dialog take its values as arguments (findCommand(...).arguments lists them, e.g. Bar, Numerator, Denominator for Insert Time Signature). Given as numbers they run without the dialog; given as strings the dialog opens and blocks the bridge until someone closes it.

  • Edit/Paste goes to the editor's focus track, not the selected one; the task focuses the target first.

  • There is no scripted way to add automation envelope points, so live_write_automation records them the way a person would, in Write mode.

  • With an arranger section selected, Edit/Copy takes the section and everything under it, and Edit/Paste inserts that at the playhead; Edit/Delete and Cut take only the section. Edit/Delete Time in Loop removes a range from every track, section and marker.

Watching for changes

live_changes takes a snapshot of the song on every call (tracks and their events, the mixer, plug-ins, tempo, loop, markers and sections), keeps it in the studio-one-mcp data folder per song, and reports the difference from the previous one. The first call for a song only takes a look. Changes are net (a fader moved and moved back is no change) and do not say who made them.

Studio One 5.5.2 can also notify scripts of changes (Host.Signals.advise), and a live feed built on that was tried and dropped: it crashed Studio One three times. Reading a parameter's text while a song was closing crashed it at once; unsubscribing from an object that was already gone crashed it about a minute later; and unsubscribing while Studio One quit crashed it at quit. A close does send the DocumentManager's activeDocumentChanged before tearing the song down, but there is no such notice before quitting, so there is no safe moment to let go. Comparing snapshots touches none of that.

Undo

Changing a mixer parameter and setting it back (volume, monitor, a plug-in parameter, automation mode) is recorded as one undo step that changes nothing, and it is recorded late, on top of edits made after it. So an Undo right after such a change can remove that invisible step instead of the edit you just made. Check the song after undoing, and undo again until your edit is gone. The live tests do exactly that, and they stop and redo if an undo changes the song's track or channel count unexpectedly.

Testing

npm test            # unit and end-to-end tests; no Studio One needed
npm run test:live   # against a running Studio One with the bridge installed

The unit tests run the real device scripts and the edit task under node:vm against a fake Studio One host (test/helpers/s1host.js). The live tests change only what they restore, and check the song afterwards (tracks, channels and the track selection are compared at the end of the run). They never record, save or bounce.

  • Set and set back: one channel's mute, solo, volume, monitor and automation mode; a plug-in parameter (directly and through a snapshot); a send level; the metronome's click and precount length; the tempo, playhead and loop; takes (next/previous and go-to).

  • Edits that are then undone: a split, an added track, an added and duplicated take, a bus, and note edits (a transpose, a velocity and a quantize) through the edit task; a track moved, a plug-in added, an instrument track added, an event moved with gain and a fade, an event copied, a section added and renamed, a named marker added and renamed. Undo runs until the edit is gone (see Undo).

  • A time signature inserted at bar 9 and removed again.

  • Not in the live suite: live_add_send (not reliably undone) and live_write_automation (it plays the song). Both were checked by hand on a scratch song, the automation by saving and reading the envelope back.

  • A marker is added at 3.25 s and deleted; a track's events are muted and unmuted; a track is muted and muted again (track mute is not on the undo stack); a scratch track is added, renamed, recoloured and removed.

  • Some tests need something in the song and skip without it: a PreSonus plug-in on a channel, a send, a track with takes, an instrument track with notes, and two saved arranger sections.

File/Save is only checked, never run. Record modes and bouncing are not in the live suite: record modes cannot be read back to restore them, and every bounce leaves a file in the song folder.

Security: anything that can write to the mailbox folder, which means anything running as your user, can drive Studio One through it. With --allow-eval, it can also run arbitrary script inside Studio One. Keep the folder local, and leave eval off unless you are exploring.

Format notes (.song)

These were verified on songs saved by Studio One 5.5.2:

  • Events and markers with timeFormat="2" are in quarter-note beats. An audio event's length equals the clip's frameCount / sampleRate × bpm / 60.

  • TempoMapSegment@tempo is seconds per quarter note, so 0.5 means 120 bpm.

  • The transport's position and loop points are in seconds.

  • Mixer gain is linear amplitude, and pan runs from 0 to 1 with 0.5 as centre.

  • A track's takes are Layers, and MediaTrack@activeLayer picks the one that plays.

  • Tracks link to mixer channels through UID x:id="channelID", which matches the channel's uniqueID.

  • Insert slots are the unnamed <Attributes name="FXnn"> children of Inserts. Siblings with an x:id (Presets, Combinator) are rack state.

Prior art

Studio Pro and Studio One are trademarks of Fender / PreSonus Audio Electronics. This project is not affiliated with either.

License

MIT. Original work © 2026 Adam Morgan; Studio Pro 8 fork © 2026 Boris Miljkovic. See LICENSE.

Available Tools

59 tools
audio_analyzeA

Measure a WAV (an audio_capture, a bounce, any mix): integrated / short-term / momentary loudness and LRA (EBU R128), sample and true peak, crest factor and PLR, energy per band (sub 20-60, low 60-200, low-mid 200-500, mid 500-2k, presence 2k-6k, air 6k-20k Hz) as dB of the total, low end below 120 Hz (mono or not), L/R correlation over time, stereo width per band, loudness per section, and flags worth acting on. With reference (another WAV, e.g. a capture before a change or a commercial track), also the difference per measure; band differences are loudness-independent. For before/after on a short excerpt use loudnessDeltaLu (ungated): integrated LUFS is gated for whole songs and can hide a change. Repeat captures of the same passage differ by about ±0.2 dB true peak and ±3% width (start timing), so smaller moves are noise. Writes a PNG of the plots next to the file.

NameRequiredDescriptionDefault
fileYes
plotNoWrite the PNG (default true)
segmentNoSection length in seconds when sections are not given (default 10)
sectionsNoSeconds within the file
referenceNo

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: it discloses the side effect ("Writes a PNG of the plots next to the file") and the plot default, states the measurement noise floor, and explains the gating caveat that can hide real changes. What it does not state is whether it only reads (implied but never asserted), whether the file must be local, or whether other formats are rejected.

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 and no filler sentences, but it is essentially one very long run-on sentence packed with a comma-separated inventory of metrics. Since there is no output schema, that inventory largely earns its place; still, the density (band edge frequencies on every band, nested parentheticals) makes it harder to scan than it needs to 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 tool with no output schema, listing the returned measurements and the reference-difference behavior is exactly the right compensation, and the noise-tolerance note arms the agent to interpret results correctly. Remaining gaps are minor: it references an output field (`loudnessDeltaLu`) that appears nowhere in the input schema without saying so explicitly, and it never confirms the tool is read-only apart from the PNG write.

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 60%, and the description adds real meaning to the biggest gap: the `reference` parameter is explained as another WAV (a capture before a change or a commercial track) that yields a difference per measure, with the useful note that band differences are loudness-independent. `plot` is reinforced by "writes a PNG ... next to the file", and sections are implied by "loudness per section", though the `segment` default of 10 s is left entirely to the schema.

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

Purpose5/5

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

Opens with a specific verb and resource ("Measure a WAV") and then enumerates exactly what is measured: EBU R128 integrated/short-term/momentary loudness and LRA, sample/true peak, crest factor, PLR, per-band energy, low-end below 120 Hz, L/R correlation, stereo width, and section loudness. It also names its input sources (an audio_capture, a bounce, any mix), which cleanly separates it from the capture/bounce siblings that produce those files.

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

Usage Guidelines4/5

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

Gives clear usage context: use a reference WAV when comparing before/after or against a commercial track, and use the ungated loudnessDeltaLu rather than integrated LUFS for short excerpts because integrated is gated for whole songs. It also warns that repeat captures differ by ~±0.2 dB true peak and ~±3% width, so smaller moves are noise — practical when-to-trust-it guidance. It stops short of explicitly naming an 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.

audio_captureA

Record what the running Studio One plays, to a WAV file (32-bit float, the session's rate), through a macOS process tap: nothing is installed and the audio output is unchanged. If the transport is stopped, it plays from from_seconds / from_bars (or the playhead) for the capture, then stops and puts the playhead back; the metronome click and precount are off while it plays. Audible. Never records in Studio One. Pass the file to audio_analyze. Recordings go to the studio-one-mcp data folder unless out is given.

NameRequiredDescriptionDefault
outNoWAV path to write
secondsYesLength, up to 600
from_barsNoStart like "9.1.1.0"; alternative to from_seconds
from_secondsNo

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 load and does most of it: nothing gets installed, existing output routing is untouched, transport/playhead are restored, metronome and precount are silenced, and the capture is audible. It does not mention macOS audio-capture permission prompts or failure modes (no audio playing, tap denial), which is the main behavioral gap for a system-level recorder.

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

Conciseness4/5

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

Front-loads the core action and mechanism, then layers conditional behavior; nearly every clause carries information. Some sentences are long and semicolon-chained, but there is no filler.

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

Completeness4/5

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

For a capture tool with no annotations and no output schema, the description covers side effects, defaults, and cleanup behavior well. It never states what is returned (the written path, duration, or a confirmation), which an agent needs since 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 coverage is 75%, and the description adds real meaning on top: 'out' defaults to the studio-one-mcp data folder, and from_seconds/from_bars act as alternatives used only when transport is stopped, falling back to the playhead. It does not restate the 600-second cap or clarify how from_seconds and from_bars interact if both are supplied.

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

Purpose5/5

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

Names a specific verb and resource (record what Studio One plays to a WAV file) plus the mechanism (macOS process tap) and format (32-bit float, session rate). The line 'Never records in Studio One' explicitly separates it from the live_record / live_bounce siblings, so an agent can select it 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 the downstream handoff ('Pass the file to audio_analyze') and the exact behavior when transport is stopped, which tells the agent it can call this at any time. It stops short of naming alternatives it competes with (e.g. live_bounce for an in-app offline render), so the exclusion is only implied.

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

live_add_busA

Create a bus for some tracks (their outputs are routed into it) or a VCA that controls them, in the running Studio One. Returns the new channel and, for a bus, where each track now goes. One live_undo removes it. The track selection is kept.

NameRequiredDescriptionDefault
kindNo
tracksYesExact track names

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are supplied, so the description must carry the behavior, and it does: it discloses the mutation's side effect (track outputs are rerouted), the reversibility guarantee ('One live_undo removes it'), the persistence of selection, and the return payload. It does not cover failure modes, e.g. what happens with an unknown track name.

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

Conciseness5/5

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

Three short sentences, front-loaded with the action, followed by the return value and the undo guarantee. Every sentence carries information an agent needs; nothing is padding.

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

Completeness4/5

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

For a two-parameter mutation with no annotations and no output schema, the description covers effect, return shape, reversibility, and selection preservation. The remaining gap is error behavior for invalid track names, which is minor but non-trivial for a routing change.

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 50%: 'tracks' is documented as 'Exact track names' in the schema itself, while 'kind' has only an enum. The description adds meaning to 'kind' by explaining what each option does, but contributes nothing to 'tracks' beyond the schema. Baseline 3 fits with schema doing half the work.

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 bus... or a VCA') and immediately explains the effect: 'their outputs are routed into it'. This distinguishes it from the sibling add tools (live_add_track, live_add_instrument_track, live_add_send) by naming the routing/VCA concept explicitly.

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

Usage Guidelines4/5

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

The description clarifies the bus-vs-VCA choice inline ('routed into it' vs 'controls them'), which is real decision guidance for the enum. It does not name alternatives such as live_add_send or state prerequisites/exclusions, so it stops 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.

live_add_instrument_trackA

Add an instrument track in the running Studio One with a new instance of an instrument (by name, from live_plugins with kind "instrument", e.g. "Mai Tai", "Presence"), optionally named. One live_undo removes the track and the instrument.

NameRequiredDescriptionDefault
nameNoTrack name (default: the instrument name)
instrumentYes

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 does meaningful work: it discloses the live-session requirement ("running Studio One") and, notably, the reversibility contract — "One live_undo removes the track and the instrument." That is a concrete behavioral fact an agent could not infer from the schema. Remaining gaps, such as failure mode for an invalid instrument name, keep it below 5.

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

Conciseness4/5

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

A single sentence with no filler, and the core action is front-loaded. The nested parentheticals carrying the plugin source, kind filter, and examples make it dense to parse in one pass, but nothing is superfluous.

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 two-parameter creation tool with no annotations and no output schema, the description covers what it creates, how to source the instrument, and how to undo it. It does not say where the track is inserted, what is returned (e.g. a track identifier), or what happens if the instrument name is unknown, leaving the agent under-informed for post-call handling.

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 only 50%, with `instrument` having no schema description, so the description must compensate — and it does, explaining the value source (live_plugins, kind "instrument") and supplying examples. The optional `name` parameter is covered only partially, since the default behavior (instrument name) lives in the schema rather than the description.

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 an instrument track") and narrows the scope precisely: it creates a track hosting a new instrument instance, sourced "by name, from live_plugins with kind 'instrument'". The examples ("Mai Tai", "Presence") make the expected value concrete and separate it from live_add_track and live_add_plugin.

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

Usage Guidelines4/5

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

The description routes the agent to live_plugins for valid instrument names and implies this is the tool for instrument tracks versus generic track creation, which is real selection guidance. It stops short of explicitly contrasting with siblings like live_add_track or live_add_plugin, so no exclusion statement is given.

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

live_add_markerA

Add a marker in the running Studio One at a position (seconds or bars; default: the playhead), optionally named. The playhead is left where it was.

NameRequiredDescriptionDefault
atNoSeconds or bars like "9.1.1.0" (instead of seconds)
nameNo
secondsNo

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations at all, the description carries the full behavioral burden. It does disclose one genuinely useful side effect — "The playhead is left where it was" — which an agent could not infer from the schema, but it is silent on what is returned (e.g. the new marker's identifier), what happens on an out-of-range or duplicate position, and whether the change is undoable.

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

Conciseness5/5

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

Two sentences, both front-loaded with the key facts (what it does, where it places the marker, the default, and the non-side-effect on the playhead). Nothing redundant or 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 simple zero-required-parameter mutation tool with no output schema, the definition covers placement semantics adequately, so nothing blocks a correct call. It stops short of saying what the call yields on success or how failures surface, which matters given the live-DAW context and absence of annotations.

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 only 33% (the `name` property has no description), so the prose must compensate. It usefully adds the default ("default: the playhead") and the seconds-or-bars convention for `at`, and implies `name` is optional, but it never explains the separate `seconds` parameter or when to use it instead of `at`, leaving an unresolved overlap the agent must guess at.

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+resource ("Add a marker in the running Studio One") plus scope details (position in seconds or bars, default playhead, optional name), which clearly separates it from siblings like live_rename_marker, live_delete_marker and live_markers. It never names an alternative explicitly, but the operation 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?

Usage is only implied: the tool obviously applies to adding, and the default-to-playhead note tells the agent calling it requires no arguments at all. There is no explicit guidance on when to prefer this over a sibling (e.g. versus live_markers for inspection) or any preconditions such as needing markers enabled or a focused song.

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

live_add_pluginA

Add a plug-in by name (from live_plugins) to a channel's inserts in the running Studio One. Returns the channel's inserts afterwards. One live_undo removes it (the add goes through the MCP Track Edit task).

NameRequiredDescriptionDefault
pluginYesPlug-in name, e.g. "Pro EQ", "Compressor", "Room Reverb"
channelYesExact channel label

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations supplied, the description carries the full burden and does a solid job: it declares the operation is a live mutation, states what is returned ('the channel's inserts afterwards'), describes reversibility ('One live_undo removes it'), and explains the operation runs through the MCP Track Edit task, which tells the agent changes are grouped/undoable. It omits error behavior and any prerequisite state validation, which keeps it below a 5.

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

Conciseness5/5

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

Three short sentences, front-loaded with the action and target, then return value, then undo/implementation context. Every sentence contributes information an agent needs, and there is no filler.

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

Completeness4/5

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

For a two-parameter, no-output-schema mutation tool, the description covers purpose, target scope, effective return value, and undo path. What is missing is behavior on invalid input (unknown plug-in, invalid channel label) and any confirmation of whether the channel must already exist, which is a modest but real 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 description coverage is 100%, so a 3 is the baseline; the description adds genuine meaning by tying the 'plugin' parameter to the vocabulary exposed by live_plugins, indicating the value must be a recognized plug-in name rather than arbitrary text. The 'channel' parameter is left entirely to the schema's 'Exact channel label', which is adequate but adds nothing in the description.

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

Purpose4/5

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

The description states a specific verb and resource ('Add a plug-in ... to a channel's inserts in the running Studio One') and even names where valid plug-in names come from ('from live_plugins'), which separates it from live_inserts and live_plugin_params. It stops short of explicitly contrasting itself with adjacent write tools such as live_add_send or live_add_instrument_track, but the operation 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 Guidelines4/5

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

It gives clear context for use: the plug-in name must come from live_plugins, and the add targets an existing channel's inserts in the live session. The mention of 'One live_undo removes it' effectively tells the agent how to back out. There are no explicit exclusions or failure conditions (e.g. unknown plugin name, missing channel), so it falls 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.

live_add_sendA

Add an effect send to a channel in the running Studio One: Studio One makes a new FX channel with the plug-in (by name, from live_plugins) and a send to it, e.g. a reverb or delay send. Returns the FX channel and the channel's sends (set the level with live_set_send). Sending to an existing bus or FX channel cannot be scripted. Not reliably undone by live_undo, so ask before adding when the user has not clearly asked for it.

NameRequiredDescriptionDefault
pluginYesEffect for the new FX channel, e.g. "Room Reverb", "Analog Delay"
channelYesExact channel label

TDQS

A4.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 the creation side effect (new FX channel), the irreversibility caveat ("Not reliably undone by live_undo, so ask before adding"), and what is returned. It stops short of stating any prerequisite state (e.g. whether the channel must be selected or the plugin loaded in the project), leaving a small gap for a mutation tool.

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

Conciseness5/5

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

Three tightly packed sentences, front-loaded with the action, then the mechanism, then alternatives and the risk warning. No sentence is redundant and nothing is buried mid-paragraph.

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 mutation tool with no annotations and no output schema, the description supplies the action, its side effects, the return payload, the irreversibility warning, and sibling routing. An agent could invoke it correctly without opening any other field.

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 100%, so the baseline is 3, but the description adds provenance for `plugin` — names come "by name, from live_plugins" — which tells the agent where valid values originate, beyond the schema's example strings. It adds little extra for `channel` beyond the schema's "Exact channel label."

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

Purpose5/5

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

Opens with a specific verb and resource: "Add an effect send to a channel in the running Studio One," and immediately explains the side effect (Studio One creates a new FX channel plus a send to it). It distinguishes itself from live_add_bus by noting that sending to an existing bus or FX channel cannot be scripted, and from live_set_send by routing level changes there.

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

Usage Guidelines5/5

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

Explicit alternatives are named with their conditions: use live_plugins for plug-in names, live_set_send for the send level, and the tool states a hard exclusion (existing-bus sends are not scriptable). It also gives a consent rule — ask before adding when the user has not clearly asked for it.

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

live_add_trackA

Add a track to the song open in Studio One: audioMono (default), audioStereo, instrument, folder or automation.

NameRequiredDescriptionDefault
typeNo

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It does disclose one useful trait, the default type (audioMono), but says nothing about side effects, whether the new track becomes selected, undo behavior, or that a Studio One connection/session 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?

One compact sentence with the verb, target, and value set front-loaded; no filler. It is efficient, though the parenthetical type list makes the tail slightly dense.

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

Completeness4/5

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

For a simple one-optional-parameter creation tool with no output schema, the description covers what gets created and which variant. It would be fully complete with a note on the open-song prerequisite and what happens to the new track.

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%, but the single parameter is an enum whose values the description simply repeats. It does add one piece of meaning the schema lacks, the '(default)' annotation on audioMono, which is genuinely helpful for an optional parameter.

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 a track') plus the scope ('the song open in Studio One'), and enumerates all five creatable track types. An agent can tell exactly what this does and can distinguish it from sibling tools like live_delete_marker or live_select_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 phrase 'song open in Studio One' implies a prerequisite (an open song) but never states it as a condition, and there is no guidance on when to pick this over siblings or when-not to use it. Usage is only implied, not spelled out.

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

live_arrangerA

Arranger sections in the running Studio One. sections: list them (numbered in song order). goto: a section by number or name; while playing it jumps at the arranger's sync point, while stopped it moves the playhead to the section's start. next / previous: step while playing. syncMode: when jumps happen (off = immediately, 1bar, 2bars, 4bars, end of section); changing it is an undo step. createFromMarkers: make sections between markers. Editing (each one live_undo): add {start, end, name}, rename {section, name}, resize {section, end}, move {section, start}, remove {section}; these change only the section, not the events under it. With its content, on every track: copy {section, to} inserts a copy at a position (what follows moves later); delete {section} removes it and everything in it, closing the gap; move {section, to, content: true} does both (two undo steps). Positions are seconds or bars like "9.1.1.0". The loop range is kept.

NameRequiredDescriptionDefault
toNoFor copy, and move with content: where it goes (best a section boundary)
endNoFor add and resize
nameNoFor add and rename
syncNoFor syncMode
startNoFor add and move
actionYes
contentNoFor move: take the events under the section along
sectionNoSection number or name (goto jumps while playing only to 1-16)

TDQS

A4.5/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 playback-dependent jump behavior, the sync-point concept, undo cost (one undo step per edit, two for move-with-content), that delete is destructive and closes the gap, and that the loop range is preserved.

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

Conciseness4/5

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

Dense but each clause carries information — action semantics, undo cost, position format. It is a single long run-on paragraph rather than a structured list per action, which costs some scannability for a 13-action tool.

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

Completeness4/5

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

For an 8-parameter, 13-action mutation tool with no annotations and no output schema, the description covers action semantics, destructive effects, undo accounting, and position formats. It does not describe what 'sections' returns or how syncMode setting interacts afterward, leaving a small residual 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 already 88%, so the baseline is 3; the description adds real meaning beyond it by tying params to actions (to/end/name/start/content/sync), specifying position syntax ('seconds or bars like "9.1.1.0"'), advising 'to' be a section boundary, and warning goto-while-playing only reaches sections 1-16.

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

Purpose5/5

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

Opens with a specific verb+resource (arranger sections in the running Studio One) and then enumerates all 13 actions in plain terms, so an agent knows exactly what domain this covers. Naming 'createFromMarkers' implicitly separates it from the sibling marker tools.

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

Usage Guidelines4/5

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

Guidance is given per action: 'next / previous: step while playing', 'goto ... while playing it jumps at the arranger's sync point, while stopped it moves the playhead', and 'Editing (each one live_undo)' cross-references the undo sibling. There is no explicit statement of when to prefer live_markers/live_markers-family tools over this one, so not a 5.

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

live_bounceA

Bounce all events on one track in the running Studio One: inPlace renders them into a single new event (with plug-ins), toNewTrack renders them onto a new track of the same name and mutes the originals. No dialogs; one live_undo reverts it, but the rendered .wav stays in the song's Bounces folder. Exporting a mixdown or stems is not offered: those open dialogs.

NameRequiredDescriptionDefault
modeNo
trackYes

TDQS

A4.6/5.0
Behavior5/5

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

No annotations are supplied, so the description carries the full burden, and it does: it discloses that no dialogs appear, that the operation is undone by a single live_undo, that the rendered .wav survives undo in the Bounces folder, and that toNewTrack mutes the originals. Those are exactly the side effects an agent needs before mutating a session.

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 dense sentences, front-loaded with the verb and resource before the mode breakdown and the caveats. Every clause carries non-obvious information (muted originals, surviving .wav, undo count, dialog exclusion); nothing is filler.

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

Completeness4/5

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

For a two-parameter mutation with no annotations and no output schema, the description covers modes, reversibility, and residual artifacts thoroughly. The only real gap is how to identify the target track, and secondarily whether anything is returned; both are minor against the otherwise strong behavioral coverage.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It does well for the enum parameter, spelling out what inPlace and toNewTrack each produce, but leaves the required 'track' parameter undefined — no indication whether it takes a track name, index, or ID, despite many sibling tools that could identify a 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?

States a specific verb (bounce/render) applied to a specific resource (all events on one track in the running Studio One), and disambiguates the two modes in one clause each. It also explicitly excludes what it is not (mixdown/stem export), so an agent can separate it from adjacent rendering operations without opening the schema.

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

Usage Guidelines5/5

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

Gives explicit when-to-use (per-track bounce, with the two mode variants), an explicit when-not (mixdown and stems are not offered because they open dialogs), and names the sibling that reverses it (one live_undo). Routing information is complete rather than implied.

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

live_bypass_insertA

Bypass or un-bypass one plug-in slot on a channel in the running Studio One (slot number from live_inserts), or the whole insert rack with slot "all".

NameRequiredDescriptionDefault
slotYes
channelYes
bypassedYes

TDQS

A3.8/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 that the mutation targets a live running DAW session and that the "all" value scopes the entire insert rack. It says nothing about whether the change is undoable, how a missing channel or invalid slot is handled, or what the call confirms 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?

A single front-loaded sentence with no filler, and the dual-scope behavior is stated early. It reads slightly run-on with the parenthetical and trailing clause, but nothing is wasted.

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

Completeness3/5

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

For a live mutation tool with no annotations, no output schema, and zero schema descriptions, the definition covers the core action and scope but omits return/confirmation behavior and the meaning of the channel identifier. An agent could invoke it, but with avoidable guesswork about addressing the channel.

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: it explains that slot accepts a number sourced from live_inserts or the literal "all", and that bypassed controls bypass vs un-bypass. The channel parameter is left entirely unexplained (name? index? track vs bus?), which is a real gap for a 3-param required-only 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 names a specific verb pair (bypass/un-bypass) and the exact resource (one plug-in slot on a channel in the running Studio One, or the whole insert rack via slot "all"). An agent can immediately distinguish it from live_inserts, which is cited as the source of slot numbers.

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

Usage Guidelines4/5

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

It gives a clear usage prerequisite (slot numbers come from live_inserts) and the condition for the bulk case (slot "all" for the whole rack). It stops short of stating when not to use it or naming an alternative tool for related operations, so it lacks explicit exclusion guidance.

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

live_changesA

What changed in the song open in Studio One since the previous call: tracks added, removed, renamed or reordered, events added, removed or moved on each track, mixer changes (volume, pan, mute, solo, arm, monitor, automation mode, output, plug-ins), tempo, loop, and markers and arranger sections added, removed, renamed or moved. The first call for a song only takes a look. Changes are net (moved and moved back is no change) and do not say who made them. reset: start over from now.

NameRequiredDescriptionDefault
resetNoForget the previous look and take a new one

TDQS

A4.3/5.0
Behavior4/5

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

No annotations exist, so the description carries the full burden, and it discloses significant traits: changes are net (moved-and-back counts as no change), authors are not reported, and reset re-baselines 'from now'. It stops short of explicitly saying the call is read-only relative to the song or that it maintains hidden per-song snapshot state that can be reset.

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?

Core behavior is front-loaded in the first clause, followed by the enumeration and then the two important caveats (net changes, first call is a look). The long category list is informative but dense and could have been grouped more tightly.

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 what comes back, and the enumeration of change categories does that adequately. The shape of the returned diff (grouping, field names) is never described, which leaves a gap for an agent that needs to parse results.

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?

Only one optional parameter and the schema already documents it at 100% coverage, so the baseline is high; the description adds a nuance beyond the schema by clarifying that reset means re-baselining from the current moment rather than clearing history.

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 resource and operation: a diff of the currently open song since the previous call, with an explicit enumeration of tracked categories (tracks, events, mixer, tempo/loop, markers/arranger). This is unmistakably different from snapshot-style siblings like live_song or live_track_state.

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 real usage context: the first call for a song is a baseline look and reports nothing, so an agent knows not to interpret an empty first result as an error. It does not name alternatives (e.g., song_diff, song_history) or state when to prefer those over this.

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

live_channelsA

List the mixer channels of the song open in Studio One right now, with live volume, pan, mute, solo, record-arm, input monitoring, automation mode, and routing (input and output names; read-only).

NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations supplied, the description carries the full burden and does explicitly declare "read-only", which is the key safety fact an agent needs. It also enumerates exactly which channel attributes are reported. It stops short of covering failure behavior (e.g., no song open, Studio One not reachable) or result ordering.

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

Conciseness4/5

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

A single sentence with the action and scope front-loaded, followed by the returned-field list. The enumeration is dense but each item is informative. Slightly heavy inline listing could have been trimmed, 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?

No output schema exists, so the description compensates by naming the returned fields, which is the right move for a zero-parameter read tool. Remaining gaps are environmental preconditions and error cases rather than anything that would cause a wrong invocation.

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

Parameters4/5

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

The tool takes zero parameters, so there is no parameter semantics to document and the baseline of 4 applies. The description correctly adds no spurious input claims, confirming the call is argument-free.

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

Purpose5/5

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

Specific verb ("List") plus a precisely scoped resource: the mixer channels of the song currently open in Studio One. The parenthetical enumeration of returned attributes (volume, pan, mute, solo, record-arm, input monitoring, automation mode, routing) makes it clearly distinguishable from siblings like live_tracks, live_song, live_meters, and live_inserts.

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 "open in Studio One right now" implies this reads live mixer state rather than saved song data, which is useful context. However, it never states when to prefer this over live_tracks or live_meters, nor does it point to live_set_channel for modification. Usage must be inferred from the tool name and field list.

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

live_commandA

Run any Studio One command by category and name, exactly as listed in Studio One → Keyboard Shortcuts (e.g. Transport/Start, Transport/Stop, Transport/Record, Edit/Undo, File/Save, View/Console). Use live_list_commands to discover names. With check_only, only reports whether the command is currently enabled, without running it.

NameRequiredDescriptionDefault
argsNoOptional flat [key, value, key, value…] command arguments
nameYes
categoryYes
check_onlyNoReport {enabled} without executing

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It usefully discloses the check_only dry-run behavior (report enabled without executing) and that the tool executes arbitrary commands, but says nothing about reversibility, whether a failed command raises or silently no-ops, or what the execute-path 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?

Two sentences, zero padding, with the core action and identifier format front-loaded ahead of the discovery hint and the check_only note.

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 generic, unannotated mutation gateway with no output schema, the description covers the happy path and the check_only probe but not the execute-path return value, error behavior, or which commands need args. Adequate but there are clear gaps.

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

Parameters3/5

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

Schema coverage is 50%. The description clarifies the category/name format via examples ('Transport/Start') and re-explains check_only, which the schema already documents. The args parameter ('flat [key, value, key, value...]') is left to the schema with no guidance in the description on which commands accept it.

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 (any Studio One command) with a concrete disambiguation: commands are identified by category/name exactly as in Keyboard Shortcuts, with six worked examples (Transport/Start, Edit/Undo, File/Save, etc.). It is immediately distinguishable from siblings like live_undo or live_save, which are single fixed commands.

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 discovery to live_list_commands ('Use live_list_commands to discover names') and explains the check_only probe path. It does not state when to prefer the dedicated siblings (live_undo, live_save, live_set_transport) over this generic command runner, so one inference remains.

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

live_delete_markerB

Delete a marker in the running Studio One, by number (from live_markers) or by exact position in seconds.

NameRequiredDescriptionDefault
numberNo
secondsNo

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. 'Delete' implies a mutation, but the description does not disclose whether the deletion is undoable (a live_undo sibling exists), what happens if the marker is not found, or whether the Studio One connection must be live for it to succeed.

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

Conciseness5/5

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

A single front-loaded sentence with no waste; the resource and the two addressing modes are conveyed immediately.

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 mutation tool with zero annotations, zero schema descriptions, no output schema, and no required parameters, the description leaves key gaps: error behavior, undo semantics, and parameter mutuality are all 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 usefully clarifies that 'number' comes from live_markers and that 'seconds' is an exact position. However, it omits which parameter takes precedence when both are passed, or whether they are mutually exclusive.

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

Purpose5/5

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

States a specific verb (delete) and resource (marker) and scopes it to 'the running Studio One', which distinguishes it clearly from sibling live_add_marker and live_markers. An agent can identify this as the deletion counterpart without opening the schema.

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

Usage Guidelines3/5

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

It tells the agent the two ways to identify a marker (number or exact seconds), which is useful targeting context, but gives no when-to-use vs when-not guidance, no explicit statement that the two identifiers are alternatives, and no note that at least one must be supplied (required parameters = 0).

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

live_edit_eventsA

Edit all events on one track in the running Studio One: mute, unmute, toggleMute, quantize, transposeUp/Down (instrument parts), split / trimStart / trimEnd at a time (seconds or bars), merge, delete. Returns the track's events afterwards. Use live_undo to revert.

NameRequiredDescriptionDefault
atNoRequired for split, trimStart, trimEnd
trackYes
actionYes

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 behavioral burden. It usefully discloses that the track's events are returned afterwards, that transposeUp/Down apply only to instrument parts, and that changes are reversible via live_undo, but it never warns that 'delete' is destructive, states permission/selection prerequisites, or says whether other tracks are affected.

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 operation, and the action list plus the return/undo notes are dense and waste-free. Slightly long enumeration, but every clause carries information an agent needs to pick an action.

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 return behavior and reversibility reasonably well, but omits track-parameter meaning, permission or selection prerequisites, and the destructiveness of the delete action.

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

Parameters3/5

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

Schema coverage is only 33% (just the 'at' field). The description compensates for 'at' by clarifying it accepts seconds or bars and is needed for split/trimStart/trimEnd, but the required 'track' parameter is undocumented in both schema and description, 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 (edit) and resource (all events on one track in the running Studio One) and enumerates the supported actions, so an agent can distinguish it from siblings like live_select_events, live_track_state, or live_command 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 only routing guidance is 'Use live_undo to revert', which points to the recovery path rather than telling the agent when this tool is preferable to alternatives such as live_command or live_select_events. Usage is implied by the action list but never stated explicitly.

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

live_edit_notesA

Edit the notes of an instrument track's parts in the running Studio One, through the MCP Edit task (installed with the device). Operations run in order: transpose {semitones}, velocity {set 1-127 | add}, move {beats}, length {set beats | scale}, quantize {grid like 1/16, 1/8T (triplet) or 1/8. (dotted), strength 0-1; note starts only, Studio One's own quantize setting is left alone}, delete (needs a filter), add {notes: [{pitch, beat, length, velocity}]}. Each can take a filter (pitch, pitches, from/to beats). Beats are the ones live_notes reports. Returns what each operation touched and the notes afterwards. One live_undo per operation, usually; check with live_notes.

NameRequiredDescriptionDefault
opsYes
trackYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations at all, the description carries the full burden and does meaningful work: operations execute in order, results report what each op touched plus the notes afterwards, delete requires a filter, and quantize deliberately leaves Studio One's own quantize setting alone. It stops short of covering failure behavior, partial application, or permission/connection 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-loaded with the outcome first, then operations in execution order, then filters, return value, and undo. Every clause carries information, but the middle section is a dense run-on of shorthand notation (e.g. '1/8T (triplet)', '1/8. (dotted)') that would scan better as a list.

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 seven-operation batch mutation with no annotations and no output schema, the description supplies the essential missing pieces: operation ordering, per-op field semantics, filter semantics and defaults, beat reference frame tied to live_notes, return payload, and undo granularity. What remains absent, such as error/partial-failure handling, is minor relative to what 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 effectively 0% for the nested ops fields, and the description compensates strongly by mapping each op to its fields: transpose needs semitones, velocity takes set 1-127 or add, length takes set beats or scale, quantize takes grid formats plus strength 0-1, add takes a notes array. The only unexplained input is the top-level 'track' string — neither the schema nor the description says whether it is a name, index, or id.

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 — editing notes of an instrument track's parts in the running Studio One — and scopes it to the MCP Edit task that ships with the device. That verb+resource+scope combination separates it cleanly from sibling tools such as live_edit_events and live_notes.

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

Usage Guidelines4/5

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

Gives concrete operational guidance: 'delete (needs a filter)', 'check with live_notes' before undoing, and 'one live_undo per operation, usually'. It routes the agent to live_notes for beat positions and live_undo for rollback, but never states explicitly when to prefer this over live_edit_events or what to do when a track isn't an instrument track.

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

live_evalA

Run JavaScript inside Studio One's script engine and return the result (host objects are described to a depth). Globals: Host, PreSonus, component, describe. Only works when the bridge was installed with --allow-eval. Useful for exploring the undocumented object model, e.g. Host.Objects.getObjectByUrl('://studioapp/DocumentManager'). Do not throw, and check that a host member exists (typeof) before calling it: either one pops a modal Scripting Error dialog in Studio One.

NameRequiredDescriptionDefault
codeYesFunction body; use `return` to send a value back
depthNo

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 well: it discloses available globals, the install-time gating flag, the error-handling hazard (a modal Scripting Error dialog pops on throw or on calling a non-existent host member), and the guard idiom (typeof check). This is exactly the operational context an agent needs before invoking.

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 prerequisites, then the critical caveat. Dense but every sentence adds value; the warning about the modal dialog is slightly long-winded but warranted given the failure mode.

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

Completeness4/5

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

For a two-parameter tool with no output schema, the description covers purpose, gating condition, globals, an example, and failure behavior. Return value is only loosely characterized ('return the result'), which is a minor gap but the absence of an output schema makes that acceptable.

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 50%: `code` is documented in the schema, but `depth` has no schema description. The description compensates by explaining that host objects are 'described to a depth', giving the parameter meaning beyond the raw integer 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: runs JavaScript inside Studio One's script engine and returns the result. This is unmistakably distinct from all sibling live_* tools (transport, markers, tracks, etc.), which perform fixed DAW operations rather than arbitrary scripting.

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 prerequisite ('Only works when the bridge was installed with --allow-eval') and a concrete use case ('exploring the undocumented object model') with an example call. It does not name alternatives for the cases where eval is unavailable, so it stops short of a 5.

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

live_eventsA

One event (audio clip or instrument part) on a track in the running Studio One. list: the track's events, numbered in time order, with start/end in seconds and, for audio, gain (dB) and fade lengths. edit {event, and any of: to (new start), to_track (move it to another track), gain_db (set), add_gain_db, fade_in / fade_out (seconds, audio)}: one live_undo reverts the whole edit. duplicate {event, times}: copies right after it, times times. copy {event, to, to_track?}: pastes a copy at a position (uses the clipboard). Positions are seconds or bars like "9.1.1.0".

NameRequiredDescriptionDefault
toNoSeconds (number) or a bar position string like "9.1.1.0"
eventNoEvent number (from list) or name
timesNo
trackYes
actionNo
fade_inNo
gain_dbNo
fade_outNo
to_trackNo
add_gain_dbNo

TDQS

A3.5/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 two genuinely useful traits: edits are a single undoable unit ("one live_undo reverts the whole edit") and copy mutates the clipboard ("uses the clipboard"). It does not say what happens when an event number is invalid, whether editing affects live playback, or what any action returns. Useful but incomplete for a mutation tool with zero annotation coverage.

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 resource definition is front-loaded and each action is a compact labelled clause, so an agent can scan to the relevant line. The brace shorthand ("edit {event, and any of: ...}") is efficient but verges on telegraphic and would be harder to parse than plain sentences. Almost no wasted words overall.

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

Completeness3/5

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

For a 10-parameter tool with no annotations and no output schema, the definition covers the list output shape (ordering, start/end in seconds, gain and fade for audio) and the mutate semantics reasonably well. It omits which parameters are required per action (edit/duplicate/copy all need event; duplicate needs times), what non-list actions return, and any error behavior. Adequate but with clear gaps given the tool's complexity.

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 only 20%, so the description has to compensate, and it largely does: to is a new start, to_track moves the event, gain_db sets while add_gain_db is relative, fade_in/fade_out are audio-only seconds, times is a repeat count placed right after the original, and event is a number from list or a name. The position format (seconds or bars like "9.1.1.0") is restated. Only the required `track` and the conditional requirement of event/times per action are left unaddressed.

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 opens with a concrete verb+resource ("One event (audio clip or instrument part) on a track in the running Studio One") and then enumerates the four operations it multiplexes: list, edit, duplicate, copy. An agent can immediately tell this is the per-event tool rather than a track or song tool. It stops short of naming or contrasting the near-identical siblings live_edit_events and live_select_events, so 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?

Each action gets a one-line gloss ("list: the track's events...", "edit {...}: one live_undo reverts...", "copy {...}: pastes a copy at a position"), which implies when each is appropriate. However, there is no explicit guidance on which of these actions to prefer over live_edit_events or live_select_events, nor any stated prerequisites or failure conditions. Usage is implied rather than prescribed.

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

live_insertsB

Plug-ins on each mixer channel of the running Studio One (or one channel): slot, plug-in name, bypassed; plus the channel's bypass-all switch.

NameRequiredDescriptionDefault
channelNo

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full behavioral burden. It implies a read-only inspection and enumerates returned values, but never explicitly says it performs no mutation, what happens if the channel is invalid, or what prerequisites/permissions are needed.

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 definition is a single front-loaded sentence with no redundant wording. The parenthetical scope and returned-field list are compact and each clause adds useful information.

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

Completeness4/5

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

For a simple inspection tool with no output schema, the description identifies the scope and enumerates the returned fields (slot, plug-in name, bypassed, bypass-all). It is nearly complete, though it lacks sibling differentiation and error/edge-case 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?

The schema only says channel is a string with no description. The description clarifies that specifying one channel narrows the result to that channel and omitting it covers each mixer channel, which is useful semantics, but it does not define the channel identifier format (name vs. index) or explicitly state that the parameter is optional.

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

Purpose4/5

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

The description names the resource (plug-ins/inserts) and scope (each mixer channel or one channel), plus the returned fields. It is clearly an inspection tool for channel inserts, though it never uses an explicit verb like 'list' and does not explicitly contrast with live_plugins or live_plugin_params.

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

Usage Guidelines2/5

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

It does not state when to use this tool versus alternatives such as live_plugins, live_bypass_insert, or live_plugin_params. The only guidance is implicit from the phrase 'on each mixer channel ... (or one channel)'.

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

live_list_commandsA

List Studio One commands available to live_command (about 1,000 on Studio One 5), optionally filtered by a substring. with_state adds whether each is enabled right now; many need a selection or an open editor.

NameRequiredDescriptionDefault
filterNo
with_stateNo

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and discloses key behaviors: the scale (~1,000 commands), optional substring filtering, with_state semantics, and the important caveat that many commands require a selection or open editor. It does not mention pagination, ordering, or read-only safety explicitly, but the read-like nature is evident. These additions are valuable beyond the bare 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?

The description is two sentences, front-loaded with the core purpose and then the behavioral details. Every clause earns its place by adding information about scope, filtering, state, and constraints. There is no redundancy or fluff.

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

Completeness4/5

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

For a list tool with no output schema and no annotations, the description covers purpose, both parameters, and important runtime caveats. It stops short of explaining the return format (e.g., command names vs. objects) or how to handle potentially large results, but the essential context is present. An agent can call it correctly with what is provided.

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 explain both parameters, which it does: filter is a substring filter, and with_state adds whether each command is currently enabled. It does not specify case sensitivity or exactly which field filter targets, but the semantics are clear enough for correct invocation.

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

Purpose5/5

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

The description states a specific verb and resource: list Studio One commands available to live_command, with an approximate count and optional filtering. It clearly distinguishes this discovery tool from the sibling live_command, which executes commands. An agent can immediately understand the tool's role 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 phrase 'available to live_command' provides clear context that this tool is for discovering commands before invoking live_command. It does not explicitly state when not to use it or name alternatives, but the implied workflow is strong enough. No exclusions or prerequisites are mentioned.

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

live_macrosA

List the macros in the running Studio One (Macros panel: built-in and your own) by title, optionally filtered; with_state adds whether each can run right now (most act on the selection).

NameRequiredDescriptionDefault
filterNo
with_stateNo

TDQS

A3.5/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 that this reads the running Studio One instance, that macros may be built-in or user-created, and that most act on the current selection. It does not state that the operation is read-only, nor anything about ordering, pagination, or failure behavior when Studio One is not running.

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

Conciseness4/5

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

A single dense sentence that front-loads the core action and appends the optional behaviors. It is efficient, though the parenthetical and trailing clause make it slightly harder to parse at a glance.

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-optional-parameter read tool with no output schema, the description covers what is returned (titles, plus runnability when requested) and the selection caveat. Only the filter semantics and read-only nature are 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 for both parameters. It explains with_state well ('adds whether each can run right now') but only says 'optionally filtered' for filter, leaving unclear what field is matched (title? substring? case sensitivity).

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 ('List the macros in the running Studio One') and scopes it to the Macros panel including built-in and user macros. It implicitly separates itself from live_run_macro by being a listing operation, though it never names that sibling explicitly.

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

Usage Guidelines3/5

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

It hints at usage by explaining that with_state reports whether each macro can run right now and that most act on the selection, which tells an agent when the state flag matters. However, there is no explicit when-to-use/when-not guidance and no named alternative such as live_run_macro.

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

live_markersA

Markers of the song open in Studio One right now: number, position (seconds and bar display) and name. Briefly moves the playhead to read them and puts it back; refuses while playing. Only markers 1-20 are visible.

NameRequiredDescriptionDefault

No parameters

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 discloses key behavior: it briefly moves the playhead and restores it, refuses while playback is active, and only exposes markers 1-20. It does not detail error behavior beyond refusal or whether the playhead movement is observable, but the side effect and precondition are clearly stated.

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

Conciseness5/5

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

The description is compact and front-loads the returned data, then adds the playhead side effect, playback refusal, and visibility cap. No sentence is wasted.

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

Completeness5/5

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

For a zero-parameter read tool with no output schema, the description supplies the return fields, side effect, precondition, and visibility limit. That is sufficient for an agent 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?

There are zero parameters, so the schema is empty and the description has no parameter semantics to add. Baseline 4 applies for a no-parameter 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 identifies the resource (markers currently open in Studio One) and the returned fields (number, position in seconds/bar display, name), so an agent can tell it is a read/list operation. It does not explicitly name sibling alternatives like live_add_marker or live_delete_marker, but the 'right now' scope distinguishes it from mutation tools.

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

Usage Guidelines3/5

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

It implies use when you need current marker data and notes the 'refuses while playing' precondition, but it does not explicitly say when to choose this over live_add_marker, live_rename_marker, or live_delete_marker. The 1-20 visibility limit is a usage constraint rather than alternative routing.

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

live_metersA

Peak meters of every mixer channel in dB (-144 = silence). With duration_ms, samples repeatedly (e.g. while playing) and returns the highest peak per channel, plus which channels clipped (above -0.1 dB).

NameRequiredDescriptionDefault
duration_msNo

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 -144 silence floor, the repeated-sampling behavior, the highest-peak-per-channel return, and the clipping threshold of -0.1 dB. It omits that this is a non-mutating read with no side effects, but the behavioral disclosure of return semantics is strong for a metering tool.

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

Conciseness5/5

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

Two tight sentences, front-loaded with the core resource and value semantics before the optional-parameter behavior. Every clause carries information; nothing is padding.

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

Completeness4/5

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

No output schema exists, yet the description explains the return shape (highest peak per channel plus clipped channels) and the clipping threshold, which is exactly what the agent needs. For a single-optional-param read tool this is nearly complete, with only side-effect/auth context absent.

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 duration_ms parameter, so the description must compensate, and it does: it explains that providing duration_ms triggers repeated sampling and aggregation to the highest peak. That is meaningful semantics beyond the bare integer schema, though the unit (ms is named) and blocking behavior are not elaborated.

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

Purpose4/5

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

States a specific verb+resource: reading peak meters of every mixer channel in dB, with the silence floor clarified. Clear on its own, but it does not distinguish itself from sibling read tools like live_channels, which an agent might reasonably confuse for level data.

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

Usage Guidelines3/5

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

Usage is implied through the duration_ms branch ('samples repeatedly (e.g. while playing)'), giving a decent sense of when to poll vs take a single reading. However, there is no explicit when-to-use guidance relative to alternatives like live_channels, and no stated exclusions.

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

live_mix_snapshotA

Save the whole mix of the running song under a name (every channel's volume, pan, mute, solo, input monitoring, and each send's level and mute), restore it later, or list this song's snapshots. Restore sets only what differs. Record-arm and automation mode are not included. Mixer changes are not reverted by one live_undo; restore a snapshot instead.

NameRequiredDescriptionDefault
nameNo
actionYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations supplied, the description carries the full burden and does substantial work: it discloses the captured state, the explicit exclusions, that restore applies a partial/differential update ('sets only what differs'), and the undo interaction caveat. The remaining gap is name-collision behavior on save and whether snapshots persist for the life of the project, which matter for a state-capturing 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 core action and its scope are front-loaded in the first sentence, followed by three short sentences that each add one distinct fact (differential restore, exclusions, undo caveat). No filler and no restatement of the tool 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?

For a two-parameter tool with no annotations and no output schema, the description covers capture scope, exclusions, restore semantics, and the undo relationship. What 'list' returns (names only, or names with timestamps) is left unspecified, which is the one thing an agent must guess before calling with action='list'.

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 conveys the three action values through their verb phrases and implies 'name' is the snapshot label for save, but it never says that 'name' is required for save and restore yet ignored for list, leaving the enum/required interaction to inference from the schema.

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

Purpose5/5

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

The description names a specific verb set (save/restore/list) against a specific resource (the whole mix of the running song) and enumerates exactly what is captured: every channel's volume, pan, mute, solo, input monitoring, and each send's level and mute. This distinguishes it from live_plugin_snapshot (plugin-level) and live_save (session-level) without the agent needing to open 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 gives a concrete routing rule against a sibling: 'Mixer changes are not reverted by one live_undo; restore a snapshot instead,' which tells the agent when to pick this over live_undo. It also scopes out record-arm and automation mode, implying those belong to live_record_setup or live_set_automation, but it never states when to choose snapshotting over live_save or live_plugin_snapshot, so the alternative guidance is partial rather than exhaustive.

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

live_notesA

Notes in an instrument track's parts in the running Studio One, unsaved edits included: pitch (MIDI number and name, middle C = C3 as Studio One shows it by default), velocity 0-127, start/end/length in seconds, and start in quarter-note beats. Read-only.

NameRequiredDescriptionDefault
trackYesExact track name
max_notesNoDefault 500

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations supplied, the description carries the full burden and does disclose the critical traits: 'Read-only' and that unsaved edits are included, which tells the agent it reads live memory rather than persisted data. It also pins down unit conventions (MIDI pitch numbering with middle C = C3, velocity 0-127, seconds vs quarter-note beats), though it says nothing about truncation behavior or ordering of results.

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

Conciseness4/5

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

A single dense sentence that front-loads the resource and scope, then enumerates return fields with their units. No filler or repetition; the parenthetical about middle C = C3 is the only slightly heavy clause, but it prevents a real interpretation error.

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, and the description compensates well by enumerating the returned fields and their units. The remaining gaps are modest: no statement of result ordering or what happens when max_notes truncates the note list, and no error behavior for an unmatched track name.

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 100%, so the two parameters are already documented (exact track name, max_notes default 500). The description adds no meaning beyond the schema for either parameter — its detail is spent on return-value semantics instead — so the baseline of 3 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?

The description names a specific resource and scope: MIDI notes inside an instrument track's parts, read from the running Studio One instance. An agent can distinguish it from mutating siblings like live_edit_notes, but the sibling is never named and the verb is implied by a noun phrase rather than stated outright.

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

Usage Guidelines3/5

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

The phrase 'in the running Studio One, unsaved edits included' implicitly tells the agent to use this for live in-memory state rather than a saved song file (song_read). However, there is no explicit when-to-use/when-not guidance and no named alternative for editing notes or reading track structure.

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

live_plugin_paramsA

Parameters of one plug-in on a channel in the running Studio One (slot from live_inserts): name, value, display text (e.g. "2.0:1", "-12.0 dB"), range and normalised value. Studio One cannot list a plug-in's parameters, so names come from its presets and Studio One's remote-control map; this works for PreSonus plug-ins. For others, pass the names in params.

NameRequiredDescriptionDefault
slotYes
filterNoOnly parameters whose name contains this (e.g. "comp", "freq")
paramsNoExact parameter names to read instead of the discovered ones
channelYes

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 load and does it well: it discloses a genuine upstream limitation ('Studio One cannot list a plug-in's parameters'), explains the workaround source for names (presets and Studio One's remote-control map), and scopes reliability to PreSonus plug-ins. It does not say anything about read-only safety or what happens if a named parameter does not exist, 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.

Conciseness4/5

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

Three tight sentences, front-loaded with the returned fields and the example value formats ("2.0:1", "-12.0 dB"), which earn their space. The plug-in-coverage caveat follows logically rather than padding the opening.

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 shape, and it does by listing the five fields per parameter. Given no annotations and four parameters, the definition is nearly complete; the only unaddressed item is the `channel` identifier format and behaviour when a requested parameter name is invalid.

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 50%: `filter` and `params` are documented in the schema, and the description reinforces `params` with the non-PreSonus use case. However, neither `channel` nor `slot` has any schema description, and only `slot`'s provenance is explained ('from live_inserts'); the format of `channel` (name vs. index) is never addressed anywhere.

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

Purpose4/5

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

The description names the specific resource ('Parameters of one plug-in on a channel in the running Studio One') and enumerates what is returned (name, value, display text, range, normalised value), which clearly separates it from the write-side sibling live_set_plugin_param and from live_inserts. It is a noun phrase rather than a verb+resource, but the operation 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 Guidelines4/5

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

It tells the agent where the required `slot` comes from ('slot from live_inserts') and gives a conditional fallback: for non-PreSonus plug-ins, pass names in `params`. That is real routing guidance, though it does not explicitly state when not to use this tool (e.g. versus live_plugins or live_set_plugin_param).

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

live_pluginsB

The plug-ins installed in the running Studio One, by name (PreSonus, VST and AU), optionally filtered: audio effects (default; the names live_add_plugin and live_add_send take) or instruments (kind "instrument"; the names live_add_instrument_track takes).

NameRequiredDescriptionDefault
kindNo
filterNo

TDQS

B3.2/5.0
Behavior3/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; it discloses that this is a read-style enumeration of installed plug-ins and which plug-in formats are covered. However, it says nothing about what each entry contains beyond a name, ordering, or what happens when nothing matches. Given zero annotation coverage, more disclosure of the return shape and failure modes would be expected.

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?

It is a single front-loaded sentence with no filler, but the heavy nested parentheticals ('default; the names live_add_plugin and live_add_send take') make it harder to parse than necessary. The information is dense and useful, just awkwardly structured.

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?

There is no output schema and no annotations, so the description is the only source of behavioral detail, and it leaves the `filter` parameter entirely unexplained and does not describe the shape of returned entries. For a lookup tool whose whole value is producing names an agent will feed into add_plugin/add_send, this is under-specified.

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 explain both parameters. It handles `kind` partially — it names the instrument case and its enum value and the effects default — but never states the literal value "effect" even though the enum contains it. The `filter` parameter is not mentioned at all, leaving half the parameters undocumented in both schema and prose.

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

Purpose4/5

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

The description names a specific resource (plug-ins installed in the running Studio One, covering PreSonus, VST and AU formats) and its scope (by name, optionally filtered by kind). It also ties itself to the sibling tools that consume the returned names (live_add_plugin, live_add_send, live_add_instrument_track), which distinguishes it from live_plugin_params or live_inserts. The only weakness is that the verb is implicit in a noun phrase rather than stated as 'list'.

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

Usage Guidelines4/5

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

It states the default behavior (audio effects) and how to switch to instruments, and it identifies the downstream tools that consume the output, which tells an agent when this list is the right input source. It does not explicitly say when not to use it or how it relates to live_inserts/live_plugin_params, so a small amount of inference remains.

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

live_plugin_snapshotB

Save a plug-in's current settings under a name, restore them onto the same kind of plug-in (any channel), or list saved snapshots. A stand-in for presets that works remotely: it stores every known parameter's raw value (PreSonus plug-ins; names as in live_plugin_params) in the studio-one-mcp data folder. Restore only sets parameters that differ.

NameRequiredDescriptionDefault
nameNo
slotNo
actionYes
pluginNoFor list: only this plug-in
channelNo

TDQS

B3.2/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden; it does usefully disclose the storage location (studio-one-mcp data folder), the coverage limit (PreSonus plug-ins, all known parameters), and that restore only writes differing parameters. It is silent on what save does when the name already exists, whether slots are overwritten, and what error behavior looks like when a plug-in kind mismatches.

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

Conciseness4/5

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

Two dense sentences, front-loaded with the three actions and followed by the storage/coverage caveat. No filler, though the second sentence packs several distinct facts (location, plug-in scope, parameter naming reference, restore diffing) without structural separation.

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 multi-action, 5-parameter tool with no annotations and no output schema, the description covers save and restore reasonably but leaves the list action's return shape and the 'slot' parameter entirely unaddressed. Adequate for the main flow, incomplete for the full surface.

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 only 20% across 5 parameters. The description adds meaning for 'name' (snapshot label), 'plugin' (list filter), and implicitly 'channel' (any channel), but 'slot' is completely unexplained in both schema and description, and the save/restore vs. list distribution of parameters is not spelled out.

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 three concrete actions (save, restore, list) on a concrete resource (a plug-in's settings) and frames the tool as a remote stand-in for presets, which is a clear purpose. It does not name any sibling (e.g. live_mix_snapshot or live_plugin_params) to distinguish against, so 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?

Implies usage via 'restore them onto the same kind of plug-in (any channel)' and the 'stand-in for presets' framing, plus the constraint that save/restore operate on raw parameter values for PreSonus plug-ins. There is no explicit when-to-use vs. live_mix_snapshot or live_plugin_params, and no exclusion or precondition stated for the list action.

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

live_recordA

Record in the running Studio One. This writes a new take into the song, so it only runs with confirm: true, which should mean the user asked for it. Optionally arms a track first, starts from a position (seconds or bars), sets precount, and stops after seconds; without seconds it keeps recording until live_transport stop.

NameRequiredDescriptionDefault
fromNoSeconds (number) or a bar position string like "9.1.1.0"
trackNoArm this track first (left armed afterwards)
confirmYesMust be true: the user asked to record
secondsNoStop after this many seconds (max 600)
precountNo

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 behavioral burden and does well: it discloses the mutation (a new take is written), the confirmation gate, the track-arm side effect including that the track is left unarmed, and the 600-second cap. It omits what happens on failure (transport not running, no armed track) and whether the write is undoable.

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, front-loaded with purpose then the confirmation gate then the optional behaviors. Phrasing like 'which should mean the user asked for it' is slightly loose but conveys a useful semantic about what confirm implies.

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

Completeness4/5

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

For a 5-parameter mutation tool with no annotations and no output schema, the description covers the essential call-correctly information: gating, mode selection, side effects, and the stop condition. The remaining gap is error/return behavior and the undocumented `precount` flag, which is minor at this complexity.

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 already 80%, and the description adds real meaning on top: `from` accepts seconds or bar positions, `seconds` is optional and its absence means indefinite recording, and `track` is armed then left unarmed. Only `precount` is left unexplained in both schema and description.

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

Purpose4/5

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

States a specific verb and resource: recording a new take into the running Studio One song. It is clearly distinguishable from read-only siblings like live_takes or live_transport, though it doesn't name the nearest alternative, live_record_setup, so the agent must infer the split.

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 hard precondition (confirm: true, which should mean the user asked for it) and describes the two operating modes: stop after `seconds`, or record until live_transport stop. It stops short of saying when to use this versus live_record_setup, which is the main nearby ambiguity.

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

live_record_setupA

Recording setup in the running Studio One. With no arguments, reads the metronome: click, precount, precount length in bars, preroll. Set any of those, and/or record modes: replace, loopTakes or loopMix, takesToLayers, inputQuantize, noteErase (true/false). Record modes cannot be read back from Studio One, so they are reported as set, not confirmed. Auto Punch: punch off, in, out or both, and punchFrom/punchTo for the range (seconds or bars; Studio One punches between the loop locators, so this sets the loop range without turning looping on). The result shows punch-in and whether any autopunch is on (punch-out alone cannot be read separately once punch-in is on).

NameRequiredDescriptionDefault
clickNo
punchNo
loopMixNo
prerollNo
punchToNoSeconds (number) or a bar position string like "9.1.1.0"
replaceNo
precountNo
loopTakesNo
noteEraseNo
punchFromNoSeconds (number) or a bar position string like "9.1.1.0"
precountBarsNo1-16
inputQuantizeNo
takesToLayersNo

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 load and does so well: it discloses that record modes cannot be read back and are reported as set rather than confirmed, that setting punchFrom/punchTo repurposes the loop range without enabling looping, and that punch-out is not independently readable once punch-in is on. It does not cover permission or state-reset behavior, 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 no-argument read behavior, then set behavior, then caveats; every sentence is informational. The paragraph is dense and slightly run-on, but no sentence is 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 13-parameter, output-schema-less, annotation-less mutation tool, the description covers inputs and even sketches the result payload ('shows punch-in and whether any autopunch is on'). Only error/failure behavior is left unspecified.

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 only 23% across 13 params, yet the description accounts for nearly every one and adds meaning the schema lacks: punchFrom/punchTo as seconds-or-bars positions, precountBars as a bar count, and the grouping of replace/loopTakes/loopMix/takesToLayers/inputQuantize/noteErase as record modes. It explains the semantics of the punch range rather than restating names.

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 and sets recording/metronome and auto-punch configuration in the running Studio One. Scope is clear enough to separate it from live_record (capturing takes) or live_set_loop, though no sibling is named explicitly.

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 'with no arguments, reads the metronome' clause tells the agent exactly how to use it as a getter versus a setter, which is the main branching decision. It gives no explicit exclusions or pointers to overlapping siblings such as live_set_loop, which handles the loop locators this tool touches.

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

live_redoC

Redo edit(s) in the running Studio One.

NameRequiredDescriptionDefault
stepsNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It notes the operation targets the live running session, but discloses nothing about failure modes (what happens if there is nothing to redo), reversibility, or effect on history.

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

Conciseness4/5

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

A single short sentence with the verb front-loaded and zero filler. It earns its length, though it is arguably under-specified rather than genuinely concise.

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

Completeness2/5

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

For a simple one-parameter tool with no annotations and no output schema, the description still omits the meaning of 'steps', the undo/redo relationship, and any failure behavior, leaving real gaps for an agent.

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

Parameters2/5

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

The single parameter 'steps' has 0% schema description coverage and the description never mentions it. The 'edit(s)' pluralization is the only faint hint that the operation can cover multiple edits, which does not compensate for the undocumented integer 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+resource ('Redo edit(s)') and scopes it to the 'running Studio One' instance. It is clear what the tool does, but it never distinguishes itself from the sibling live_undo, which is the obvious alternative an agent will weigh.

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, no mention of the precondition (a prior undo) and no reference to live_undo. The description only implies usage through the word 'Redo' itself.

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

live_rename_markerA

Rename a marker in the running Studio One, by number (as live_markers numbers them) or by its current name. One live_undo reverts it.

NameRequiredDescriptionDefault
nameYes
markerYes

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 does real work: it discloses that the operation targets the running application (in-memory, not the saved song) and that it is a single-step undoable mutation, which is exactly the risk information an agent needs. It stops short of describing failure behavior when the marker reference is invalid or when the new name collides with an existing one.

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

Conciseness5/5

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

Two compact sentences, front-loaded with the action and scope, with the undo note last. Nothing is repeated from the schema and no sentence is filler.

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

Completeness4/5

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

For a two-parameter tool with no output schema and no annotations, the description supplies the essentials: what it mutates, where, and how to reverse it. Remaining gaps are edge-case behavior (invalid reference, duplicate name) rather than anything blocking a correct first call.

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 for the ambiguous parameter: it explains that 'marker' accepts either an integer index (per live_markers numbering) or the marker's current name, resolving the anyOf that the schema leaves unexplained. The 'name' parameter is only implicitly characterized as the new name, not as a replacement value constrained to be unique.

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 (rename a marker) plus the target environment (running Studio One), and clarifies the identifier forms accepted. It also names live_markers as the source of the numbering scheme, so it is distinguishable from live_add_marker and live_delete_marker 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 rather than stated: it signals the tool acts on a live session and that live_undo is the reversal path. It never says to call live_markers first to discover valid indexes, nor when to prefer renaming over deleting and re-adding a marker.

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

live_run_macroA

Run a Studio One macro by title (from live_macros), e.g. "Normalize Audio & Set Peaks To -12". Macros are chains of commands that usually act on the selected events or tracks (see live_select_events / live_select_track) and can edit the song; most edits undo with live_undo. check_only reports whether it is enabled without running it.

NameRequiredDescriptionDefault
titleYes
check_onlyNo

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations supplied, the description carries the full burden and does the important part: it discloses that the tool mutates the song, acts on selection state, and that most (not all) edits are reversible via live_undo. It does not describe what happens when the title does not match a known macro or what the call returns, which leaves a behavioral gap for a mutation tool.

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

Conciseness5/5

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

Three sentences, front-loaded with the action and resource before the caveats. Every clause earns its place: the example disambiguates title format, the selection note prevents a common misuse, and the undo note bounds risk.

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, no-annotation, no-output-schema mutation tool, the definition covers the essentials an agent needs: how to name the macro, what it acts on, that it edits the song, and how to undo. The main remaining gap is error/not-found behavior and the shape of the result, which the description only partially implies through check_only.

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 for both parameters: title is sourced from live_macros and shown in concrete format via an example, and check_only is explained as a report-enabled-without-running flag. Matching behavior (exact vs. fuzzy title resolution) 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 ("Run a Studio One macro by title") and anchors the title to its source tool, live_macros, which cleanly separates it from sibling live_macros (enumeration) and live_command (single command). The concrete example macro name makes the resource unambiguous.

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

Usage Guidelines4/5

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

Gives real preconditions — macros usually act on the current selection, with explicit pointers to live_select_events / live_select_track — plus a check_only mode for a no-op availability check and live_undo for reversal. It stops short of stating when to prefer this over live_command for a single command, so no explicit exclusion is offered.

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

live_saveA

Save the song open in Studio One (File/Save), or save it as a new version (File/Save New Version) to keep the old one.

NameRequiredDescriptionDefault
new_versionNo

TDQS

A3.7/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 behavioral burden. It usefully discloses the key distinction between overwriting the current file and creating a new version that preserves the old one, but it says nothing about permission requirements, overwrite risk on the default path, 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.

Conciseness5/5

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

A single sentence that leads with the primary action and then the conditional branch. No filler, no repetition of the tool name, and every clause adds information.

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

Completeness4/5

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

For a one-optional-boolean tool with no output schema and no annotations, the description covers both execution paths and the rationale for each. Only minor gaps remain, such as failure behavior and the requirement that a song be 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 explain the sole parameter, and it does: new_version corresponds to 'save it as a new version ... to keep the old one', while the default path overwrites the current file. That is enough meaning for the agent to set the boolean correctly, though it never names the flag 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?

States a specific verb and resource (save the open Studio One song) and enumerates the two modes it maps to, File/Save and File/Save New Version. It is clearly distinguishable from siblings like live_undo, live_redo, or live_command, though it never names an alternative explicitly.

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

Usage Guidelines3/5

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

The description implies which mode to pick by explaining that the new-version path exists 'to keep the old one', so the agent can infer intent from the new_version flag. It gives no explicit when-to-use framing, no prerequisites (a song must be open), and no mention of alternatives such as live_command for arbitrary actions.

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

live_select_eventsA

Select all events on the named track(s), or on every track, or clear the event selection. Then use live_command for selection-based edits, e.g. Event/Mute Events, Event/Unmute Events, Event/Toggle Mute, Edit/Split at Cursor, Event/Quantize, Event/Transpose Events Up, Track/Activate Next Layer (switch takes), Edit/Undo.

NameRequiredDescriptionDefault
allNo
noneNoDeselect all events
trackNo
tracksNo

TDQS

A4/5.0
Behavior3/5

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

No annotations, so the description must carry the full burden. It discloses that selection is stateful (can be cleared) and that it gates downstream edits, but says nothing about whether the params are mutually exclusive, what happens with conflicting flags, or what state is left behind.

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 in the first clause before listing follow-up commands. The example list is long but directly actionable, and no sentence is filler.

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

Completeness3/5

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

For a 4-param, no-annotation, no-output-schema tool the description covers purpose and follow-up workflow but leaves the interaction between all/none/track/tracks unspecified. An agent cannot tell whether flags are exclusive or combinable.

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 only 25% (only 'none' is documented), so the description must compensate, and it does map intent for three of four params: 'named track(s)' for track/tracks, 'every track' for all, and 'clear the event selection' for none. It stops short of explaining precedence or the expected track-name format.

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

Purpose5/5

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

States a specific verb (Select) and resource (events) plus the three scoping modes it supports (named track(s), every track, clear). An agent can distinguish it from live_select_track (track selection) and from the edit siblings it routes to.

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 tells the agent this is a preparatory step and that live_command must be used afterwards for selection-based edits, listing concrete command examples. It gives clear context but no explicit when-not-to-use or alternative selection tool, so it stops short of a 5.

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

live_select_trackA

Select a track by exact name in the running Studio One, so that selection-based commands (live_command) act on it. Replaces the selection unless exclusive is false.

NameRequiredDescriptionDefault
kindNoWhen two tracks share the name: which one
nameYes
exclusiveNo

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations supplied, the description carries the full behavioral burden, and it does disclose the key side effect: the existing selection is replaced unless exclusive is false. It stops there, saying nothing about failure behavior when the exact name does not match, whether the call errors or no-ops, or what the call reports back.

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

Conciseness5/5

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

Two tight sentences with no filler; the action and the downstream consequence are front-loaded before the selection-replacement caveat.

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 is the only place an agent could learn what a successful selection returns or how an unmatched name surfaces. For a selection-mutating tool with no annotations, the definition is adequate but leaves those two questions 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 only 33% — name and exclusive are undocumented in the schema — and the description compensates by defining the matching rule (exact name) and spelling out exclusive's meaning in prose. Only kind's collision-disambiguation role is left entirely to the schema enum description, so minor gaps remain.

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 ("Select a track by exact name") plus the execution context ("running Studio One"), and links the action to its downstream consumer (live_command). It does not differentiate itself from the other look-alike selector in the sibling list (live_select_events), 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?

The phrase "so that selection-based commands (live_command) act on it" implies the workflow context for calling this tool, which is more than nothing. However, it never says when to use this instead of live_tracks or live_select_events, nor what to do when the track is not present, so usage is only 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.

live_sendsC

Sends on each mixer channel of the running Studio One (or one channel): destination, level (0..1, Studio One normalised) and mute.

NameRequiredDescriptionDefault
channelNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full burden. It implies a read by describing returned fields, but never states read-only semantics, whether it requires a running Studio One instance (only hinted by 'the running Studio One'), what happens if no session is open, or whether the call has any side effects.

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

Conciseness4/5

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

A single compact sentence with no filler, and the returned fields are listed inline. The colon-and-list construction is slightly awkward and the scope qualifier could be front-loaded more cleanly, but nothing is wasted.

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

Completeness3/5

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

With no output schema and no annotations, the description partially compensates by enumerating the returned fields (destination, level, mute) and the level range. It still leaves the channel identifier format, read-only nature, and failure behavior unspecified, which matters for a session-dependent 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% and the single 'channel' parameter is an untyped string in the schema. The description adds real meaning by indicating that omitting channel yields sends for every channel while supplying one narrows to a single channel, but it does not explain the expected identifier format (name, index, or ID).

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

Purpose3/5

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

The description names the resource (sends on mixer channels) and the data exposed (destination, level, mute), and notes the single-channel variant. However, it is phrased as a noun fragment rather than a verb+resource, so it never explicitly says it reads/lists sends; an agent could momentarily confuse it with live_set_send or live_add_send, which are not mentioned.

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 statement and no named alternative. The parenthetical '(or one channel)' implies you can scope to one channel, but nothing says when to prefer this over live_add_send/live_set_send or live_channels, and there are no prerequisites or exclusions.

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

live_set_automationA

Set a mixer channel's automation mode in the running Studio One: off, read, touch, latch or write (live_channels shows each channel's mode). Touch, latch and write record fader and plug-in moves as automation while the song plays. Returns before/after.

NameRequiredDescriptionDefault
modeYes
channelYes

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 behavioral burden. It usefully explains that touch, latch, and write record fader and plug-in moves while the song plays and that the tool returns before/after, but it does not clarify overwrite risks, permissions, transport prerequisites, or what happens to existing automation.

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

Conciseness5/5

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

The description is short, front-loaded with the core action, and contains no wasted wording. It packs mode enumeration, key behavioral context, and return behavior into a compact statement.

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

Completeness3/5

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

For a simple two-parameter mutation tool with no annotations and no output schema, the description covers the main purpose, mode semantics, and that a before/after result is returned. It remains incomplete because channel identification is unspecified and important mutation side effects are not addressed.

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 needs to compensate. It gives partial meaning for the mode values by explaining touch, latch, and write behavior, but it leaves read and off unexplained and gives no guidance on how the channel string should be identified.

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: setting a mixer channel's automation mode. It enumerates the modes and explicitly points to live_channels for viewing mode values, which helps distinguish this tool from the read-only sibling.

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

Usage Guidelines3/5

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

The parenthetical about live_channels implies when to use that sibling for checking modes, but the description does not explicitly say when to use this tool versus alternatives such as live_write_automation. Usage is mostly inferable from the purpose rather than stated as guidance.

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

live_set_channelA

Change one mixer channel in the running Studio One. Values are Studio One normalised values (volume/pan 0..1, pan 0.5 = centre; mute/solo/recordArmed/monitor 0 or 1). Returns before/after.

NameRequiredDescriptionDefault
fieldYes
valueYes
channelYesExact channel label as shown in the console

TDQS

A3.5/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 behavioral burden and does add real value: exact value domains for volume/pan versus the boolean-ish fields, and the promise that a before/after pair is returned. It omits whether the mutation is undoable, what happens if the channel label does not match, and whether changes are persisted to the song or only live in the mixer.

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, front-loaded sentences with no filler; the purpose leads and the value semantics follow immediately. 'Returns before/after' is terse to the point of ambiguity about what is actually returned.

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-required-parameter live mutator with no annotations and no output schema, the description covers the value contract well but leaves the return shape ('before/after' of what) and failure behavior undefined. Adequate to invoke correctly, incomplete for predicting the result.

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

Parameters4/5

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

Schema coverage is only 33% and the schema types 'value' as a bare number, so the description's normalisation rules (volume/pan 0..1, pan 0.5 = centre, mute/solo/recordArmed/monitor 0 or 1) carry the critical semantics and directly compensate for the coverage gap. 'channel' is only explained by the schema, and the description adds nothing about whether the label is case-sensitive.

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 — 'Change one mixer channel in the running Studio One' — with the scope qualifier 'one' making clear it is a single-channel, single-field setter. It never names the adjacent siblings (live_set_send, live_set_plugin_param, live_set_automation) that also write values, 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?

'in the running Studio One' implies a live-connection prerequisite, which is useful usage context. There is no explicit when-to-use versus alternatives guidance, no note that one call changes exactly one field, and no guidance on what to do for multiple channel changes.

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

live_set_loopA

Set the loop range in the running Studio One (start/end in seconds or as bars like "9.1.1.0"), and optionally turn looping on or off. Returns the transport state.

NameRequiredDescriptionDefault
endNoSeconds (number) or a bar position string like "9.1.1.0"
startNoSeconds (number) or a bar position string like "9.1.1.0"
enableNo

TDQS

A3.7/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 usefully discloses the return value ('Returns the transport state') and that enable is optional, but says nothing about failure modes when Studio One is not running, what happens if only one of start/end is supplied, or whether the loop range is validated/rejected.

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

Conciseness5/5

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

Front-loaded with the core action, then the format hint, then the optional flag and return value — no wasted words and no redundancy with 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?

For a small 3-parameter tool with no annotations and no output schema, the description covers purpose, parameter formats, the optional flag, and the return value. It leaves edge-case behavior (partial ranges, no-op calls since zero params are required) unexplained.

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 67% and the schema documents the dual number/string format for start/end, but 'enable' has no schema description at all; the description fills that gap by explaining it turns looping on or off. It also reinforces the bar-position format, adding value beyond the schema.

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

Purpose4/5

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

States a specific verb+resource (set the loop range) on a named target (running Studio One) and covers the optional enable behavior. It does not distinguish itself from the closely related sibling live_set_transport, which also manipulates transport state, so an agent must infer the boundary.

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: 'in the running Studio One' signals the precondition that the DAW must be running, but there is no when-to-use/when-not guidance and no mention of live_set_transport as the alternative for non-loop transport changes.

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

live_set_plugin_paramA

Set one plug-in parameter on a channel in the running Studio One (names from live_plugin_params). Give exactly one of: text, as Studio One displays it (e.g. "4.0:1", "-12 dB", "Standard"); normalized, 0..1; or value, the raw value within its min..max. Returns before/after; to revert, set the "before" value.

NameRequiredDescriptionDefault
slotYes
textNo
paramYes
valueNo
channelYes
normalizedNo

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the return payload ('before/after') and states the change is reversible by re-setting the 'before' value. It does not say whether the change is immediate/audible, whether it applies to a live mixer or saved state, or what happens on invalid input.

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 the action and followed by the value-mode rule and the return/revert behavior. No filler, and the mutual-exclusivity constraint is stated explicitly with 'exactly one of'.

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 the critical unknowns: value encoding, return shape, and rollback. Remaining gaps (error behavior, whether 'slot' indexes inserts, unit expectations per parameter) are minor but real.

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 for the hardest part: text vs normalized (0..1) vs value (raw within min..max) are given precise semantics plus concrete examples ('4.0:1', '-12 dB', 'Standard'). It leaves 'slot' and 'param' unglossed, so an agent must infer that slot is an insert 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 and resource: 'Set one plug-in parameter on a channel in the running Studio One', and scopes it to a single parameter so it cannot be confused with batch tools like live_plugin_params or live_plugin_snapshot. It also names the sibling that supplies parameter names.

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?

Points the agent at live_plugin_params as the source of the names it needs, which is the key prerequisite, and explains the three mutually exclusive ways to supply a value. It does not state when to avoid this tool (e.g. use live_set_automation for automation curves), which keeps it below a 5.

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

live_set_sendB

Set a send level (0..1) and/or mute on a channel in the running Studio One (index from live_sends).

NameRequiredDescriptionDefault
indexYes
levelNo
mutedNo
channelYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full burden. It does disclose that the target must be a 'running' Studio One instance (live connection required), that level is bounded 0..1 (stricter than the schema), and that level/mute are applied 'and/or' (partial update). It does not state what happens on an invalid channel or index, whether omitted fields are left untouched, or whether the change is undoable via live_undo.

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

Conciseness4/5

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

A single compact sentence with the action front-loaded and the range constraint attached directly to the parameter it governs. The trailing parenthetical is slightly awkward in placement but adds needed provenance information with no wasted prose.

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, no output schema, and 0% schema description coverage across four parameters, the description is on the thin side. It covers intent and the level range but omits error behavior and result, which an agent needs to call and recover from this write operation safely.

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 adds real meaning for 'level' (0..1 range, absent from the schema) and for 'index' (provenance from live_sends), and maps 'mute' to the muted flag. It says nothing about the format or identity of 'channel' (name vs. path vs. id), leaving one of the two required parameters ambiguous.

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 (Set) and resource (send level and/or mute on a channel), scoped to the running Studio One instance. It is distinguishable from live_sends (read) and live_add_send (create), 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 parenthetical '(index from live_sends)' implies the prerequisite that the index must be obtained from live_sends first, which is useful ordering guidance. However, there is no explicit when-to-use or when-not-to-use guidance relative to live_add_send or live_set_channel, so the agent must infer the boundary.

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

live_set_transportB

Set transport values in the running Studio One: tempo (bpm), playhead position (seconds), loop / precount / preroll on or off. Returns the resulting transport state.

NameRequiredDescriptionDefault
loopNo
tempoNo
prerollNo
precountNo
position_barsNoBar position like "9.1.1.0" (bar.beat.sixteenth.tick); alternative to position_seconds
position_secondsNo

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description must carry the full behavioral burden. It discloses that the host must be running and that it returns the resulting transport state, but says nothing about side effects of tempo/position changes (e.g. seeking during playback), required permissions, whether unspecified fields are left unchanged, or whether all params are optional.

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

Conciseness4/5

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

Two tight sentences, front-loaded with the verb and resource, then the settable fields, then the return behavior. No filler; the only cost is a slightly dense enumeration mid-sentence.

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 6-parameter mutation tool with no annotations and no output schema, the description covers the settable surface and the return value, which is the main thing. It stops short of preconditions, param interactions, and side-effect disclosure needed for full confidence before invoking.

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 only 17% (just position_bars), so the description does meaningful compensating work: it supplies units the schema lacks ('tempo (bpm)', 'playhead position (seconds)') and maps the bare boolean properties to loop/precount/preroll semantics. It does not, however, explain the interaction between position_seconds and position_bars or any defaults.

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

Purpose4/5

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

Clear verb+resource ('Set transport values') with an explicit enumeration of what can be set (tempo, playhead position, loop/precount/preroll). This distinguishes it from the read-oriented sibling live_transport, though it never names that sibling or addresses its overlap with live_set_loop.

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 'in the running Studio One' (requires a live host connection) and by 'set' vs the read sibling live_transport. However, there is no explicit when-to-use guidance, no mention of live_set_loop as an alternative for loop state, and no preconditions or required state.

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

live_songA

The song open in Studio One right now: title, transport (playing, recording, loop, position, tempo, loop range, precount, preroll), track count and selected tracks. Unlike song_read this includes unsaved changes.

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 it does disclose the key behavioral trait that the state is live and includes unsaved changes — a meaningful distinction from persisted reads. It stops short of describing side effects, permissions, or refresh semantics, but for a read-only snapshot tool this is solid coverage.

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

Conciseness4/5

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

Two compact sentences, front-loaded with the identity of the resource and then the field inventory and the sibling contrast. The parenthetical field list is dense but each item is informative; 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?

There is no output schema, so the description usefully enumerates the return contents (transport sub-fields, track count, selected tracks). Combined with the song_read contrast, an agent has enough to call it and interpret the result, though deeper detail (e.g., position/tempo units) is absent.

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; there is no parameter semantics to add or omit.

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: reading the song currently open in Studio One, and enumerates exactly what is returned (title, transport state, track count, selected tracks). It explicitly distinguishes itself from the sibling song_read, so an agent can choose between 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?

The contrast with song_read ('includes unsaved changes') gives clear selection guidance: use live_song when the current, possibly-unsaved state matters. It does not spell out explicit when-not conditions or name other alternatives, so it falls short of a 5.

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

live_statusA

Is a running Studio One reachable through the MCP Bridge device? Explains how to fix it if not.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/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 useful behavior: this is a read-only reachability probe that additionally returns remediation guidance on failure. It does not spell out what a successful result contains, but for a zero-parameter probe the disclosed behavior is close to 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?

Two short sentences, with the core question front-loaded and the secondary output behavior trailing. No filler 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?

With no output schema, the description does need to hint at returns, and it does by noting the fix instructions on failure. The only gap is that it does not describe what a successful response reports, which is a minor omission for a simple connectivity check.

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 beyond what the empty schema already conveys.

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 check — whether a running Studio One instance is reachable via the MCP Bridge device — which is a distinct resource/verb combination an agent can tell apart from the sibling live_* action tools. It is phrased as a question rather than an imperative, but the 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?

Usage is only implied: the 'Explains how to fix it if not' clause suggests it is a diagnostic to run when the bridge may be down, but the description never explicitly says when to call it or which siblings it should precede. No alternatives or exclusions are named.

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

live_takesA

A track's takes (layers) in the running Studio One: list them (with their names from the last save), switch to the next/previous take or to take N (goto, 1-based), add an empty take or duplicate the active one (each one live_undo), unpack all takes to separate tracks, or recall a retrospective recording (instrument tracks: what you played while not recording). Returns the number of takes and the names of the clips now playing. Takes do not wrap: next on the last take (or previous on the first) changes nothing.

NameRequiredDescriptionDefault
takeNoFor goto: 1-based take number
trackYes
actionNo

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 well: it discloses that add/duplicate are undoable ("each one live_undo"), that retrospective recall is limited to instrument tracks, and that takes do not wrap at the ends. It still omits whether unpack is destructive or how it interacts with existing tracks, and says nothing about failure modes for an invalid take number.

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?

Everything is packed into one dense, front-loaded sentence that starts with the resource and then walks the action space, with no filler. The heavy parenthetical nesting makes it harder to scan than a short bulleted action list would be, 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?

Even without an output schema, the description states what is returned (the number of takes and the names of clips now playing), which is what an agent needs to chain calls. Combined with the non-wrapping edge case and undo semantics, it is nearly complete; only per-action failure behavior and track-selection prerequisites are 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 only 33%, but the description compensates by explaining the take parameter as 1-based and only relevant for goto, tying it to the action enum, and by defining each of the eight action values in prose (including duplicate vs add). The track parameter itself gets no explanation beyond being implied by "A track's takes", which is a minor gap.

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

Purpose4/5

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

The description names a specific resource ("A track's takes (layers) in the running Studio One") and enumerates the operations it supports (list, next/previous/goto, add, duplicate, unpack, retrospective), so the agent knows exactly what domain this tool covers. It does not explicitly name a sibling tool it supersedes or differs from (e.g. live_tracks, live_track_state), which keeps it short of a 5.

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

Usage Guidelines3/5

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

Usage is implied through the action list: goto needs a 1-based take number, add/duplicate each registers a live_undo, unpack splits takes into separate tracks, and retrospective applies to instrument tracks. However, there is no explicit guidance on when to choose this tool over neighbours like live_track_state or live_add_track, and no prerequisites (e.g. Studio One must be running, track must be selected) are stated.

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

live_tempoA

Tempo map of the running Studio One (stopped). at: tempo at one or more positions. set: change the tempo of the segment containing a position (default: the playhead). insert: add a tempo change at a position with its bpm. Removing one needs live_undo (usually two steps), and Studio One has refused an undo right after a tempo edit, so check with action at afterwards; setting a segment back is exact. Positions are seconds or bars like "9.1.1.0"; the playhead is put back. For the whole saved map, and time signatures, use song_read.

NameRequiredDescriptionDefault
atNo
bpmNo
actionYes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations supplied, this description carries the full behavioral burden and does so unusually well: it discloses the side effect that the playhead is restored, the failure mode that Studio One has refused an undo immediately after a tempo edit, and the asymmetry that setting a segment back is exact. It stops short of describing what data comes back from 'at' or what error surfaces when the refused-undo case occurs, which keeps it below a 5.

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

Conciseness4/5

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

Front-loaded and waste-free; the action enumeration comes first and constraints and warnings follow. The telegraphic style ('at: tempo at one or more positions') buys density at some cost in readability, and the parenthetical '(stopped)' in the opening line is never explained.

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 three-parameter mutation tool with no annotations and no output schema, this is close to complete: undo path, verification step, side effects, and sibling alternatives are all covered. Missing only the return shape of the 'at' action and the exact precondition implied by '(stopped)'.

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 largely does: it explains that positions are seconds or bars like "9.1.1.0", that 'at' accepts one or more positions, and that 'set' defaults to the playhead. The notable gap is bpm — neither the schema nor the description says it is required for 'set'/'insert' or how it interacts with segment bounds.

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

Purpose5/5

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

The description names the resource (the tempo map of the running Studio One) and enumerates every mode of the tool — 'at', 'set', 'insert' — with a specific verb for each, so an agent knows exactly what operation each enum value performs. It also names the sibling (song_read) that covers the whole saved map and time signatures, making it distinguishable at a glance.

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

Usage Guidelines5/5

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

Explicit routing is present for the hard cases: removal must go through live_undo, 'and usually two steps' at that, with a stated verification procedure ('check with action at afterwards'), and whole-song or time-signature queries are redirected to song_read. It also states the default targeting behavior for 'set' (the playhead) so the agent knows a position is optional.

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

live_time_signatureB

Time signatures in the running Studio One. at: the signature in effect at positions (seconds or bars; default the start). insert {bar, numerator, denominator}: a change at the start of a bar. remove {bar}: the change at that bar. Each insert or remove is one live_undo.

NameRequiredDescriptionDefault
atNo
barNo
actionYes
numeratorNo
denominatorNo

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations supplied, the description carries the full behavioral burden, and it does disclose one important trait: 'Each insert or remove is one live_undo', which tells the agent mutations are undoable atomically. It omits error behavior (e.g. removing a bar with no signature change), whether removing the initial signature is legal, and whether any permission or connection state 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?

The definition is compressed into three front-loaded clauses mapping directly to the enum values, with no filler or repetition. The grammar is telegraphic ('at: the signature in effect at positions'), which costs a little readability but earns its space.

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 five-parameter mutation tool with no annotations and no output schema, the description covers the operations and their parameters but does not describe the shape of what 'at' returns (e.g. a numerator/denominator pair, possibly multiple for a list of positions). Adequate, not complete.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate, and it largely does: 'at' is defined as seconds or bars defaulting to the start, 'bar' is tied to insert/remove, and 'numerator'/'denominator' are scoped to 'insert'. It does not state validity constraints such as denominator being a power of two, which is the remaining semantic gap.

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

Purpose3/5

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

The opening line 'Time signatures in the running Studio One' names the resource but supplies no verb, leaving the tool's nature (read vs write) to be inferred. The following clauses do name three concrete operations (at/insert/remove) with their payloads, which rescues the definition, but an agent must read past a vague headline to learn what it does.

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 three mode clauses implicitly define when each is used: 'at' for querying the signature in effect, 'insert' for adding a change at a bar, 'remove' for deleting one. There is no explicit when-not guidance, no mention of prerequisites (a live Studio One connection), and no differentiation from related siblings such as live_tempo.

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

live_track_editA

Edit a track by exact name in the running Studio One: rename (and its mixer channel), color ("#rrggbb"), remove, move (reorder: put it just before or after another track; both at the top level, not inside a folder), route (send its channel's output to a bus or output, by channel name), folder (move it into a folder track, creating it with create: true; the folder is expanded so the track stays visible to these tools), or renameEvents (name every event on it, numbered in time order if asked). Rename and colour are not on the undo stack; route is set back by routing to the "before" channel the result gives; remove, move, folder and renameEvents undo with live_undo. The track selection is kept. Move, route, folder and renameEvents run through the MCP Track Edit task installed with the device.

NameRequiredDescriptionDefault
toNoFor route: destination channel name, e.g. "Bus 1" or "Main"
kindNoWhen two tracks share the name (an audio stem and its MIDI render): which one
nameNoFor rename and renameEvents
afterNoFor move: put the track just after this track
colorNoFor color: "#rrggbb"
trackYes
actionYes
beforeNoFor move: put the track just before this track
createNoFor folder: create the folder track if there is none by that name
folderNoFor folder: folder track name
numberedNoFor renameEvents: add (01), (02)… in time order

TDQS

A4.1/5.0
Behavior5/5

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

With no annotations supplied, the description carries the full burden and does so: it discloses which actions are undoable ('remove, move, folder and renameEvents undo with live_undo'), which are not ('Rename and colour are not on the undo stack'), and how to reverse route by routing back to the 'before' channel the result gives. It also notes side effects an agent would otherwise not predict — the mixer channel is renamed with the track, a created folder is expanded so the track stays visible, and the track selection is kept. This is exactly the behavioral context annotations would normally provide.

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?

Every clause carries information and the key constraint (exact name, running Studio One) is front-loaded, so it is efficiently sized for seven actions. However, it is delivered as one long run-on sentence with nested parentheses and semicolons, which is hard to scan for an agent trying to map action to parameter. A short per-action structure would have cost no extra words.

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

Completeness4/5

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

For an 11-parameter, seven-action mutation tool with no annotations and no output schema, the description covers undo semantics, prerequisites, side effects, and visibility. It is thin on failure behavior (what happens when the exact track name is not found, or when 'kind' is omitted and names collide) and on the shape of the returned result it twice refers to. Those are the only meaningful omissions.

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 already high (82%), so the baseline is 3, but the description adds real meaning: 'kind' is explained as the disambiguator when an audio stem and its MIDI render share a name, 'to' is a channel name, 'create: true' means create the folder if none exists, and 'numbered' produces (01), (02)… in time order. It also clarifies the before/after pair as a reorder anchor. Minor gaps remain (e.g., the exact 'track' matching rules beyond 'exact 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 opens with a specific verb+resource ('Edit a track by exact name in the running Studio One') and then enumerates all seven actions (rename, color, remove, move, route, folder, renameEvents) with a one-clause gloss for each. An agent can tell this is the track-mutation tool rather than a listing or event tool. It stops short of naming siblings it overlaps with (e.g., live_select_track, live_set_channel, live_edit_events), so it is clear but not fully differentiated.

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

Usage Guidelines4/5

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

Usage is spelled out per action: rename targets the track and its mixer channel, move is explicitly top-level-only and not inside a folder, folder can create the folder with create: true, route takes a channel name. It also states the prerequisite that move/route/folder/renameEvents run through the 'MCP Track Edit task installed with the device'. There are no explicit exclusions or named alternatives for overlapping siblings, which keeps it below a 5.

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

live_tracksB

Tracks of the song open in Studio One right now, with media type, colour, mixer channel, number of takes, selection, and (by default) their events: name, start/end/length in seconds, muted.

NameRequiredDescriptionDefault
nameNoOnly tracks whose name contains this
eventsNoInclude events (default true)
max_eventsNoPer track (default 50)

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the disclosure burden. It usefully describes the payload (media type, colour, mixer channel, takes, selection) and the default-on events behavior, but never states that this is a read-only/no-side-effect operation or any access 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?

A single dense sentence that front-loads the resource and scope before the field list. No filler, though it is a little crammed and would read better split into purpose plus return detail.

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 read-only list tool with no output schema and no annotations, the description supplies substantial return-value context. It omits the max_events default (50) and pagination/ordering behavior, leaving minor 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 100%, so the schema already documents name, events, and max_events. The description only echoes the events default ('by default'), adding nothing beyond the schema, which matches the baseline 3.

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 the resource (tracks) and its scope ('of the song open in Studio One right now'), and enumerates the fields returned. The verb is only implicit (a read/list) and it does not differentiate itself from nearby siblings such as live_channels or live_track_state, so it is clear but not fully self-locating.

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 statement of when to use this versus alternatives. With siblings like live_channels, live_track_state, live_select_track, and live_takes in the same namespace, an agent gets no routing guidance about which to call.

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

live_track_stateA

Toggle a track's arm / monitor / mute / solo, hide it, or duplicate it, by track name; showAll unhides every track. Returns the track's mixer channel afterwards. The track selection is restored. Mute is not on Studio One's undo stack: revert it by toggling again, since live_undo would undo the edit before it.

NameRequiredDescriptionDefault
trackNo
actionYes

TDQS

A4/5.0
Behavior4/5

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

No annotations, so description carries full behavioral load. It discloses non-obvious traits: returns the mixer channel, restores track selection, and that mute is not on Studio One's undo stack. It does not cover permissions, error behavior, or how duplicate/hide affect project state.

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 sentences, front-loaded with purpose and action list, then return/side-effect and undo caveat. No redundancy; each sentence adds useful information.

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

Completeness4/5

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

No output schema and no annotations, with 2 params at 0% schema coverage. The description covers return value, selection restoration, and undo caveat for a multi-action tool, making it mostly complete, though it omits error handling and optionality of track for showAll.

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 description must compensate. It explains action enum semantics (including showAll unhides every track) and that track is specified by name. It does not clarify that track is optional/ignored for showAll, and adds little about track name format.

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 specific actions (toggle arm/monitor/mute/solo, hide, duplicate, showAll) on the track resource, and mentions live_undo as an undo alternative. It does not differentiate from other track-management siblings like live_tracks or live_add_track, but the verb+resource 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 Guidelines4/5

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

Provides explicit guidance for mute: use toggle again rather than live_undo, naming the alternative and condition. For other actions it only implies usage through descriptions, with no when-to-use versus add_track/select_track.

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

live_transportC

Press a transport button in the running Studio One and return the resulting transport state.

NameRequiredDescriptionDefault
actionYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It discloses that the tool acts on a running Studio One and returns transport state, but says nothing about permissions, side effects, reversibility, error handling, or what happens if Studio One is not running.

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

Conciseness5/5

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

A single, front-loaded sentence with no wasted words. The core action and return are stated immediately and efficiently.

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

Completeness2/5

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

For an action tool with no annotations and no output schema, the description is too sparse. It mentions a return value but omits required usage context, parameter meanings, and behavioral details like side effects or error conditions.

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

Parameters2/5

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

The schema description coverage is 0%, so the description should compensate, but it does not. It only implies that the action parameter selects a transport button; it does not explain the enum values or their effects.

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 ('Press') and resource ('transport button in the running Studio One') and says it returns the resulting state. It does not distinguish itself from sibling tools like live_set_transport or live_command, 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 Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives such as live_set_transport or live_command, nor any prerequisites or exclusions. Usage is only implied by the verb 'Press'.

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

live_undoA

Undo the last edit(s) in the running Studio One; returns how many ran (a refused undo counts 0). Check the result rather than counting steps: mixer parameter changes (volume, monitor, plug-in parameters, automation mode...) become undo steps that are recorded late and merge, so an undo can land on one of those instead of the edit you just made. Undo again until your edit is gone.

NameRequiredDescriptionDefault
stepsNo

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 the return value, that a refused undo counts 0, and the non-obvious behavior that mixer parameter changes become late-recorded, merging undo steps. It omits whether undo is itself reversible or what a refusal means operationally (e.g., empty history vs. locked state).

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

Conciseness4/5

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

Three sentences, front-loaded with the action and return value, then the caveat, then the corrective instruction. Dense but every sentence carries information; the parenthetical list of mixer parameters is slightly verbose but illustrative.

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

Completeness4/5

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

No output schema exists, and the description covers the return value and the tricky merge behavior, which is the main thing an agent could get wrong. The remaining gap is the undocumented 'steps' parameter, which leaves the caller guessing about multi-step semantics.

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% for the single 'steps' parameter, so the description must compensate and largely does not. 'Last edit(s)' hints at multi-step undo, but nothing explains the default, negative values, or the maximum range the schema allows.

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 opens with a specific verb and resource ('Undo the last edit(s) in the running Studio One') and states the return value ('returns how many ran'). It is clearly distinguishable from live_redo by the verb alone, though it never names that sibling explicitly.

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

Usage Guidelines4/5

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

It gives concrete operational guidance: check the result rather than counting steps, and 'Undo again until your edit is gone.' It explains the failure mode (mixer parameter changes recorded late and merging) that makes naive step-counting unreliable. It does not mention when to prefer live_redo or how to recover from over-undoing.

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

live_write_automationA

Write volume or pan automation on a channel in the running Studio One, along points [{at, db}] (volume in dB), [{at, pan}] (-1 left .. 1 right) or [{at, value}] (0..1 as live_set_channel takes it), straight lines between them. Studio One gives scripts no way to add envelope points, so this plays the range once in real time with the channel in Write mode and the fader following the curve (audible, and it replaces that parameter's automation in the range), then leaves the channel in Read. Only runs with confirm: true. For fades inside one clip, prefer live_events fade_in/fade_out.

NameRequiredDescriptionDefault
pointsYes
channelYes
confirmYesMust be true: the user asked for automation to be written
parameterNo

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations supplied, the description carries the full burden and discharges it: it explains why the operation is real-time (no API for envelope points), that the write is audible, that it overwrites existing automation in the range, that the channel is toggled to Write and left in Read, and that it is destructive to that parameter's curve. That is exactly the side-effect and reversibility information an agent needs before calling a mutation.

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

Conciseness4/5

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

Densely front-loaded with the core action and payload formats first, then the behavioral explanation, then the alternative. Sentences are long and clause-heavy but each one carries distinct information; nothing is 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 4-parameter, high-risk, unannotated mutation tool with no output schema, the description covers mechanism, side effects, preconditions and alternatives. It stops short of saying whether the write is undoable or what state remains if it is interrupted mid-range.

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 only 25%, but the description compensates by documenting the mutually exclusive point payloads ({at, db} in dB, {at, pan} -1..1, {at, value} 0..1) and by reinforcing the confirm constraint. 'channel' and the volume/pan meaning of 'parameter' are left to the schema, which is the only 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 and resource ('Write volume or pan automation on a channel'), names the parameter domain, and defines the point shapes inline. An agent can tell this apart from live_set_automation or live_events without opening any schema.

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

Usage Guidelines4/5

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

Gives a hard precondition ('Only runs with confirm: true') and routes a specific sub-case elsewhere ('For fades inside one clip, prefer live_events fade_in/fade_out'). It does not explicitly contrast with the adjacent live_set_automation sibling, which is the main remaining ambiguity.

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

song_diffA

What changed between two saves of a song: tempo, meter, markers, sections, tracks (added, removed, renamed, active take, events, notes), mixer (level, pan, mute, solo, automation mode, output, plug-ins and their saved settings) and automation envelopes. Compares song with against (default: the newest autosave in the song's History folder), older to newer by file time, so by default it answers "what have I changed since I saved?" (or, if the save is newer, since the last autosave). Both take a title or a .song path; paths from song_history work.

NameRequiredDescriptionDefault
songYes
againstNo

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 burden and does substantial work: it discloses comparison direction (older to newer by file time), the implicit source of the default operand (newest autosave in the History folder), and that ordering flips the meaning of the answer when the save is newer than the autosave. It does not state read-only safety explicitly or what happens when no autosave exists, so it stops at 4.

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

Conciseness4/5

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

The core comparison semantics and the default are front-loaded, and the long parenthetical enumerations of tracks/mixer fields earn their place by previewing the diff surface. The opening sentence is dense and list-heavy, but no sentence 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?

There is no output schema, so the description takes on the job of signaling what comes back — and the enumerated diff domains (tracks added/removed/renamed, mixer fields, automation envelopes) serve as an effective preview of the result. Combined with the default-resolution rules, an agent can call this correctly; only error/edge-case behavior (no autosave present, mismatched songs) is left unspecified.

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, defining `song` as one side of the comparison and `against` as the other, plus a concrete default for `against`. It also tells the agent both accept either a title or a .song path and that song_history produces usable paths, which is real meaning beyond the bare string types. Minor gap: it never says which parameter is required.

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

Purpose5/5

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

Opens with a specific verb+resource framing — 'What changed between two saves of a song' — and then enumerates exactly which domains are diffed (tempo, meter, markers, sections, tracks, mixer, automation). This is clearly distinguishable from siblings like song_read (reads one save) or song_history (lists saves) because it is explicitly a comparison between two artifacts.

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

Usage Guidelines4/5

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

Gives strong usage context: the default for `against` is the newest autosave in the History folder, and it explains the practical question it answers ('what have I changed since I saved?'). It also points to song_history as a source of valid path arguments. It lacks an explicit 'use X instead when…' exclusion against near-neighbors such as live_changes, which keeps it short of a 5.

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

song_historyA

List a song's autosaves and backups in its History folder (newest first). Each path can be passed to song_read to compare versions.

NameRequiredDescriptionDefault
songYesSong title or .song path

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses ordering (newest first) and a downstream use, but does not explicitly state that this is a read-only, non-destructive operation or mention any permission or rate-limit concerns. For a simple list tool the 'List' verb implies read-only, but with zero annotation coverage a 3 is appropriate.

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

Conciseness5/5

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

Two sentences, front-loaded with the core action and scope, with no wasted words. The ordering constraint and downstream use are included efficiently.

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 list tool with no output schema, the description adequately explains what is returned (autosaves and backups) and how the results can be used. It could be slightly more complete by noting the read-only nature explicitly, but overall it provides enough context 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 description coverage is 100%, so the single 'song' parameter is already fully documented as 'Song title or .song path'. The description only implies that this parameter identifies the song whose history is being listed, adding no format or syntax details beyond the schema.

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

Purpose5/5

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

The description uses a specific verb (List) and a precisely scoped resource (a song's autosaves and backups in its History folder), with the ordering (newest first) made explicit. It distinguishes itself from siblings like song_list and live_song by targeting history artifacts rather than the songs themselves.

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 states the context in which the returned paths are useful: 'Each path can be passed to song_read to compare versions.' That gives the agent a concrete follow-up action, though it does not explicitly exclude alternatives or say when to prefer this over other song-related tools.

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

song_listB

List Studio One songs on disk (newest first), from ~/Documents/Studio One/Songs or $STUDIO_ONE_SONGS.

NameRequiredDescriptionDefault
limitNo
queryNoCase-insensitive substring of the song title

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 behavioral burden. It usefully discloses ordering (newest first) and the on-disk source locations, but says nothing about default/max limit behavior, error handling when the directory is missing, or recursion depth.

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

Conciseness5/5

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

A single front-loaded sentence with zero waste; the verb, ordering, and source paths are all stated compactly.

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?

Adequate for a simple list tool with no output schema (return values needn't be explained). However, the undocumented limit parameter and absent error/permission behavior leave gaps for a tool with no annotations to lean on.

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 50%: the query param is documented in the schema, but limit has no description anywhere. The prose adds no parameter meaning (e.g., default limit, matching semantics), so it fails to compensate for the uncovered 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+resource ('List Studio One songs on disk'), plus scope details (newest first) and the source directories. An agent can tell it apart from song_read (which reads a single song) by scope, though the description never names that sibling explicitly.

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

Usage Guidelines3/5

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

Usage is only implied: it's a discovery/browse operation versus song_read for reading one song. There is no explicit when-to-use, when-not-to-use, or named alternative, so the agent must infer the routing.

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

song_readA

Read a Studio One song from its .song file: tempo, time signature, markers, arranger sections, tracks with takes/clips (bar, beat and seconds) and instrument notes, mixer channels with volume/pan/mute/solo, automation mode and plug-in inserts (with each plug-in's saved settings in its own units, for PreSonus plug-ins), automation envelopes that have points, the song notes and channel notes, and media files. Reflects the last save, not unsaved edits. Notes, settings and envelope points are in detail=full.

NameRequiredDescriptionDefault
songYesSong title, part of one (newest match wins), or absolute path to a .song file
trackNoWith detail=full, only include tracks whose name contains this
detailNosummary (default): one line per track. full: every take and clip.

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 stale-by-design nature of the read, that plug-in settings are expressed in each plug-in's own units and only for PreSonus plug-ins, and that notes/settings/envelope points are gated behind detail=full. It omits risk/profile details such as behavior on ambiguous titles, missing files, or the likely size of a full read.

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 returned-content list is front-loaded and each item is concrete, and the two trailing sentences carry real caveats rather than filler. The first sentence is very long and dense, but little in it is expendable.

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 is the sole source of truth and it covers returned data, freshness, and detail-level behavior adequately. It stops short of covering failure/ambiguity handling and output volume, which matter for a whole-song read.

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 100%, so the baseline is 3; the description earns a step above by clarifying that 'notes, settings and envelope points are in detail=full', which is broader than the schema's narrower 'full: every take and clip' and materially changes the choice of detail level. The 'track' filter parameter is not addressed in the description at all.

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

Purpose5/5

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

The description starts with a specific verb and resource — 'Read a Studio One song from its .song file' — then enumerates exactly what is returned (tempo, markers, tracks with takes/clips, mixer channels, inserts, automation envelopes, notes, media). 'Reflects the last save, not unsaved edits' implicitly separates it from the live_* siblings that act on the running 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 freshness caveat and the detail=full gating give an agent enough to infer when this is the right tool versus a live_* call, but no sibling is ever named and there is no explicit 'use song_list to resolve a title' or 'use live_song for current state' routing. 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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 59 tool updatesv0.4.0
    • First observedaudio_analyze
    • First observedaudio_capture
    • First observedlive_add_bus
    • First observedlive_add_instrument_track
    • First observedlive_add_marker
    • First observedlive_add_plugin
    • First observedlive_add_send
    • First observedlive_add_track
    • First observedlive_arranger
    • First observedlive_bounce
    • First observedlive_bypass_insert
    • First observedlive_changes
    • First observedlive_channels
    • First observedlive_command
    • First observedlive_delete_marker
    • First observedlive_edit_events
    • First observedlive_edit_notes
    • First observedlive_eval
    • First observedlive_events
    • First observedlive_inserts
    • First observedlive_list_commands
    • First observedlive_macros
    • First observedlive_markers
    • First observedlive_meters
    • First observedlive_mix_snapshot
    • First observedlive_notes
    • First observedlive_plugin_params
    • First observedlive_plugin_snapshot
    • First observedlive_plugins
    • First observedlive_record
    • First observedlive_record_setup
    • First observedlive_redo
    • First observedlive_rename_marker
    • First observedlive_run_macro
    • First observedlive_save
    • First observedlive_select_events
    • First observedlive_select_track
    • First observedlive_sends
    • First observedlive_set_automation
    • First observedlive_set_channel
    • First observedlive_set_loop
    • First observedlive_set_plugin_param
    • First observedlive_set_send
    • First observedlive_set_transport
    • First observedlive_song
    • First observedlive_status
    • First observedlive_takes
    • First observedlive_tempo
    • First observedlive_time_signature
    • First observedlive_track_edit
    • First observedlive_track_state
    • First observedlive_tracks
    • First observedlive_transport
    • First observedlive_undo
    • First observedlive_write_automation
    • First observedsong_diff
    • First observedsong_history
    • First observedsong_list
    • First observedsong_read

TDQS

B3.4/5.0

Scored across 59 tools

Disambiguation3/5

Most tools target distinct Studio One resources and actions, but there is meaningful overlap: live_command duplicates many specialized commands, live_events/live_edit_events/live_track_edit all modify events, and live_tracks/live_events/live_notes are easy to confuse for inspection. The detailed descriptions help, but the large surface still creates real selection ambiguity.

Naming Consistency4/5

The naming is mostly consistent snake_case with recognizable prefixes: live_ for the running Studio One, song_ for saved song files, and audio_ for capture/analysis. Some tools use noun-style getter names while others use verb_style action names, but the pattern remains readable and predictable overall.

Tool Count2/5

At 59 tools, the surface is very heavy for an MCP server and well beyond the typical 3-15 range. The DAW domain is broad, but many operations could be consolidated, especially given the generic live_command escape hatch and several overlapping inspection/edit tools.

Completeness4/5

The surface covers a wide range of Studio One workflows: transport, tracks, events, notes, mixer channels, inserts, sends, markers, arranger sections, automation, recording, undo/redo, snapshots, and audio analysis. Minor gaps remain, such as no explicit song creation/open/close and no mixdown or stem export, but most workflows are reachable.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    An MCP server that lets Claude and other MCP clients read PreSonus Studio One .song files directly and drive a running Studio One through an in-app bridge device. It exposes tools for songs, tracks, takes, markers, transport, mixer channels, meters and roughly 1,000 Studio One commands.
    27
    39 npm
    12
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables MCP clients such as Claude Code to operate Logic Pro — transport, track selection/mute/solo/arm, mixer volume and pan, 8-band Channel EQ, and insert plugin slots — by emulating a Mackie Control surface over a CoreMIDI virtual port. Every command is verified against the LED, fader, and LCD feedback Logic sends back, so results report whether each action actually took effect.
    MIT