Orpheus
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OrpheusMake this sound Classical."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
π΅ Orpheus
An AI agent that doesn't just build music in REAPER β it listens to what you've made, tells you why it sounds the way it does, and reshapes it toward the sound you want.
"Why does this beat sound like Dominic Fike?" Β· "Make this sound Classical." Orpheus analyzes your project, recommends concrete changes with reasons, and β on your approval β applies them as real, editable tracks. One
Ctrl+Zundoes the whole thing.
π§ Status: early (pre-alpha), and moving. What's built + tested today: the full architecture, a documented analysis of the entire Reaper/DAW-MCP frontier, the music-theory core, and β as of M0 β the REAPER bridge: the AI can connect to a live REAPER and round-trip commands (proven by Python + Lua + cross-language integration tests). What's still stubs: the analysis and apply tools (M1βM3 on the roadmap). So it connects and is wired end-to-end, but doesn't compose or transform yet. The first feature release (
v0.1) ships the understand-and-explain half; the transform half follows inv0.3. Star/watch to follow along. β
Orpheus is an MCP server. It plugs into any MCP-compatible client (Claude Desktop, Cursor, Claude Code) and gives the model a set of tools to read, reason about, and edit a live REAPER session.
Why Orpheus exists
There is a thriving ecosystem of MCP servers that let an AI build music in a DAW by natural language. After reading the source of the leading projects (see docs/frontier-analysis.md), one gap is unmistakable:
The "build me a track" half is solved and even viral. The "look at my track, explain it, and improve it toward a reference" half is completely unclaimed.
No shipping server can look at your existing project, reason over both its composition and its sound, propose reasoned changes toward a target style, and apply them back as editable tracks. That loop β
ANALYZE β RECOMMEND (with reasons) β [you approve] β APPLY β VERIFYβ is Orpheus's entire reason to exist.
How it's different from what's out there
Capability | Control servers (shiehn, xDarkzx, Ableton-MCP) | Analysis servers (dschuler36) | Mix-match tools (Matchering, Ozone) | Neural "genre changers" | Orpheus |
Build a track from NL | β | β | β | β | β |
Read the current project's harmony | β | partial (MIDI-blind) | β | β | β |
Explain why it sounds like X | β | objective warnings only | β | β | β |
Recommend changes with reasons | β | β | β | β | β |
Human approval gate | β | n/a | β | β | β |
Apply changes as editable tracks | fire-and-forget | β | audio only | β (baked WAV) | β |
Match harmony / instrumentation, not just EQ | β | β | β | β (unexplained) | β |
Orpheus is the first to make a single CompositionSpec the contract for an analyze β recommend β apply loop over an existing project. The compositional dimensions (key, harmony, instrumentation) are where it's genuinely first; the mix/master dimension it assembles from solved parts (it vendors Matchering).
The north-star demo
You: (open an 8-bar beat in REAPER) "Make this sound Classical."
Orpheus: Analyzingβ¦ detected A minor (confidence 0.71), 120 BPM, a iβiv vamp,
drum-forward mix, low band +8 dB hotter than the classical reference.
Here's my plan (each change, and why):
1. 120 β ~70 BPM β classical phrasing breathes slower
2. transpose to A minor β keep your tonal center, lean modal
3. iβiv β iiβVβi with a secondary dominant β functional harmony is the
classical signature
4. add a Strings track (from your installed FX) β idiomatic voice
5. master-match tonal balance to the reference β cut ~3 dB at 120 Hz
Apply all 5? [you approve]
Orpheus: Done β wrapped in one undo block. Re-rendered and re-measured:
now within 1.2 dB of the reference across all three bands.Every line of "here's why" is a real diff between your project and a cached style fingerprint β not a vibe.
Architecture (one paragraph)
Orpheus is an external Python FastMCP server. It never calls REAPER's API directly. Instead it speaks to a single hardened file-based JSON bridge watched by a persistent Lua ReaScript loop inside REAPER β the same dependency-free transport the most comprehensive existing server ships, hardened with a heartbeat lock-file, atomic writes, static dispatch, and per-call note caps. The model talks in beats, never ticks; all PPQ/tempo math lives inside the bridge. Read-only analyze_* tools build a CompositionSpec of your current project; recommend_changes diffs it against a style fingerprint into a reason-annotated EditPlan; a separate, destructiveHint-flagged apply_changes executes the approved plan in one undo block. Full detail: docs/architecture.md.
Why not
python-reapyor OSC? REAPER's OSC can't pass arguments to custom actions, so it literally cannot create tracks or write MIDI notes.python-reapyis effectively unmaintained (documented REAPER 7 / Python 3.13 failures) and its distant API throttles to ~30β60 calls/sec. The in-REAPER Lua bridge sidesteps both. This is a deliberate divergence from the most-starred prior art β see the architecture doc for the full justification.
Install
Not yet published. These are the planned one-line install paths once
v0.1is on PyPI.
# 1. Run the server (no clone needed, once published)
uvx orpheus-mcp
# 2. Load the in-REAPER bridge script (one-time)
# Copies orpheus_bridge.lua into REAPER's Scripts folder and tells you how to run it.
orpheus-mcp install-bridgeThen add to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"orpheus": { "command": "uvx", "args": ["orpheus-mcp"] }
}
}Restart Claude Desktop, open a project in REAPER, run the Orpheus bridge action, and ask Claude to "check the Orpheus connection." Full per-OS steps: docs/installation.md.
Roadmap
Orpheus ships in honest milestones (full detail + the "why this order" in docs/roadmap.md):
Milestone | What works | Scale |
M0 | Hardened bridge + FastMCP scaffold + | foundation |
M1 | Build/modify correctly: tracks, transport, FX, PPQ-correct MIDI | construction core |
M2 | Understand a project: harmony, groove, audio character, theory scaffolding | β |
M3 | Transform: | β |
M4 | NL ergonomics + generate-from-scratch composers | polish |
M5 | Docs, PyPI, MCP Registry, the launch demo | ship |
M6 | Reach: MIDI recording, audioβreference ingest, groove transfer | post-launch |
v0.1 (weeks) explains; v0.3 (months) transforms. The full loop is a real build, scoped honestly.
Standing on shoulders β credits
Orpheus deliberately aggregates the best of a generous open-source ecosystem rather than reinventing it. Full per-project analysis with citations in docs/frontier-analysis.md.
shiehn/total-reaper-mcp β the file-JSON IPC bridge pattern + NL DSL resolvers + tool profiles.
xDarkzx/Reaper-MCP β bridge hardening (heartbeat, static dispatch, per-call caps).
ahujasid/ableton-mcp β beats-not-ticks note model, atomic-tool altitude, the demo-led launch playbook.
dschuler36/reaper-mcp-server β the typed project tree + four objective audio analyses (the seed of the recommend engine).
jarmstrong158/waveform-MCP β the
CompositionSpecIR, primitives-vs-composers split, mix-calibration table (patterns reimplemented under MIT, not copied β its code is GPL-3.0).bonfire-audio/reaper-mcp β chord/drum theory primitives + correct headless render recipes.
music21, asume21/music-theory-mcp β the theory + genre knowledge layer.
Matchering β the entire mix/master "sound like" layer.
AI TrackMate β the analyze β "LLM-readable music report" β reasoned-feedback pattern.
License
MIT Β© 2026 Mal0ss. Orpheus reimplements patterns from the projects above; it does not copy GPL-licensed source.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mal0ware/Orpheus'
If you have feedback or need assistance with the MCP directory API, please join our Discord server