Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| REAPER_BRIDGE_HOST | No | Bridge host for the REAPER connection | 127.0.0.1 |
| REAPER_BRIDGE_PORT | No | Bridge port for the REAPER connection | 9001 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ping | Check that the bridge is reachable. Returns bridge_version and reaper_version. |
| get_project_info | Return metadata about the currently open REAPER project. |
| get_project_parameters | Return loop range, cursor position, and loop-enabled state. |
| list_tracks | List every track in the project with volume, pan, mute, solo, arm state. |
| get_track | Get detailed info for a single track by 0-based index. |
| create_track | Insert a new track.
|
| delete_track | Delete a track by 0-based index. This is permanent and undoable via REAPER's undo system. |
| set_track_properties | Modify one or more properties of a track.
|
| move_media_item | Move a media item to a new timeline position (seconds). |
| resize_media_item | Change the length of a media item (seconds). |
| delete_media_item | Delete a media item from a track. |
| get_item_properties | Return properties of a media item: position, length, mute, lock, take name, playrate, and pitch. |
| duplicate_track | Duplicate a track, inserting the copy immediately after the original. |
| duplicate_item | Duplicate a media item on its track. |
| insert_midi_event | Insert a MIDI CC, pitch-bend, or program-change event into a MIDI item.
|
| delete_midi_note | Delete a specific MIDI note from a MIDI item by its 0-based note index. |
| set_midi_note | Modify an existing MIDI note. Only the supplied fields are changed.
|
| get_midi_notes | Read all MIDI notes from a media item's active MIDI take. Returns a list of notes with start_ppq, end_ppq, pitch, velocity, channel. |
| get_track_items | List all media items on a track with their position, length, and take info. |
| set_midi_notes | Batch-edit multiple MIDI notes in one call. More efficient than calling set_midi_note() repeatedly. Each entry in 'notes' must have 'note_index' and any subset of: pitch, velocity, start_ppq, end_ppq, channel, selected, muted. Omitted fields keep their current values. |
| nudge_midi_notes | Humanize all MIDI notes in an item with random timing and/or velocity offsets.
|
| create_midi_item | Create a MIDI item on a track and optionally pre-populate it with notes.
|
| insert_audio_file | Insert an audio file onto a track at the given position (seconds). |
| transport | Control REAPER's transport. action: play | stop | pause | record | goto_start | goto_position position: required when action == goto_position (seconds) |
| add_fx | Add an FX plugin to a track.
|
| list_fx | List all FX plugins on a track (name, fx_index, n_params, enabled). Use track_index=-1 for the master track. |
| get_fx_params | Return all parameters for an FX plugin on a track. Each entry includes: param_index, name, value, min_value, max_value, normalized. |
| set_fx_param | Set an FX parameter by normalized value (0.0–1.0). |
| set_fx_enabled | Enable or bypass (disable) a specific FX plugin on a track. |
| remove_fx | Remove an FX plugin from a track's FX chain. |
| set_fx_preset | Load a named preset for an FX plugin on a track. preset_name can be:
|
| list_fx_presets | List available presets for an FX already on a track. Returns two lists:
|
| get_tempo | Return the current BPM and time signature. |
| set_tempo | Set the project tempo (and optionally time signature).
|
| set_project_parameter | Set a named project parameter. Supported parameters: loop_start, loop_end, loop_enabled, cursor_position, playrate |
| save_project | Save the current REAPER project to disk. |
| render_time_selection | Render a time range to an audio file using REAPER's render pipeline.
|
| analyze_track_loudness | Measure the loudness of a single track over a time range using a non-destructive dry-run render (action 42439). No items, tracks, or files are created — project state is completely unchanged after the call. Returns:
|
| analyze_master_loudness | Measure the loudness of the full master mix over a time range using a non-destructive dry-run render (action 42441). No tracks or files are created. Returns:
|
| normalize_track | Normalize a track to a target integrated loudness by measuring its current LUFS via a non-destructive dry-run render, then adjusting the track fader.
|
| undo | Trigger REAPER's undo. Returns the name of the action that was undone. |
| add_marker | Add a marker or region to the project.
|
| list_markers | List all markers and regions in the project. |
| delete_marker | Delete a marker or region by its 0-based enumeration index (from list_markers). |
| open_project | Open a REAPER project file (.rpp) by its absolute path. |
| new_project | Create a new blank REAPER project (equivalent to File > New Project). |
| list_available_fx | List installed FX plugins (VST, VST3, CLAP, and JS/JSFX).
|
| create_track_send | Create a send from one track to another. Returns the new send index. |
| duplicate_time_range | Copy all items overlapping [start_time, end_time) and paste them immediately after end_time, repeating repeat_count times. Useful for extending song form (repeating a chorus, creating an outro).
|
| remove_track_send | Remove a send from a track by its 0-based send index. |
| set_track_send | Set the volume and/or pan of a track send.
|
| set_track_input | Set the recording input for a track.
|
| set_input_monitoring | Set input monitoring mode for a track.
|
| get_envelope_points | Read all automation envelope points from a track envelope. Identify the envelope by name (e.g. 'Volume', 'Pan', 'Mute') or by 0-based envelope_index. Using envelope_name is preferred and works even if the envelope is not yet visible/armed in the REAPER UI. Returns envelope name and list of points with time, value, shape, tension. |
| insert_envelope_point | Insert a point into an automation envelope. Identify the envelope by name (e.g. 'Volume', 'Pan', 'Mute') or by 0-based envelope_index. Using envelope_name is preferred and works even if the envelope is not yet visible/armed in the REAPER UI.
|
| insert_envelope_point_at_beat | Insert an automation envelope point aligned to the project beat grid. Identify the envelope by name (e.g. 'Volume', 'Pan') or by 0-based envelope_index.
|
| clear_envelope_points | Delete all automation envelope points in the given time range (default: entire timeline). Identify the envelope by name (e.g. 'Volume', 'Pan') or by 0-based envelope_index. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |