Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
STUDIO_ONE_SONGSNoColon-separated list of song folders. Default: ~/Documents/Studio One/Songs.~/Documents/Studio One/Songs
STUDIO_ONE_PROFILENoStudio Pro/Studio One user profile folder. Defaults to the newest …/PreSonus/Studio One * user folder.
STUDIO_ONE_MCP_HOMENoData folder containing the mailbox. Default: ~/Library/Application Support/studio-one-mcp.~/Library/Application Support/studio-one-mcp
STUDIO_ONE_MCP_MIDI_PORTNoMIDI port used for the bridge. Defaults to the first MIDI output whose name contains 'IDAC'; otherwise the server’s own MIDI port.
STUDIO_ONE_MCP_VIRTUAL_PORTNoName of the virtual MIDI port the server publishes on macOS.studio-one-mcp

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
song_listB

List Studio One songs on disk (newest first), from ~/Documents/Studio One/Songs or $STUDIO_ONE_SONGS.

song_readA

Read a Studio One song from its .song file: tempo, time signature, markers, arranger sections, tracks with takes/clips (bar, beat and seconds) and instrument notes, mixer channels with volume/pan/mute/solo, automation mode and plug-in inserts (with each plug-in's saved settings in its own units, for PreSonus plug-ins), automation envelopes that have points, the song notes and channel notes, and media files. Reflects the last save, not unsaved edits. Notes, settings and envelope points are in detail=full.

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.

song_diffA

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

live_statusA

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

live_channelsA

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

live_set_channelA

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

live_set_automationA

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

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.

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.

live_notesA

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

live_edit_notesA

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

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.

live_transportC

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

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.

live_markersA

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

live_add_markerA

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

live_rename_markerA

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

live_delete_markerB

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

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.

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.

live_takesA

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

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.

live_undoA

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

live_redoC

Redo edit(s) in the running Studio One.

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.

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.

live_add_trackA

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

audio_captureA

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

audio_analyzeA

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

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

live_insertsB

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

live_pluginsB

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

live_add_pluginA

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

live_add_sendA

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

live_add_instrument_trackA

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

live_bypass_insertA

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

live_sendsC

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

live_set_sendB

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

live_plugin_paramsA

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

live_set_plugin_paramA

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

live_recordA

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

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.

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.

live_tempoA

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

live_bounceA

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

live_mix_snapshotA

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

live_plugin_snapshotB

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

live_record_setupA

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

live_add_busA

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

live_track_editA

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

live_arrangerA

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

live_macrosA

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

live_run_macroA

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

live_eventsA

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

live_time_signatureB

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

live_write_automationA

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

live_changesA

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

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.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 59 tools

Disambiguation3/5

Most tools target distinct Studio One resources and actions, but there is meaningful overlap: live_command duplicates many specialized commands, live_events/live_edit_events/live_track_edit all modify events, and live_tracks/live_events/live_notes are easy to confuse for inspection. The detailed descriptions help, but the large surface still creates real selection ambiguity.

Naming Consistency4/5

The naming is mostly consistent snake_case with recognizable prefixes: live_ for the running Studio One, song_ for saved song files, and audio_ for capture/analysis. Some tools use noun-style getter names while others use verb_style action names, but the pattern remains readable and predictable overall.

Tool Count2/5

At 59 tools, the surface is very heavy for an MCP server and well beyond the typical 3-15 range. The DAW domain is broad, but many operations could be consolidated, especially given the generic live_command escape hatch and several overlapping inspection/edit tools.

Completeness4/5

The surface covers a wide range of Studio One workflows: transport, tracks, events, notes, mixer channels, inserts, sends, markers, arranger sections, automation, recording, undo/redo, snapshots, and audio analysis. Minor gaps remain, such as no explicit song creation/open/close and no mixdown or stem export, but most workflows are reachable.

Maintenance

ActivityMaintained
ResponsivenessSyncing