MCP server bridging LLM agents to the REAPER DAW over a hardened Python-Lua file-IPC bridge: analyze, recommend with reasons, then apply edits to a live music project.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 48 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
add_fx_by_name
-
add_instrument
-
add_marker
-
analyze_audio_character
-
analyze_groove
-
analyze_harmony
-
apply_changes
-
apply_master_match
-
apply_mix_balance
-
arrange_song
-
build_project_spec
-
build_section
-
compose_section
-
constrain_to_key
-
create_bassline
-
create_chord_progression
-
create_drum_pattern
-
create_melody
-
create_midi_item
-
create_track
-
explain_style
-
get_connection_status
-
get_fx_params
-
get_genre_profile
-
get_project_info
-
get_scale_notes
-
get_track_midi
-
humanize_pass
-
insert_midi_notes
-
install_sound_pack
-
list_installed_fx
-
list_style_fingerprints
-
list_tracks
-
place_lyric_markers
-
play_stop_record
-
quantize_notes
-
recommend_changes
-
render_and_audit
-
render_project
-
render_stems
-
resolve_time
-
resolve_track
-
set_fx_param
-
set_tempo
-
set_time_signature
-
set_track_volume_pan
-
suggest_chord_progression
-
transpose_notes
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 65
filesystem 11
- fs (weak) mal0ware-Orpheus-f14c962/scripts/run_lua_tests.py :23
from pathlib import Path - fs mal0ware-Orpheus-f14c962/src/orpheus_mcp/analysis/audio.py :11
from pathlib import Path - fs mal0ware-Orpheus-f14c962/src/orpheus_mcp/analysis/fingerprint.py :14
from pathlib import Path - fs mal0ware-Orpheus-f14c962/src/orpheus_mcp/bridge/client.py :23
from pathlib import Path - fs mal0ware-Orpheus-f14c962/src/orpheus_mcp/drumkit.py :9
from pathlib import Path - fs mal0ware-Orpheus-f14c962/src/orpheus_mcp/install.py :13
import shutil - fs mal0ware-Orpheus-f14c962/src/orpheus_mcp/soundpack.py :9
from pathlib import Path - fs mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/instruments.py :53
from pathlib import Path - fs (weak) mal0ware-Orpheus-f14c962/tests/fake_reaper.py :20
from pathlib import Path - fs (weak) mal0ware-Orpheus-f14c962/tests/test_bridge_integration.py :9
import shutil - fs (weak) mal0ware-Orpheus-f14c962/tests/test_drumkit.py :14
with wave.open(path, "rb") as w:
shell / exec 1
- shell (weak) mal0ware-Orpheus-f14c962/tests/test_bridge_integration.py :10
import subprocess
network 1
- net mal0ware-Orpheus-f14c962/src/orpheus_mcp/soundpack.py :55
import urllib.request
tool registrations 48
- analyze_harmony mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/analyze.py :106
- analyze_groove mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/analyze.py :117
- analyze_audio_character mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/analyze.py :124
- build_project_spec mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/analyze.py :133
- apply_changes mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/apply.py :17
- apply_master_match mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/apply.py :28
- add_marker mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/arrange.py :96
- build_section mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/arrange.py :103
- arrange_song mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/arrange.py :114
- place_lyric_markers mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/arrange.py :139
- get_connection_status mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/bridge_status.py :13
- create_chord_progression mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/compose.py :46
- create_bassline mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/compose.py :65
- create_drum_pattern mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/compose.py :86
- humanize_pass mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/compose.py :99
- compose_section mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/compose.py :136
- create_melody mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/compose.py :204
- resolve_track mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/dsl.py :15
- resolve_time mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/dsl.py :21
- list_installed_fx mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/instruments.py :15
- add_instrument mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/instruments.py :21
- install_sound_pack mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/instruments.py :41
- insert_midi_notes mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/midi.py :20
- create_midi_item mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/midi.py :54
- quantize_notes mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/midi.py :69
- transpose_notes mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/midi.py :75
- apply_mix_balance mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/mix.py :13
- get_project_info mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/project.py :14
- list_tracks mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/project.py :27
- get_track_midi mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/project.py :43
- get_fx_params mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/project.py :65
- render_project mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/render.py :12
- render_stems mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/render.py :18
- render_and_audit mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/render.py :24
- list_style_fingerprints mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/style.py :21
- explain_style mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/style.py :27
- recommend_changes mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/style.py :43
- get_scale_notes mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/theory.py :22
- suggest_chord_progression mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/theory.py :34
- constrain_to_key mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/theory.py :61
- get_genre_profile mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/theory.py :75
- create_track mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/tracks.py :13
- set_track_volume_pan mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/tracks.py :33
- add_fx_by_name mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/tracks.py :39
- set_fx_param mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/tracks.py :50
- set_tempo mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/transport.py :17
- set_time_signature mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/transport.py :23
- play_stop_record mal0ware-Orpheus-f14c962/src/orpheus_mcp/tools/transport.py :34
declared dependencies 14
- fastmcp@>=2.3
- pydantic@>=2.7
- music21@>=9.1
- numpy@>=1.26
- soundfile@>=0.12
- pyloudnorm@>=0.1
- matchering@>=2.0
- librosa@>=0.10
- basic-pitch@>=0.3
- pytest@>=8.0
- pytest-asyncio@>=0.23
- ruff@>=0.5
- mypy@>=1.10
- lupa@>=2.0