Bitwig MCP Server
by jxstanford
The Bitwig MCP Server is a Model Context Protocol (MCP) server for Bitwig Studio, enabling AI-powered control of your DAW. It allows Claude to interact with Bitwig Studio for tasks like transport control, mixer adjustments, and device parameter manipulation.
Last updated: N/A
Bitwig MCP Server
Release Build status codecov License
A Model Context Protocol (MCP) server for Bitwig Studio that allows Claude to control your DAW.
Warning! This is a work in progress. Documentation and implementation may be out of sync, and not all functionality may work as expected.
Features
- AI-Powered Music Production: Control Bitwig Studio with Claude via MCP
- Transport Controls: Play, stop, and set tempo
- Mixer Controls: Adjust volume, pan, and mute/unmute tracks
- Device Controls: Manipulate device parameters
- Project Information: Access track and device information
- Templates and Prompts: Pre-configured workflows for common tasks
Installation
Prerequisites
- Python 3.10+
- Bitwig Studio 5.2+
- Driven by Moss 5.2+
- Claude Desktop app with MCP support
Install from GitHub
# Clone the repository
git clone https://github.com/jxstanford/bitwig-mcp-server.git
cd bitwig-mcp-server
# Install dependencies
uv sync
Usage
1. Configure Bitwig Studio
- If necessary, add a virtual MIDI device for OSC
- Follow Driven by Moss installation instructions for Bitwig 5.2+
- Open or restart Bitwig Studio
- Go to Settings > Controllers
- Click "Add Controller" and select "Open Sound Control" and "OSC"
- Configure the receive port (default: 8000) and send port (default: 9000)
- Enable the controller
2. Run the Bitwig MCP Server
# Run the server with default settings
python -m bitwig_mcp_server
# Or run with custom settings
python -m bitwig_mcp_server --host 127.0.0.1 --send-port 8000 --receive-port 9000 --transport stdio --debug
3. Add to Claude Desktop
# Install the server in Claude Desktop
mcp install bitwig_mcp_server/__main__.py
Then open Claude Desktop and select the Bitwig MCP Server from the MCP Servers dropdown.
Available Tools
The Bitwig MCP Server provides the following tools:
Transport Controls
- play: Toggle play/pause state or set it to a specific state
- stop: Stop playback
- set_tempo: Set the tempo in beats per minute
Track Controls
- set_track_volume: Set track volume (0-128)
- set_track_pan: Set track pan position (0-128)
- set_track_mute: Mute, unmute, or toggle mute state for a track
Device Controls
- set_device_parameter: Set a device parameter value (0-128)
Information
- get_project_info: Get information about the current Bitwig project
- get_tracks_info: Get information about all tracks in the project
- get_track_info: Get information about a specific track
- get_device_parameters: Get information about the selected device parameters
Available Resources
- bitwig://project/info: Project information
- bitwig://transport: Transport state
- bitwig://tracks: All tracks in the project
- bitwig://track/{index}: Specific track information
- bitwig://devices: Active devices
- bitwig://device/parameters: Parameters for the selected device
Example Prompts
- setup_mixing_session: Set up a new mixing session with default settings
- create_track_template: Create a track template with specific devices and settings
- optimize_track_settings: Get recommendations for optimizing track settings
Configuration
The server can be configured through:
- Environment variables or
.env
file - Command line arguments
- Settings in
bitwig_mcp_server/settings.py
Command Line Arguments
python -m bitwig_mcp_server --help
Development
Environment Setup
# Install dev dependencies
uv sync
# Install pre-commit hooks
uv run pre-commit install
Running Tests
# Run unit tests (no Bitwig required)
make test
# Run all tests including Bitwig integration tests
# (requires Bitwig Studio running with OSC enabled)
make test-all
Code Quality
# Run code quality checks
make check
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgements
Thanks to Jürgen Moßgraber for publishing the Driven by Moss package. This package leverages that package to interact with Bitwig.