Skip to main content
Glama
NeanderthalMan

studio-one-mcp

studio-one-mcp

An MCP server for PreSonus Studio One. It lets Claude and other MCP clients read your songs and control a running Studio One.

Studio One has no public API, no OSC, and no network scripting. This server combines two things it does have:

Layer

How

Needs Studio One 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 One, that answers requests through a local file mailbox. It uses Studio One's own JavaScript device SDK.

Yes

Status: early. Developed against Studio One 5.5.2 on macOS. Paths for Windows and for Studio One 6/7 and Studio Pro 8 are wired in but untested.

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). Positions are given as bar/beat and as seconds.

song_history

A song's autosaves, for comparing versions.

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 (from the last save). 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

Add a marker at a position, or delete one by number or position. 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, switch to the next or previous take, or unpack them to separate tracks.

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

live_channels

Live mixer: volume, pan, mute, solo and record-arm for each channel.

live_set_channel

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

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_eval

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

Related MCP server: reaper-mcp

Install

You need Node.js 20 or newer and Studio One.

git clone https://github.com/NeanderthalMan/studio-one-mcp.git
cd studio-one-mcp
npm install
npx studio-one-mcp setup

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

  1. It finds your Studio One user profile.

  2. It installs the MCP Bridge device into it.

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

    • macOS: the built-in IAC Driver. setup can open Audio MIDI Setup for you. Tick Device is online under IAC Driver.

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

  4. It registers the server with Claude Code (all projects) 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 Studio One: Preferences… (⌘,) on a Mac, Options on Windows → External Devices → Add… → studio-one-mcp → MCP Bridge. Set Receive From to your virtual MIDI port, and Send To to None. Restart Studio One first if it was running.

  6. It waits for Studio One to answer.

npm run setup does the same thing. 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:

npx studio-one-mcp doctor      # or: 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, MIDI port, Studio One running, bridge loaded, bridge answering, and MCP client registration.

To remove the device: npx studio-one-mcp uninstall, then remove MCP Bridge under External Devices.

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

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

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.

