osc-bridge — Claude Code MCP server: drive synths and DAWs over OSC
An MCP server that lets an agent talk to music gear: it sends OSC, the bridge turns that into MIDI and SysEx. Handy when you want a synth or DAW under chat control.
claude mcp add --transport http osc-bridge https://mcp.synthhub.roomi-fields.com/mcpWhat osc-bridge does
Every supported device is one JSON file — CC numbers, SysEx frame templates, optional parameter tables. Adding a synth takes roughly 30 lines of declarative JSON, with no recompile. The catalogue covers 988 devices from 215 vendors, including Ableton, Bitwig, Reaper, Sonic Pi, SuperCollider, Pure Data, TouchDesigner and VCV Rack.
The built-in MCP server hands the whole catalogue to the agent: it looks up devices, reads a model's OSC surface, and sends messages. Incoming MIDI — knob turns, SysEx replies, NRPN — gets decoded back into OSC. A single process can drive several synths at once, each under its own prefix such as /matrixbrute-1 and /matrixbrute-2.
Devices with checksums or odd scaling can use Lua 5.4 in a sandbox: 1 MiB and 10 ms caps, no os, io or loaders. osc-bridge lint flags every script. Running locally goes through npx -y @roomi-fields/osc-bridge mcp; the standalone bridge needs Node.js and npm install -g @roomi-fields/osc-bridge.
What it helps with
- control a hardware synth from an agent chat
- look up OSC addresses for a specific synth model
- wire Ableton or Bitwig into an OSC client
- keep two identical synths on separate prefixes
- add support for new gear without rebuilding the binary
Example prompts for the agent
- Find the Arturia MiniLab 3 in the catalogue and show its OSC surface
- Send 127, 0, 0 to
/minilab3/pad/0/color - Orchestrate two MatrixBrutes from
bridge.toml
How to install osc-bridge
1Platform CLI: remote server
claude mcp add --transport http osc-bridge https://mcp.synthhub.roomi-fields.com/mcp2Platform CLI
claude mcp add osc-bridge -- npx -y @roomi-fields/osc-bridge1Platform CLI: remote server
codex mcp add osc-bridge --url https://mcp.synthhub.roomi-fields.com/mcp2Platform CLI
codex mcp add osc-bridge -- npx -y @roomi-fields/osc-bridgeConfig file
{
"mcpServers": {
"osc-bridge": {
"url": "https://mcp.synthhub.roomi-fields.com/mcp"
}
}
}{
"mcpServers": {
"osc-bridge": {
"command": "npx",
"args": [
"-y",
"@roomi-fields/osc-bridge"
]
}
}
}Config file
{
"servers": {
"osc-bridge": {
"type": "http",
"url": "https://mcp.synthhub.roomi-fields.com/mcp"
}
}
}{
"servers": {
"osc-bridge": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@roomi-fields/osc-bridge"
]
}
}
}1Platform CLI: remote server
gemini mcp add -t http osc-bridge https://mcp.synthhub.roomi-fields.com/mcp2Platform CLI
gemini mcp add osc-bridge npx -y @roomi-fields/osc-bridgeStep by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about osc-bridge
How do I install osc-bridge in Claude Code?
For the hosted server: claude mcp add --transport http osc-bridge https://mcp.synthhub.roomi-fields.com/mcp. For the local one: claude mcp add osc-bridge -- npx -y @roomi-fields/osc-bridge.
What does osc-bridge do?
It gives each synth or DAW a named OSC surface and exposes it to an agent over MCP. The agent sends OSC, the bridge converts it to MIDI or SysEx and back.
What do I need to run the local server?
Node.js to launch it with npx, or a global install via npm install -g @roomi-fields/osc-bridge. In standalone mode osc-bridge run takes a device file and an output MIDI port number.