Skip to main content

MCP server for REAPER DAW: project, tracks, MIDI, FX, samples.

Project description

REAPER MCP Server

A Model Context Protocol (MCP) server that provides programmatic control over REAPER DAW through a clean, tool-based interface. Built with FastMCP and python-reapy, this server enables AI assistants and automation tools to interact with REAPER projects.

Features

🎵 Project Management

  • Get project details (BPM, track count, track names)
  • Initialize new projects with optional track clearing
  • Get project length in seconds
  • Save the current project
  • Get playback state (playing, paused, stopped, recording)
  • Get current play position in seconds
  • Get current playback rate

🎚️ Track Operations

  • Create tracks at specific indices
  • Delete tracks by index
  • List all tracks with names
  • Get track name by index
  • Get track item count by index
  • Set track color by index (RGB values)

⏱️ Tempo Control

  • Get current project BPM
  • Set project BPM (1-960 range)

🎹 MIDI Generation & Import

  • Add MIDI notes to tracks as new MIDI items
  • Generate step-sequenced MIDI patterns
  • Create MIDI files with pretty_midi
  • Import MIDI files (base64-encoded) onto tracks

🎛️ FX & VST Plugins

  • List available VST plugins from REAPER configuration
  • Add FX/VST plugins to tracks
  • List FX on specific tracks
  • Get/set FX parameter values (normalized 0-1)

🎧 Audio Sample Management

  • Configure and manage sample directories (persistent)
  • Search for audio samples across directories (WAV, AIFF, FLAC, MP3, OGG)
  • Import audio samples to tracks
  • Time-stretch samples via playback rate control

Prerequisites

  • REAPER installed with ReaScript enabled
  • python-reapy bridge configured for out-of-process control
  • Python 3.11+

Note: The server must be able to communicate with REAPER through the reapy bridge. Ensure REAPER is running and reapy is properly configured before starting the server.

Installation

Using uv (Recommended)

# Install with uv
uv pip install reaper-mcp

# Or run directly with uv
uv tool install reaper-mcp

Using pip

pip install reaper-mcp

Usage

Run with Default Settings (stdio transport)

python -m reaper_mcp

Run with MCP Proxy (stdio)

uv tool run mcpo --port 8000 -- uv run reaper_mcp

Run with MCP Proxy (HTTP/SSE)

uv tool run mcpo --port 8000 -- uv run python -m reaper_mcp --transport sse --port 8001

Command-Line Options

python -m reaper_mcp [OPTIONS]

Available Options:

  • --transport {stdio,sse,http,ws,websocket} - Transport protocol (default: stdio)
  • --host HOST - Bind host for network transports (default: 127.0.0.1)
  • --port PORT - Bind port for network transports (default: 8000)
  • --path PATH - URL path for HTTP/SSE/WebSocket transports
  • --allow-origin ORIGIN - Allowed CORS origin (can be specified multiple times)

Examples

WebSocket server on port 9000:

python -m reaper_mcp --transport ws --port 9000

SSE server with custom host:

python -m reaper_mcp --transport sse --host 0.0.0.0 --port 8080

stdio mode (for Claude Desktop or other MCP clients):

python -m reaper_mcp

Integration with MCP Clients

Claude Desktop Configuration

Add to your Claude Desktop MCP settings:

{
  "mcpServers": {
    "reaper": {
      "command": "python",
      "args": ["-m", "reaper_mcp"]
    }
  }
}

Or with uv:

{
  "mcpServers": {
    "reaper": {
      "command": "uv",
      "args": ["run", "python", "-m", "reaper_mcp"]
    }
  }
}

Development

Project Structure

reaper_mcp/
├── __main__.py         # Entry point and CLI
├── mcp_core.py         # FastMCP server initialization
├── project.py          # Project management tools
├── tracks.py           # Track operations
├── tempo.py            # Tempo/BPM control
├── midi.py             # MIDI generation and import
├── fx.py               # FX/VST plugin management
├── samples.py          # Audio sample management
└── util.py             # Utility functions

Dependencies

  • fastmcp>=2.12.5 - MCP server framework
  • python-reapy>=0.10.0 - REAPER Python API
  • pretty-midi>=0.2.10 - MIDI file generation

Notes

  • Tools are designed to be small and focused - prefer calling multiple tools over complex combined actions
  • File paths must be accessible from the REAPER host machine
  • Some operations depend on REAPER configuration, OS, and installed plugins
  • Tools return helpful error messages when operations are unavailable

License

See project repository for license information.

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reaper_mcp-1.1.0.tar.gz (87.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reaper_mcp-1.1.0-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file reaper_mcp-1.1.0.tar.gz.

File metadata

  • Download URL: reaper_mcp-1.1.0.tar.gz
  • Upload date:
  • Size: 87.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for reaper_mcp-1.1.0.tar.gz
Algorithm Hash digest
SHA256 b5c2ee0ebebaf70fe8454bdeef1047e1b826b4d529acc28be6cd6ea166c6160d
MD5 c6f996e00ced8e2ce56844fc3444bb6e
BLAKE2b-256 763c1bb21894cb7fc79354b4c589605eaf2c5f4efd0de92e832a5c82248fc72c

See more details on using hashes here.

Provenance

The following attestation bundles were made for reaper_mcp-1.1.0.tar.gz:

Publisher: publish.yml on nbdy/reaper-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file reaper_mcp-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: reaper_mcp-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for reaper_mcp-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 13199e2ad4cb4156fda5d4832e41d85ee0aab4f83c5ff897c1f743deb135c3ff
MD5 25b91d472c9ec44310f33247998ede89
BLAKE2b-256 79baa43e9fcd8ee2d486f9762a22e46012d0261176d3789847d5853b7c6830bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for reaper_mcp-1.1.0-py3-none-any.whl:

Publisher: publish.yml on nbdy/reaper-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page