Skip to main content
Glama
guycochran

X32/M32 MCP Server

by guycochran
README.md
# X32/M32 MCP Server

MCP server for controlling Behringer X32/M32 digital mixing consoles via OSC protocol.

## When to Use This

- **Remote Mixing**: Control your X32/M32 from anywhere on the network
- **Automated Setup**: Quickly configure channels for rehearsals or shows
- **Batch Operations**: Apply settings to multiple channels at once
- **Documentation**: Query and document current mixer settings
- **Troubleshooting**: Check mixer state without physical access
- **Live Adjustments**: Make quick changes during performances via AI assistant

## Features

- 32 input channels with volume, gain, mute, solo, EQ, pan control
- 16 mix buses for aux sends and monitor mixes
- 8 FX racks with parameter control
- Main/monitor output control
- Direct OSC parameter access for advanced users

## Installation

```bash
npm install -g x-m32-mcp-server
```

Or from source:
```bash
git clone https://github.com/GoBeromsu/X32-MCP.git
cd X32-MCP
npm install && npm run build
```

## MCP Client Configuration

### Claude Desktop

Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:

```json
{
    "mcpServers": {
        "x32": {
            "command": "npx",
            "args": ["x-m32-mcp-server"]
        }
    }
}
```

### Connect to Mixer

```
connection_connect with host="192.168.1.100" and port=10023
```

## Available Tools (21 total)

| Tool | Parameters |
|------|------------|
| **Connection (4)** |  |
| `connection_connect` | `host`, `port` |
| `connection_disconnect` | - |
| `connection_get_info` | - |
| `connection_get_status` | - |
| **Channel (8)** |  |
| `channel_set_volume` | `channel`, `value`, `unit` |
| `channel_set_gain` | `channel`, `gain` |
| `channel_mute` | `channel`, `muted` |
| `channel_solo` | `channel`, `solo` |
| `channel_set_name` | `channel`, `name` |
| `channel_set_color` | `channel`, `color` |
| `channel_set_pan` | `channel`, `pan` |
| `channel_set_eq_band` | `channel`, `band`, `parameter`, `value` |
| **Bus (4)** |  |
| `bus_set_volume` | `bus`, `value`, `unit` |
| `bus_mute` | `bus`, `muted` |
| `bus_set_send` | `channel`, `bus`, `value`, `unit` |
| `bus_get_state` | `bus` |
| **FX (3)** |  |
| `fx_set_parameter` | `fx`, `parameter`, `value` |
| `fx_get_state` | `fx` |
| `fx_bypass` | `fx`, `bypass` |
| **Main/Monitor (3)** |  |
| `main_set_volume` | `value`, `unit` |
| `main_mute` | `muted` |
| `monitor_set_level` | `value`, `unit` |
| **Low-Level (2)** |  |
| `get_parameter` | `address` |
| `set_parameter` | `address`, `value` |

## Quick Tips

- **Unity Gain**: 0 dB = 0.75 linear (neutral, no boost/cut)
- **Safe Start**: Begin with channel at -20 dB and muted
- **Channel Colors**: Use colors to organize (red=vocals, blue=drums, etc.)
- **Bus Usage**: 1-4 monitors, 5-6 FX sends, 7-8 recording, 9-16 IEM/matrix
- **Network**: X32 uses port 10023, connect to same network as computer

## Parameter Reference

### Common Parameters
- `channel`: 1-32
- `bus`: 1-16
- `fx`: 1-8
- `unit`: "linear" (0.0-1.0) or "db" (-90 to +10)
- `muted`/`solo`/`bypass`: true/false
- `pan`: -100 to +100, "L50"/"C"/"R50", or 0.0-1.0
- `color`: "red", "green", "blue", etc. or 0-15
- `band`: 1-4 (EQ bands)
- `parameter`: "f" (frequency), "g" (gain), "q" (Q factor)

### Value Ranges
- Volume linear: 0.0-1.0 (unity = 0.75)
- Volume dB: -90 to +10 (unity = 0 dB)
- Gain: 0.0-1.0
- FX parameter: 0.0-1.0
- Channel name: max 12 characters


## License

MIT

## Support

https://github.com/GoBeromsu/X32-MCP

TDQS

A3.9/5.0

Scored across 24 tools

Disambiguation5/5

Each tool targets a distinct combination of mixer resource (channel, bus, FX, main, monitor, connection) and action. Groups are clearly separated, and the low-level get/set_parameter tools are explicitly marked as advanced, so no ambiguity exists.

Naming Consistency4/5

The majority of tools follow an object_verb pattern (e.g., channel_set_volume, bus_mute, fx_bypass), but the low-level tools get_parameter and set_parameter invert the pattern, and connection_connect is slightly redundant. These are minor deviations from an otherwise consistent convention.

Tool Count4/5

With 24 tools, the set is on the heavier side of the ideal range, but the complexity of a digital mixer justifies the coverage of channels, buses, FX, main, monitor, and connection. No tools feel redundant.

Completeness3/5

The server provides comprehensive control over channels, buses, FX, main, and monitor, but lacks high-level state retrieval for several resources (e.g., channel_get_state, main_get_state). Agents must rely on the low-level get_parameter for these reads, which is a notable gap in the semantic surface.

Maintenance

ActivityInactive
ResponsivenessNo issues