OSC MCP Server
Click on "Deploy 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., "@OSC MCP Server set channel 1 fader to 75%"
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.
OSC MCP Server
A Model Context Protocol (MCP) server for controlling digital mixers (Behringer X32, Midas M32, etc.) via OSC (Open Sound Control). This allows you to control your mixer through chat commands in Claude Desktop.
Features
ποΈ Fader Control: Set and get fader levels for all channels, buses, aux, matrix, and main LR
π Mute/Unmute: Control muting for channels, buses, aux, matrix, and main mix
ποΈ Pan Control: Adjust stereo positioning for channels, buses, aux, and main mix
π΅ EQ Control: Full 4-band parametric EQ with frequency, Q, gain, and on/off control
ποΈ Dynamics: Complete gate and compressor control with attack, release, threshold, and ratio
π Aux Sends: Control sends from channels to mix buses and aux outputs
πΈ Scenes: Recall, save, and manage scenes with custom names
ποΈ Bus Control: Full control over mix buses (1-16) with faders, pan, mute, and naming
π Aux Control: Control aux outputs (1-6) with faders, pan, and mute
ποΈ Matrix Control: Control matrix outputs (1-6) with faders and mute
π΅ Effects: Control effects (1-8) with on/off, mix, and parameter adjustment
π Routing: Configure channel input sources
π Naming: Set and get names for channels and buses
π§ Custom Commands: Send any OSC command to the mixer
π Status Monitoring: Get mixer status and information
Related MCP server: X32/M32 MCP Server
Installation
Prerequisites
Node.js 18 or higher
A digital mixer (Behringer X32, Midas M32, etc.) on your network
Claude Desktop app
Setup
Clone or navigate to this repository:
cd path/to/osc-mcpInstall dependencies:
npm installBuild the project:
npm run buildConfiguration
Environment Variables
You can configure the OSC connection using environment variables:
OSC_HOST: IP address of your mixer (default:192.168.1.70)OSC_PORT: OSC port of your mixer (default:10023)
Claude Desktop Configuration
Add the following to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"osc": {
"command": "node",
"args": [
"/path/to/osc-mcp/dist/index.js"
],
"env": {
"OSC_HOST": "192.168.1.70",
"OSC_PORT": "10023"
}
}
}
}Important: Replace the IP address 192.168.1.70 with your mixer's actual IP address!
Finding Your Mixer IP Address
On your mixer, press the
SETUPbuttonNavigate to
NetworksettingsNote the IP address shown
Usage Examples
Once configured in Claude Desktop, you can use natural language to control your mixer:
Basic Fader Control
"Set channel 1 fader to 75%"
"What's the current level of channel 5?"
"Set the main fader to 80%"
"Set bus 3 fader to 60%"
"What's the aux 2 fader level?"
Muting
"Mute channel 3"
"Unmute channel 7"
"Mute bus 5"
"Unmute the main mix"
Pan Control
"Pan channel 2 to the left"
"Center the pan on channel 4"
"Pan channel 8 to the right"
"Set bus 2 pan to center"
EQ
"Boost channel 1 EQ band 2 by 3dB"
"Cut channel 5 EQ band 4 by 6dB"
"Set channel 3 EQ band 1 frequency to 100Hz"
"Set channel 2 EQ band 3 Q to 2.5"
"Enable EQ on channel 1"
Dynamics
"Set channel 1 gate threshold to -40dB"
"Set channel 3 compressor with -20dB threshold and 4:1 ratio"
"Set channel 2 compressor attack to 50%"
"Set channel 4 compressor release to 30%"
"Enable gate on channel 5"
Aux Sends
"Send channel 1 to bus 3 at 50%"
"What's the send level from channel 2 to bus 5?"
"Send channel 4 to aux 2 at 75%"
Bus Control
"Set bus 1 fader to 70%"
"Mute bus 3"
"Pan bus 2 to the right"
"Name bus 4 'Monitor'"
Effects
"Enable effect 1"
"Set effect 2 mix to 50%"
"Set effect 3 parameter 5 to 75%"
Routing
"Set channel 1 source to input 5"
"What's the source for channel 3?"
Scenes
"Recall scene 5"
"Save the current mix as scene 10"
"Save scene 15 as 'Concert Setup'"
"What's the name of scene 3?"
Channel Management
"Name channel 1 'Lead Vocal'"
"What's the name of channel 5?"
"Set channel 2 color to 3"
Custom Commands
"Send OSC command /ch/01/config/name with value 'Vocals'"
"Send OSC command /ch/05/mix/fader with value 0.75"
"Send OSC command /bus/03/mix/on with value 1"
"Send OSC command /fx/01/on with value 1"
Available Tools
The MCP server exposes 50+ tools for comprehensive mixer control:
Channel Controls (9 tools)
osc_set_fader - Set channel fader level (0.0-1.0)
osc_get_fader - Get current channel fader level
osc_mute_channel - Mute/unmute a channel
osc_get_mute - Get mute status of a channel
osc_set_pan - Set channel pan (-1.0 to 1.0)
osc_get_pan - Get channel pan position
osc_set_channel_name - Set channel name
osc_get_channel_name - Get channel name
osc_set_channel_source / osc_get_channel_source - Configure input source
EQ Controls (5 tools)
osc_set_eq - Set EQ band gain (-15dB to +15dB)
osc_get_eq - Get EQ band gain
osc_set_eq_frequency - Set EQ band frequency
osc_set_eq_q - Set EQ band Q factor
osc_set_eq_on - Enable/disable EQ
Dynamics Controls (7 tools)
osc_set_gate - Set gate threshold (-80dB to 0dB)
osc_get_gate - Get gate threshold
osc_set_gate_on - Enable/disable gate
osc_set_compressor - Set compressor threshold and ratio
osc_set_compressor_attack - Set compressor attack time
osc_set_compressor_release - Set compressor release time
osc_set_compressor_on - Enable/disable compressor
Bus Controls (5 tools)
osc_set_bus_fader - Set bus fader level
osc_get_bus_fader - Get bus fader level
osc_mute_bus - Mute/unmute a bus
osc_set_bus_pan - Set bus pan position
osc_set_bus_name - Set bus name
Aux Controls (4 tools)
osc_set_aux_fader - Set aux fader level
osc_get_aux_fader - Get aux fader level
osc_mute_aux - Mute/unmute an aux output
osc_set_aux_pan - Set aux pan position
Sends (3 tools)
osc_send_to_bus - Set send level from channel to bus
osc_get_send_to_bus - Get send level from channel to bus
osc_send_to_aux - Set send level from channel to aux
Main Mix (4 tools)
osc_set_main_fader - Set main LR fader level
osc_get_main_fader - Get main LR fader level
osc_mute_main - Mute/unmute main LR mix
osc_set_main_pan - Set main LR pan position
Matrix (2 tools)
osc_set_matrix_fader - Set matrix fader level
osc_mute_matrix - Mute/unmute a matrix output
Effects (3 tools)
osc_set_effect_on - Enable/disable an effect
osc_set_effect_mix - Set effect mix level
osc_set_effect_param - Set effect parameter value
Scenes (3 tools)
osc_scene_recall - Recall a saved scene (1-100)
osc_scene_save - Save current mixer state as a scene
osc_get_scene_name - Get scene name
Status & Custom (2 tools)
osc_get_mixer_status - Get mixer status and info
osc_custom_command - Send custom OSC command
Technical Details
Dependencies:
@modelcontextprotocol/sdk - MCP server framework
osc-js - OSC protocol implementation (v2.4.1)
TypeScript - Type-safe development
OSC Communication:
Protocol: UDP
Default Port: 10023
Bidirectional communication with mixer
Automatic connection keep-alive (/xremote every 9 seconds)
Uses
osc-jslibrary with DatagramPlugin for UDP communication
Supported Mixer Models:
Behringer X32
Behringer X32 Compact
Behringer X32 Producer
Behringer X32 Rack
Midas M32 (compatible)
Development
Watch Mode
npm run devBuild
npm run buildRun Directly
npm startTroubleshooting
Connection Issues
Verify network connectivity: Ping your mixer
ping 192.168.1.70Check OSC settings: Ensure OSC is enabled on the mixer
Firewall: Make sure your firewall allows UDP traffic on port 10023
Check Claude Desktop logs:
macOS:
~/Library/Logs/Claude/
Common Issues
"Timeout waiting for response": The mixer might not be responding. Check network connection and mixer settings.
"Connection refused": Verify the IP address and port are correct.
Tools not appearing in Claude: Restart Claude Desktop after updating the config file.
Custom OSC Commands
The osc_custom_command tool allows you to send any OSC command to the mixer. This is useful for accessing features not covered by the standard tools.
Examples
Setting Channel Names
{
"address": "/ch/01/config/name",
"value": "Lead Vocal"
}Setting Channel Colors
{
"address": "/ch/05/config/color",
"value": 3
}Controlling Channel Preamp Gain
{
"address": "/ch/03/preamp/trim",
"value": 0.5
}Setting High-Pass Filter
{
"address": "/ch/02/hpf",
"value": 1
}Controlling Insert Effects
{
"address": "/ch/04/insert/on",
"value": 1
}Setting Bus Configuration
{
"address": "/bus/02/config/name",
"value": "Monitor"
}Controlling Effects Parameters
{
"address": "/fx/01/par/01",
"value": 0.75
}Setting Matrix Configuration
{
"address": "/mtx/01/config/name",
"value": "Recording"
}Controlling Talkback
{
"address": "/-stat/talk",
"value": 1
}Setting Solo
{
"address": "/ch/01/mix/solo",
"value": 1
}Commands Without Values
Some OSC commands don't require a value:
{
"address": "/-stat/solosw"
}Common OSC Addresses
Channel Configuration
/ch/{nn}/config/name- Channel name (string)/ch/{nn}/config/color- Channel color (0-15)/ch/{nn}/config/source- Input source (0-63)/ch/{nn}/preamp/trim- Preamp gain (0.0-1.0)/ch/{nn}/preamp/hpon- High-pass filter on (0/1)/ch/{nn}/preamp/hpf- High-pass filter frequency (0.0-1.0)
Channel Mix
/ch/{nn}/mix/solo- Solo channel (0/1)/ch/{nn}/mix/st- Send to stereo (0.0-1.0)/ch/{nn}/mix/mlevel- Monitor level (0.0-1.0)
Insert Effects
/ch/{nn}/insert/on- Insert effect on (0/1)/ch/{nn}/insert/pos- Insert position (0-3)
Bus Configuration
/bus/{nn}/config/name- Bus name (string)/bus/{nn}/config/color- Bus color (0-15)/bus/{nn}/config/mono- Mono bus (0/1)
Effects
/fx/{nn}/on- Effect on (0/1)/fx/{nn}/mix- Effect mix (0.0-1.0)/fx/{nn}/par/{nn}- Effect parameter (0.0-1.0)
Matrix
/mtx/{nn}/config/name- Matrix name (string)/mtx/{nn}/config/color- Matrix color (0-15)
System
/-stat/talk- Talkback (0/1)/-stat/solosw- Solo switch (no value)/-stat/rtn- Return solo (0/1)
Note: Replace {nn} with zero-padded channel/bus/effect numbers (e.g., 01, 02, 15).
Value Types
The osc_custom_command tool automatically detects value types:
Numbers: Automatically sent as float or integer
Strings: Sent as OSC string type
Arrays: Can be used for multiple arguments
Example with multiple arguments:
{
"address": "/custom/path",
"value": [0.5, "text", 42]
}X32 OSC Reference
For advanced usage and complete OSC command reference, refer to the Behringer X32 OSC Protocol.
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Available Tools
52 toolsosc_custom_commandC
Send a custom OSC command to the mixer
Inputs: address (required), value.
osc_get_aux_faderB
Get the fader level for an aux output
Inputs: aux (required).
osc_get_bus_faderC
Get the fader level for a mix bus
Inputs: bus (required).
osc_get_channel_nameC
Get the name of a channel
Inputs: channel (required).
osc_get_channel_sourceB
Get the input source for a channel
Inputs: channel (required).
osc_get_emulator_statusA
Check if the X32 emulator is currently running
Inputs: no named parameters.
osc_get_eqB
Get EQ gain for a channel band
Inputs: channel (required), band (required).
osc_get_faderC
Get the current fader level for a channel
Inputs: channel (required).
osc_get_gateC
Get gate threshold for a channel
Inputs: channel (required).
osc_get_main_faderB
Get the main LR fader level
Inputs: no named parameters.
osc_get_mixer_statusB
Get overall mixer status and information
Inputs: no named parameters.
osc_get_muteC
Get the mute status of a channel
Inputs: channel (required).
osc_get_panB
Get the pan position for a channel
Inputs: channel (required).
osc_get_scene_nameB
Get the name of a saved scene
Inputs: scene (required).
osc_get_send_to_busB
Get the send level from a channel to a mix bus
Inputs: channel (required), bus (required).
osc_mute_auxC
Mute or unmute an aux output
Inputs: aux (required), mute (required).
osc_mute_busC
Mute or unmute a mix bus
Inputs: bus (required), mute (required).
osc_mute_channelC
Mute or unmute a channel
Inputs: channel (required), mute (required).
osc_mute_mainC
Mute or unmute the main LR mix
Inputs: mute (required).
osc_mute_matrixC
Mute or unmute a matrix output
Inputs: matrix (required), mute (required).
osc_open_x32_editB
Open the X32-Edit application to manually control the mixer or verify commands
Inputs: no named parameters.
osc_scene_recallC
Recall a saved scene
Inputs: scene (required).
osc_scene_saveB
Save the current mixer state as a scene
Inputs: scene (required), name.
osc_send_to_auxB
Set the send level from a channel to an aux output
Inputs: channel (required), aux (required), level (required).
osc_send_to_busC
Set the send level from a channel to a mix bus
Inputs: channel (required), bus (required), level (required).
osc_set_aux_faderC
Set the fader level for an aux output
Inputs: aux (required), level (required).
osc_set_aux_panC
Set the pan position for an aux output
Inputs: aux (required), pan (required).
osc_set_bus_faderC
Set the fader level for a mix bus
Inputs: bus (required), level (required).
osc_set_bus_nameC
Set the name of a mix bus
Inputs: bus (required), name (required).
osc_set_bus_panC
Set the pan position for a mix bus
Inputs: bus (required), pan (required).
osc_set_channel_nameC
Set the name of a channel
Inputs: channel (required), name (required).
osc_set_channel_sourceC
Set the input source for a channel
Inputs: channel (required), source (required).
osc_set_compressorC
Set compressor threshold and ratio for a channel
Inputs: channel (required), threshold (required), ratio (required).
osc_set_compressor_attackC
Set compressor attack time for a channel
Inputs: channel (required), attack (required).
osc_set_compressor_onC
Enable or disable compressor for a channel
Inputs: channel (required), on (required).
osc_set_compressor_releaseC
Set compressor release time for a channel
Inputs: channel (required), release (required).
osc_set_effect_mixC
Set the mix level for an effect
Inputs: effect (required), mix (required).
osc_set_effect_onC
Enable or disable an effect
Inputs: effect (required), on (required).
osc_set_effect_paramC
Set a parameter value for an effect
Inputs: effect (required), param (required), value (required).
osc_set_eqC
Set EQ gain for a channel band
Inputs: channel (required), band (required), gain (required).
osc_set_eq_frequencyC
Set EQ frequency for a channel band
Inputs: channel (required), band (required), frequency (required).
osc_set_eq_onC
Enable or disable EQ for a channel
Inputs: channel (required), on (required).
osc_set_eq_qC
Set EQ Q factor for a channel band
Inputs: channel (required), band (required), q (required).
osc_set_faderC
Set the fader level for a channel (0.0 to 1.0)
Inputs: channel (required), level (required).
osc_set_gateC
Set gate threshold for a channel
Inputs: channel (required), threshold (required).
osc_set_gate_onC
Enable or disable gate for a channel
Inputs: channel (required), on (required).
osc_set_main_faderB
Set the main LR fader level
Inputs: level (required).
osc_set_main_panB
Set the pan position for the main LR mix
Inputs: pan (required).
osc_set_matrix_faderC
Set the fader level for a matrix output
Inputs: matrix (required), level (required).
osc_set_panA
Set the pan position for a channel (-1.0 = left, 0.0 = center, 1.0 = right)
Inputs: channel (required), pan (required).
osc_start_emulatorA
Start the local X32 emulator server from the emulator/X32 binary so you can test without a physical mixer
Inputs: no named parameters.
osc_stop_emulatorA
Stop the running X32 emulator server
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 52 tools
Most tools have distinct purposes targeting specific mixer components (e.g., channels, buses, effects) with clear action distinctions (get vs. set). However, some overlap exists, like multiple EQ-related tools (osc_set_eq, osc_set_eq_frequency, osc_set_eq_q) that could be confusing without careful reading of descriptions, and the compressor/gate tools follow similar patterns that might cause minor confusion.
All tools follow a highly consistent naming pattern: 'osc_' prefix, then a verb (e.g., get, set, mute, send), and a noun phrase describing the target (e.g., channel_name, aux_fader, emulator_status). This verb_noun structure is maintained throughout all 52 tools, making them predictable and easy to parse.
With 52 tools, the count is excessive for an MCP server, likely overwhelming for agents and leading to decision paralysis. While the domain (OSC mixer control) is complex, this many tools suggests over-fragmentation (e.g., separate tools for each EQ parameter) rather than a well-scoped set, making it borderline heavy and inefficient for typical use.
The tool set provides comprehensive coverage for controlling an X32 mixer via OSC, including full CRUD-like operations (get/set for levels, names, statuses), scene management, emulator control, and detailed effect/processor adjustments (EQ, compressor, gate). No obvious gaps are present; agents can perform all expected mixer interactions without dead ends.
Maintenance
Related MCP Connectors
OSC β MIDI bridge for synthesizers and DAWs, with the SynthHub catalogue. A MIDI MCP and OSC MCP.
Compose, mix, master and export in Logic Pro, REAPER or Ableton Live by talking to an AI engineer.
Generate AI music via the Lacuna Music API from MCP clients like Claude Desktop & Code.
Connect Claude or any MCP client to Wireflow, the AI canvas for image, video and audio workflows. List, build, inspect and run your workflows and published apps, browse templates, check models, prices and credits, edit a video node's timeline, and plan or schedule social posts. Drafts and edits cost no credits; run tools spend the user's credits.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables natural language control over Ableton Live for generating musical patterns, melodies, and full song arrangements. It also provides tools for sample searching and mixing assistance through an OSC-based connection with Claude Desktop.1MIT
- AlicenseAqualityDmaintenanceEnables control of Behringer X32/M32 digital mixing consoles via OSC protocol for remote mixing, automated setup, and live adjustments through an AI assistant.2423 npmMIT
- AlicenseBqualityCmaintenanceEnables controlling a Behringer XR18 mixer over OSC UDP, including faders, sends, EQ, snapshots, meters, and raw OSC commands, through MCP tools and an agentic chat assistant.251GPL 3.0
- AlicenseNot gradedqualityBmaintenanceEnables Claude to discover and connect to Behringer digital mixers over OSC, read and write parameters, dump subtrees to show files, and push edited files back to the desk.MIT