bitwig-gemini-mcp

bitwig-gemini-mcp

Enables AI agents to control and monitor Bitwig Studio in real-time using natural language commands through MCP and OSC.

Category
Visit Server

README

Bitwig Studio Gemini Agent Bridge (MCP)

This project provides a direct integration bridge between Gemini (via Model Context Protocol - MCP) and Bitwig Studio (via Open Sound Control - OSC). It allows an AI agent or the Gemini client to manage, control, and monitor your Bitwig Studio projects in real-time.


šŸ—ļø Architecture

ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”             ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”             ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
│                          │  JSON-RPC   │  Node.js MCP Server     │  OSC / UDP  │  Bitwig JS Controller   │
│  Gemini Client / IDE     │ ──────────> │                         │ ──────────> │                         │
│                          │ <────────── │  (mcp-server.js)        │ <────────── │  (AntigravityController)│
ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜   (Stdio)   ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜ (Ports 9000/9001) ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
                                                                                              │
                                                                                              │ Bitwig Controller API
                                                                                              ā–¼
                                                                                  ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
                                                                                  │  Bitwig Studio DAW      │
                                                                                  ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜

The bridge consists of two main components:

  1. Node.js MCP Server: Listens to Gemini commands over standard input/output, maps them to OSC messages, and sends them to Bitwig over UDP. It also starts a UDP receiver to get real-time status updates (playback, track volume, solo, mute) from Bitwig.
  2. Bitwig Controller Script: A JavaScript extension loaded directly inside Bitwig Studio that opens a UDP socket (port 9000) to receive OSC commands, executes actions natively using the Bitwig Controller API, and pushes state changes back to Node.js (port 9001).

šŸ“‚ Project Structure

/home/bedri/Bitwig Studio/Projects/BitWig/
ā”œā”€ā”€ package.json                   # Project manifest (dependencies: node-osc)
ā”œā”€ā”€ package-lock.json              # Package lockfile
ā”œā”€ā”€ mcp-server.js                  # Node.js MCP server (Stdio JSON-RPC bridge)
ā”œā”€ā”€ start-mcp.sh                   # Executable launcher script
└── README.md                      # This documentation

/home/bedri/Bitwig Studio/Controller Scripts/
└── AntigravityController.control.js   # Extension script loaded by Bitwig Studio

šŸš€ Setup & Activation

The project has been automatically deployed, but here are the configuration references:

1. Gemini MCP Registration

The server is registered in your local Gemini Configuration file (~/.gemini/config/mcp_config.json) under the bitwig-agent key:

"bitwig-agent": {
  "command": "node",
  "args": [
    "/home/bedri/Bitwig Studio/Projects/BitWig/mcp-server.js"
  ]
}

2. Enable in Bitwig Studio

  1. Launch Bitwig Studio.
  2. Open the dashboard (click the Bitwig logo at the top center) and navigate to Settings > Controllers.
  3. Click Add Controller.
  4. Set Vendor to Antigravity and Model to Gemini Controller Bridge.
  5. The extension will automatically bind, starting the UDP servers on ports 9000 (listening) and 9001 (sending).

šŸ› ļø Supported Tools & Commands

Gemini is equipped with the following tools through this MCP server:

Tool Name Parameters Description
get_state None Retrieves transport play state, BPM, arranger loop status, and list of existing tracks.
play None Starts playback in Bitwig.
stop None Stops playback.
record None Toggles arranger recording.
toggle_loop None Toggles the arranger loop.
set_tempo bpm (number) Adjusts the project tempo (e.g. 128.5).
set_track_volume track_index (int), volume (float 0.0 - 1.0) Sets the volume level of a track.
set_track_pan track_index (int), pan (float 0.0 - 1.0) Adjusts the panning of a track (0.5 is center).
set_track_mute track_index (int), mute (bool) Mutes/unmutes a track.
set_track_solo track_index (int), solo (bool) Solos/unsolos a track.
set_track_arm track_index (int), arm (bool) Arms/disarms a track for recording.
launch_scene scene_index (int) Launches a scene by index.
undo None Executes native Undo.
redo None Executes native Redo.

šŸ’¬ Example Prompts

You can now command your DAW in natural language:

  • "Start playback in Bitwig"
  • "Set the project BPM to 124"
  • "Mute track 2 and solo track 0"
  • "Get the current tracks list and their volumes"
  • "Turn arranger loop on"
  • "Undo the last action"

šŸ” Troubleshooting

Flatpak Network Permissions

Because Bitwig is packaged as a Flatpak on your Linux system, it runs in a sandbox. If the OSC connection fails, grant Bitwig permission to share the host's loopback network interface by running the following command:

flatpak override --user --share=network com.bitwig.BitwigStudio

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured