Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
REAPER_MCP_DEBUGNoSet to 1 to enable Lua request log
REAPER_MCP_IPC_DIRNoMailbox override (must match on both sides)
REAPER_MCP_TIMEOUTNoDefault 10s10s

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
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
statusA

Check the Lua bridge and return project tempo, play state, and tracks. Call first.

transportC

Playback control. action: play, stop, pause, record, toggle_repeat, goto_start.

trackB

Track operations. action: list | add | delete | update | bus. update uses name, volume_db, pan (-1..1), mute, solo. bus creates a submix named name and routes source_indices to it.

midiB

MIDI on a track item. Times are absolute project beats. action: create_item | add | get | replace | update | delete. replace rewrites the whole take in one undo step; add only appends.

fxB

Track FX. action: list | add | params | set | delete | bypass | move | preset. track_index -1 is the master. set value is 0..1 (REAPER normalized).

sendC

Track sends. action: list | add | delete | update. track_index is the source (-1 master). dest_index is the destination track.

itemB

Media items on a track. action: list | update. fade_in / fade_out are seconds (REAPER native). position/length are beats.

envelopeB

Track envelopes. action: list | get | set. name is REAPER envelope name (Volume, Pan, Mute, ...). set replaces all points. value is native envelope value (Volume 1.0 = 0 dB).

projectC

Project-level edits. action: tempo | time_signature | time_selection | marker.

renderC

Render. No undo. Long timeout. bounds: project | time_selection | custom | items. stems=true renders selected tracks (pass track_indices to select).

actionB

Run a REAPER Main_OnCommand by numeric command id.

reaper_callB

Call any ReaScript function by name. Pointers come back as {"__handle":"hN"} and can be passed back in. Example: func=CountTracks args=[0].

run_luaA

Run a Lua snippet inside REAPER (reaper in scope). Use return to send a value. Best for multi-step work that would otherwise be many round-trips.

batchA

Many operations in one IPC hop. Each call is {func, args} or {func, code} or {func, arguments} for a grouped tool name (track/midi/fx/...). One failure does not abort the rest. Handles from earlier calls work later.

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 14 tools

Disambiguation4/5

Tools are mostly distinct, but reaper_call and run_lua both offer arbitrary scripting access, and action overlaps with reaper_call for command execution. Descriptions help, but an agent could misselect between these scripting tools.

Naming Consistency5/5

All tool names follow a consistent style: lowercase, single words or underscore-separated compounds (reaper_call, run_lua). No mixed conventions or unpredictable verbs.

Tool Count5/5

14 tools is well-scoped for a DAW control server, covering core operations (status, transport, track, midi, fx, send, render) and advanced scripting without overwhelming.

Completeness5/5

The set provides comprehensive coverage of project lifecycle and editing, with scripting tools (reaper_call, run_lua, batch) filling any gaps. Missing specific audio editing but scriptable.

Maintenance

ActivityMaintained
ResponsivenessNo issues