status.json    device → client   session id; refreshed whenever the bridge runs
request.json   client → device   {id, op, args}, written atomically (tmp + rename)
response.json  device → client   {id, ok, result | 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.

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.

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 under node:vm against a fake Studio One host (test/helpers/s1host.js). The live tests change only what they restore: one channel's mute, solo and volume, the tempo, the playhead, loop, the track selection, and a play/stop. They never record. They also add a marker at 3.25 s and delete it again, mute a track's events and unmute them, switch takes and back (in whichever direction moves: layers do not wrap), mute a track and mute it again (track mute is not on Studio One's undo stack, so an Undo there reverts the edit before it), and split a clip and add a track, each followed by Undo. File/Save is only checked, never run.

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 One is a trademark of PreSonus Audio Electronics / Fender. This project is not affiliated with either.

License

MIT

Available Tools

27 tools
live_add_markerB

Add a marker in the running Studio One at a position in seconds (default: the playhead). The playhead is left where it was.

ParametersJSON Schema
NameRequiredDescriptionDefault
secondsNo

TDQS

B3.4/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 burden. It usefully discloses two behavioral traits: the default position is the playhead, and the playhead is left unchanged (a side-effect boundary versus live_set_transport). It omits any permission/state requirements or error behavior for a mutation tool.

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

Conciseness4/5

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

Two tight sentences, front-loaded with the core action and the position semantics, then the side-effect note. No filler; appropriately sized for a one-parameter 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?

With no annotations, no output schema, and a single optional parameter, the description covers the critical call details: what it does, where, and the default position. Enough to invoke correctly, though a note on marker return/identity would round it out.

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

Parameters4/5

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

With only one optional parameter at 0% schema coverage, the description compensates well by explaining that 'seconds' is a position and that it defaults to the playhead. This adds real meaning beyond the bare 'number' type in 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 and resource ('Add a marker') with scope ('in the running Studio One'), so an agent can distinguish it from live_delete_marker and live_markers. It stops short of explicitly naming those siblings, but the add/list/delete distinction is clear enough.

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 or when-not-to-use guidance, nor any named alternative. The intended context is only implied by the tool name and the mention of the playhead default.

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.

ParametersJSON Schema
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_channelsA

List the mixer channels of the song open in Studio One right now, with live volume, pan, mute, solo and record-arm.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/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. 'List' weakly implies a non-mutating read, and listing the returned fields (volume, pan, mute, solo, record-arm) adds useful context about scope and freshness. It does not explicitly confirm read-only behavior, error conditions, or whether values reflect unsaved in-memory 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?

A single sentence, front-loaded with the verb and resource, with the returned fields appended for precision. 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?

There is no output schema and no annotations, so the description must convey what comes back — and it does by naming the five channel-state properties. It stops short of documenting refresh/liveness semantics or behavior when Studio One is not running, which is a modest gap for a zero-parameter query.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. No param guidance is needed or missing.

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?

Specifies the verb (List), the resource (mixer channels of the song open in Studio One right now), and enumerates the state fields returned (volume, pan, mute, solo, record-arm). This distinguishes it from siblings like live_tracks or live_track_state, which operate on tracks rather than mixer channel strips.

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 the precondition (a live session with a song loaded) and that this returns ephemeral live state rather than saved data. However, it never states when to prefer this over live_tracks/live_track_state or what happens if no song is open, leaving selection to inference.

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.

ParametersJSON Schema
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.

ParametersJSON Schema
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.

ParametersJSON Schema
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_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.

ParametersJSON Schema
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_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.

ParametersJSON Schema
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_markersA

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden and does so well: it discloses that the playhead briefly moves and is restored, that the tool refuses while playing, and that only markers 1-20 are visible. It also clarifies that marker names come from the last save.

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-loaded, with returned fields and caveats delivered in a single structured sentence. Every clause adds useful information without waste.

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

Completeness5/5

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

There is no output schema, so the description must explain return values; it names the returned fields (number, position, name). It also covers side effects and visibility limits, making it complete for a zero-parameter read tool.

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

Parameters4/5

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

The tool has zero parameters and an empty schema, so the baseline is 4. No parameter semantics are needed or missing.

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 resource and scope: markers of the currently open Studio One song, with returned fields. It implicitly distinguishes this read operation from siblings like live_add_marker and live_delete_marker.

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 provides one usage constraint ('refuses while playing') and implies the tool reads markers, but does not explicitly say when to use it versus alternatives. There is no routing to sibling marker tools or other retrieval options.

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

ParametersJSON Schema
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_redoC

Redo edit(s) in the running Studio One.

ParametersJSON Schema
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_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.

ParametersJSON Schema
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.

ParametersJSON Schema
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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
exclusiveNo

TDQS

A4.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 full behavioral burden. It usefully discloses that the call mutates selection state ('Replaces the selection unless exclusive is false'), which is non-obvious, but says nothing about failure modes (unmatched name), required connection/state, or reversibility.

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

Conciseness5/5

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

Two tight sentences, front-loaded with the core action and the behavioral caveat last. No filler, 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 selection tool with no output schema and no annotations, the description covers purpose, downstream dependency, and the key side effect. It is nearly complete; only error handling and preconditions are unstated, which is a minor gap given the tool's simplicity.

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

Parameters4/5

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

With 0% schema description coverage, the description must compensate, and it does: 'by exact name' constrains the name parameter's matching semantics, and 'Replaces the selection unless exclusive is false' explains what the exclusive flag actually controls. Both parameters gain meaning beyond the bare schema.

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

Purpose5/5

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

States a specific verb (select) and resource (track), plus the environment ('running Studio One') and the reason it matters ('so that selection-based commands (live_command) act on it'). This distinguishes it from siblings like live_select_events (events) and live_tracks (listing) without the agent needing to open any schema.

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

Usage Guidelines4/5

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

The clause 'so that selection-based commands (live_command) act on it' tells the agent when this tool is the right prerequisite step, and the sibling live_command is named explicitly. There is no explicit when-not or exclusion guidance, but the usage context is clear.

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

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 0 or 1). Returns before/after.

ParametersJSON Schema
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 burden. It does disclose the return shape ('Returns before/after') and the value domain (normalised 0..1, pan 0.5 = centre), which is real added context, but it says nothing about failure behaviour (unknown channel label), whether the change is undoable via live_undo, or persistence to the song.

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: purpose first, then value semantics, then return format. No filler, no restatement of the tool name, and the most decision-relevant facts are front-loaded.

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

Completeness4/5

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

For a narrow, three-parameter mutation with no output schema, the description covers purpose, value encoding, and return value adequately. It still omits prerequisites (a live Studio One connection), error cases, and whether the mutation is reversible, which matters given there is no annotation safety profile.

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% (just 'channel'), so the description has to compensate, and it does for the riskiest parameter: 'value' is only typed as number in the schema, yet the description pins down the normalised ranges and the 0.5 centre convention per field. The field enum and channel label semantics are left to 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 concrete verb and resource ('Change one mixer channel') and scopes it to 'the running Studio One', which cleanly separates it from read-side siblings like live_channels and live_track_state. It stops short of naming a sibling or stating the single-field-per-call constraint, 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 Guidelines2/5

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

There is no when-to-use, when-not, or alternative guidance at all. In a 26-tool live-* family that includes live_command and live_eval, the agent gets no help deciding whether a channel change belongs here or in a generic command tool.

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.

ParametersJSON Schema
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_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.

ParametersJSON Schema
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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and 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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

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, switch to the next/previous take, or unpack all takes to separate tracks. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
trackYes
actionNo

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses that takes do not wrap (next on last take changes nothing) and states what is returned (take count and now-playing clip names). It omits side-effect detail for 'unpack' (that it creates separate tracks) and any permission/live-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.

Conciseness5/5

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

Three tight sentences: resource and operations first, then return values, then the no-wrap caveat. Every sentence carries information and nothing is padded.

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

Completeness4/5

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

For a 2-parameter tool with no output schema and no annotations, the description supplies action semantics, return shape, and boundary behavior. The only real gap is how the 'track' argument should be identified, a minor omission.

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 effectively documents the 'action' enum by narrating all four values, but the required 'track' parameter is only implied by 'a track's takes' with no indication of accepted format (name vs. index). Baseline 3 is right given partial compensation.

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

Purpose5/5

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

States a specific resource (a track's takes/layers in the running Studio One) and enumerates the exact operations available (list, next/previous, unpack). No sibling tool covers takes, so the agent can route unambiguously from the name plus this sentence.

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 spells out what each action does and when the boundary behavior applies, giving clear context for choosing among the four actions. It does not name alternatives or state when not to use the tool, 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.

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.

ParametersJSON Schema
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.

ParametersJSON Schema
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.

ParametersJSON Schema
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_undoC

Undo the last edit(s) in the running Studio One.

ParametersJSON Schema
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 discloses only that intent is to reverse edits; it says nothing about whether the undo is itself redoable, whether it fails when there is no history, or what state is affected. For a mutating tool with zero annotation coverage this is thin.

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 tight sentence with the action front-loaded and no filler. It is efficient, though its brevity is partly the source of the gaps noted in other dimensions.

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 undo tool with no annotations, no output schema, and an undocumented optional parameter, the definition is too sparse. An agent knows what it does but not when it will fail, whether it is safe to repeat, or how to control the number of undone steps.

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, and the description never mentions it at all – 'edit(s)' is the only nod to multiple steps. It also does not explain the default step count or why the schema permits negative values, which is exactly the kind of meaning the description should supply.

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 (undo) and the affected resource (the last edit(s)) in a named environment ('the running Studio One'). An agent can distinguish it from the sibling live_redo, though the description never explicitly names that inverse relationship.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no exclusions, and no mention of the obvious alternative live_redo. Eligibility is only hinted at by the phrase 'in the running Studio One', which implies the app must be running but is never stated as a prerequisite.

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.

ParametersJSON Schema
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.

ParametersJSON Schema
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), mixer channels with volume/pan/mute/solo and plug-in inserts, and media files. Reflects the last save, not unsaved edits.

ParametersJSON Schema
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

A3.7/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 does add one genuinely useful behavioral fact: the result reflects the last save, not unsaved edits, which separates it from live_* tools. However it says nothing about file-not-found/ambiguous-match behavior, permissions, or how a title match is resolved beyond the schema's note.

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

Conciseness4/5

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

Two sentences, no filler, and the return-content inventory is front-loaded before the staleness caveat. The enumeration is dense but earns its place since no output schema exists to describe the payload.

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

Completeness4/5

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

Given no annotations and no output schema, the description usefully enumerates return contents and flags staleness. The remaining gap is the lack of explicit routing against song_list/live_song and of error/ambiguity behavior, but for a read-only inspection tool this is largely complete.

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

Parameters3/5

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

Schema description coverage is 100% and each parameter (song, track, detail enum) is already documented with its semantics in the schema. The description adds no parameter-level detail beyond what the schema provides, so the baseline of 3 applies.

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

Purpose5/5

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

States a specific verb (Read) and resource (a Studio One song from its .song file) and enumerates the exact payload: tempo, time signature, markers, arranger sections, tracks/takes/clips, mixer channels, media files. This clearly distinguishes it from live_* siblings that query a running session rather than a saved file.

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

Usage Guidelines3/5

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

The description implies usage (read a saved .song file) but never explicitly says when to choose it over song_list, song_history, or the live_song/live_tracks family. The stale-vs-live distinction is implied by the last sentence rather than stated as routing guidance.

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. 27 tool updatesv0.1.0
    • First observedlive_add_marker
    • First observedlive_add_track
    • First observedlive_channels
    • First observedlive_command
    • First observedlive_delete_marker
    • First observedlive_edit_events
    • First observedlive_eval
    • First observedlive_list_commands
    • First observedlive_markers
    • First observedlive_meters
    • First observedlive_redo
    • First observedlive_save
    • First observedlive_select_events
    • First observedlive_select_track
    • First observedlive_set_channel
    • First observedlive_set_loop
    • First observedlive_set_transport
    • First observedlive_song
    • First observedlive_status
    • First observedlive_takes
    • First observedlive_track_state
    • First observedlive_tracks
    • First observedlive_transport
    • First observedlive_undo
    • First observedsong_history
    • First observedsong_list
    • First observedsong_read

TDQS

B3.4/5.0

Scored across 27 tools

Disambiguation4/5

Most tools target clearly distinct resources (markers, channels, tracks, events, transport), and descriptions are detailed. However, the generic live_command overlaps with many specific wrappers (live_undo, live_transport, live_edit_events), and live_set_transport/live_set_loop/live_transport all manipulate transport state, creating some potential misselection.

Naming Consistency4/5

All names are snake_case with predictable live_ and song_ domain prefixes, which makes grouping clear. Within live_, however, some tools are noun-only getters (live_song, live_channels, live_meters) while others follow verb_noun (live_add_marker, live_set_channel), so the convention is mostly but not perfectly uniform.

Tool Count2/5

With 27 tools, the set is above the 15-tool sweet spot and crosses the 25-tool threshold that signals an overly heavy surface. Mergeable pairs like live_undo/live_redo, overlapping transport setters (live_transport, live_set_transport, live_set_loop), and a catch-all live_command inflate the count beyond what the domain strictly needs.

Completeness4/5

The surface covers live control (status, transport, markers, channels, tracks, events, takes, meters, save, undo/redo) plus offline song file inspection, giving solid lifecycle coverage. Gaps remain in track deletion/rename, plug-in parameter writing, and MIDI note editing, though live_command can bridge some of these.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers