openDAW MCP
The openDAW MCP server provides AI agents with programmatic, headless control over a browser-based DAW, enabling end-to-end music production: creating, editing, mixing, and rendering projects. Key capabilities include:
Project & Transport: Play/stop, tempo, time signature, loop, markers, groove, and tuning.
Tracks & Instruments: Create/delete audio, MIDI, synth, and instrument tracks; rename, replace instruments, manage drum pads.
Regions & Notes: Import/place audio and MIDI regions; create, edit, and transform notes; quantize, transpose, invert, reverse; copy, move, split, merge regions.
Effects & Mixing: Add/remove/reorder audio (compressor, reverb, delay, etc.) and MIDI effects; control parameters; volume, pan, mute, solo; aux sends and buses with routing.
Advanced Orchestration: High-level tools for drum patterns, chord progressions, genre tracks, canons, fugues, variations, and mastering chains.
Audio Processing: Fades, gain, stem separation, format conversion, loudness measurement, and LUFS targeting.
System & Integration: Download external audio, agent skills for specific workflows, framework support (LangChain, AutoGen, CrewAI), and project info/debugging.
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., "@openDAW MCPCreate a drum pattern with kick, snare, and hihat, then render to WAV."
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.
opendaw-mcp
MCP server for agent-native control of openDAW — a browser-based digital audio workstation. Exposes 550+ tools (tracks, notes, effects, mixing, rendering) over the Model Context Protocol for AI agents (Claude, GPT, etc.).
AI agent ── MCP (stdio/SSE) ──▶ Python server ── Playwright ──▶ headless Chromium ──▶ openDAWThe server drives a real openDAW instance in headless Chromium via page.evaluate(). All project state lives in the browser's V8 context. Chromium starts lazily on the first tool call.
Quick start
Requirements: Python 3.10+, Node.js 20+ (only to build the openDAW host once), Chromium via Playwright.
pip install -r requirements.txt
playwright install chromium
# Build the openDAW headless host once — it is a separate, small Vite app
# (NOT the openDAW monorepo, which has no headless-daw directory):
git clone --depth 1 https://github.com/andremichelle/openDAW-headless ../headless-daw
cd ../headless-daw
# its vite.config.ts readFileSync()s these certs at config load, even for `vite build`
openssl req -x509 -newkey rsa:2048 -keyout localhost-key.pem -out localhost.pem -days 365 -nodes -subj "/CN=localhost"
npm install && npm run build
cd ..
# Serve the built host statically on http://localhost:5174 (no Node needed at runtime):
OPENDAW_STATIC_DIR=../headless-daw/dist python scripts/serve_static.py &
python server.py # stdio transportClient config example:
{
"mcpServers": {
"opendaw": {
"command": "python",
"args": ["server.py"],
"env": {
"OPENDAW_URL": "http://localhost:5174",
"OPENDAW_MCP_MODE": "lite"
}
}
}
}Related MCP server: reaper-mcp
Lite mode — recommended for weak machines
Full mode registers 557 tools; every tool schema costs tokens on each agent turn. Lite mode registers a curated set of 39 essential tools — about 92% less schema payload and a faster startup:
Note: Lite mode is now the default. You only need to set
OPENDAW_MCP_MODE=fullif you want all tools.
OPENDAW_MCP_MODE=lite python server.pyLite covers: project state, tracks, instruments, notes, regions, effects, mixing, BPM, markers, scriptable devices, render/export, and core composition helpers (drum pattern, bassline, melody, chord progression, mix preset).
Low-memory tuning
Chromium is launched with low-RAM flags by default: --disable-dev-shm-usage (safe on Docker's 64 MB /dev/shm), --disable-gpu, --mute-audio, a V8 heap cap, and no background networking. Offline rendering is unaffected.
In Docker, OPENDAW_SERVE_MODE=static (the default in the image) replaces the Vite dev server with a zero-dependency Python static server (scripts/serve_static.py, ~10 MB RAM instead of ~300–500 MB for Node + Vite). The image builds the headless host at build time, so no Node.js is needed at runtime.
Variable | Default | Description |
|
| V8 heap cap for the DAW page ( |
| — | Extra Chromium args, space-separated |
| — | Use system Chromium instead of the bundled one |
Environment variables
Note: As of this update,
OPENDAW_MCP_MODE=liteis now the default mode for better token efficiency. UseOPENDAW_MCP_MODE=fullto enable all 500+ tools.
Variable | Default | Description |
|
| URL of the served openDAW host |
|
| Path to headless DAW host directory |
|
| Rendered audio output directory |
|
|
|
|
|
|
|
| Directory served in static mode |
|
|
|
|
| SSE bind address |
| — | Prepended to PATH for Vite lookup (vite mode only) |
Docker
docker build -t opendaw-mcp .
docker run --rm -p 8080:8080 opendaw-mcpThe image builds the openDAW headless host (openDAW-headless) from source, serves its static build via scripts/serve_static.py, and runs the server in SSE mode on :8080. There is no Node.js in the runtime image; give the container at least 1 GB RAM for comfortable rendering.
Development
pip install -e ".[dev]"
python -m pytest tests/ -q
ruff check server.py opendaw_mcpSee ARCHITECTURE.md for internals and TOOL_CATALOG.md for the full tool list.
License
Apache-2.0 — see LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityBmaintenanceA Model Context Protocol server that enables AI agents to create fully mixed and mastered tracks in REAPER DAW, supporting project management, MIDI composition, audio recording, and mixing automation.58125MIT
- AlicenseNot gradedqualityAmaintenanceA comprehensive MCP server that enables AI assistants to control REAPER DAW for mixing, mastering, MIDI composition, and full music production workflows with 130 tools.41MIT
- FlicenseBqualityDmaintenanceMCP server for controlling Ableton Live, enabling AI assistants to interact with Live sessions through tools for track/clip/scene management, playback control, and device parameter adjustments.48
- AlicenseBqualityBmaintenanceThis MCP server enables AI assistants to control a live REAPER DAW instance, including transport, tracks, FX, MIDI, media, markers, rendering, and project state, with an escape hatch for arbitrary ReaScript commands.401MIT
Related MCP Connectors
MCP server for Producer/Riffusion AI music generation
Create, co-edit, analyze, publish, and export collaborative step-sequencer sessions through MCP.
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/ameobius-ai/opendaw-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server