OSC MCP Server

OSC MCP Server

MCP server for controlling Behringer X-Air digital mixers via OSC, with symbolic naming and dB-to-float conversion.

Category
Visit Server

README

OSC MCP Server

MCP Server for controlling a Behringer X-Air XR18 digital mixer via Open Sound Control (OSC) protocol.

Features

  • 18 input channels with fader, mute, EQ (4 bands), and bus sends
  • 6 buses (monitor/aux) with fader and mute
  • Main LR output control
  • 4 FX slots with send level and mute
  • Symbolic naming — refer to channels and buses by name (e.g. "Kick", "Drummer") instead of numbers
  • dB-to-float conversion — work in dB, the server handles the XR18's non-linear fader scale
  • Persistent connection — the server remembers the last mixer IP across sessions
  • Raw OSC escape hatch for any unsupported command

Prerequisites

  • Python >= 3.11
  • uv package manager
  • A Behringer XR18 (or other X-Air mixer) on your local network

Installation

git clone https://github.com/darkwings/OSC_MCP.git
cd OSC_MCP
uv sync

Running the Server

# Run via stdio (used by MCP clients)
uv run osc-mcp

# Or use the MCP inspector for interactive testing
uv run mcp dev src/osc_mcp/server.py

Adding to an MCP Client

Claude Desktop

The easiest way is to use the built-in install command:

uv run mcp install src/osc_mcp/server.py --name "OSC Mixer"

Alternatively, open Claude Desktop and go to Settings > Developer > Edit Config, then add:

{
  "mcpServers": {
    "osc-mcp": {
      "command": "uv",
      "args": ["run", "--directory", "/absolute/path/to/OSC_MCP", "osc-mcp"]
    }
  }
}

Restart Claude Desktop after saving.

Claude Code

claude mcp add osc-mcp -- uv run --directory /absolute/path/to/OSC_MCP osc-mcp

Or manually add to .mcp.json or ~/.claude/mcp.json:

{
  "mcpServers": {
    "osc-mcp": {
      "command": "uv",
      "args": ["run", "--directory", "/absolute/path/to/OSC_MCP", "osc-mcp"]
    }
  }
}

Cursor

Go to Settings > MCP Servers > Add Server and use:

  • Type: stdio
  • Command: uv run --directory /absolute/path/to/OSC_MCP osc-mcp

Generic MCP Client

Any MCP-compatible client can connect using the stdio transport:

uv run --directory /absolute/path/to/OSC_MCP osc-mcp

Replace /absolute/path/to/OSC_MCP with the actual path where you cloned the repository.

Usage

Once the server is running in your MCP client:

  1. Connect: connect_mixer("192.168.1.1") — the IP is saved for future sessions
  2. Name your channels: assign_channel_name(1, "Kick"), assign_bus_name(2, "Drummer")
  3. Control: set_channel_fader("Kick", -5), set_channel_send_to_bus("Kick", "Drummer", -10)

On subsequent sessions, the server automatically reconnects to the last known mixer IP. If the mixer is unreachable (e.g. different network), the agent is prompted to ask for the new IP.

Available Tools

Tool Description
connect_mixer Connect to mixer at IP:port
assign_channel_name Name a channel (1-18)
assign_bus_name Name a bus (1-6)
list_names Show all name assignments
set_channel_fader Set channel level in dB
set_channel_mute Mute/unmute a channel
get_channel_fader Query current channel level
set_bus_fader Set bus level in dB
set_bus_mute Mute/unmute a bus
set_channel_send_to_bus Set channel→bus send level
get_channel_send_to_bus Query channel→bus send level
set_main_fader Set main LR level
set_main_mute Mute/unmute main LR
set_channel_eq Set EQ band parameters
set_channel_eq_on Enable/disable channel EQ
set_fx_send_fader Set FX send level
set_fx_send_mute Mute/unmute FX send
get_mixer_info Query mixer info
send_raw_osc Send any raw OSC message

Running Tests

uv run pytest

License

Apache License 2.0

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
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
Qdrant Server

Qdrant Server

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

Official
Featured