Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_session_info | Get information about REAPER. Note: OSC is primarily for sending commands.
Use this to confirm connection is working. |
| set_tempo | Set the project tempo in BPM.
Args:
tempo: Tempo in beats per minute (20-999) |
| play | Start playback. |
| stop | Stop playback. |
| record | Start recording. |
| goto_position | Move cursor to a specific position.
Args:
seconds: Position in seconds |
| create_track | Create a new track.
Args:
name: Name for the new track |
| set_track_volume | Set track volume.
Args:
track_number: Track number (1-based, as shown in REAPER)
volume: Volume level (0.0 = -inf dB, 1.0 = 0 dB) |
| set_track_pan | Set track pan position.
Args:
track_number: Track number (1-based)
pan: Pan position (-1.0 = full left, 0.0 = center, 1.0 = full right) |
| mute_track | Mute or unmute a track.
Args:
track_number: Track number (1-based)
muted: True to mute, False to unmute |
| solo_track | Solo or unsolo a track.
Args:
track_number: Track number (1-based)
solo: True to solo, False to unsolo |
| arm_track | Arm or disarm a track for recording.
Args:
track_number: Track number (1-based)
armed: True to arm, False to disarm |
| select_track | Select a track.
Args:
track_number: Track number (1-based) |
| create_midi_item | Create a MIDI item on a track.
Args:
track_number: Track number (1-based)
position: Start position in beats
length: Length in beats (default: 4 = 1 bar in 4/4) |
| add_notes | Add MIDI notes to an existing MIDI item.
Args:
track_number: Track number (1-based)
item_index: Index of the MIDI item (0-based)
notes: List of note dictionaries with:
- pitch: MIDI note number (0-127, middle C = 60)
- start: Start position in beats (relative to item)
- duration: Duration in beats
- velocity: Velocity (1-127, default 100) |
| execute_lua | Execute arbitrary Lua code in REAPER.
This gives full control over REAPER via ReaScript.
The code runs in REAPER's Lua environment with access to the reaper.* API.
Args:
code: Lua code to execute
Example:
execute_lua("reaper.ShowMessageBox('Hello from MCP!', 'Test', 0)") |
| trigger_action | Trigger a REAPER action by name.
Available actions:
- Transport: play, stop, pause, record, rewind, forward
- Project: save, save_as, new_project, undo, redo
- Tracks: insert_track, delete_track, duplicate_track
- View: zoom_fit, toggle_mixer
Args:
action_name: Name of the action to trigger |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |