wing-mcp-server
by bawaaaaah
README.md
# wing-mcp-server
An MCP server and web dashboard for the **Behringer WING** digital mixing console.
It speaks the WING's own OSC control protocol and its binary metering stream, and exposes the desk
to an MCP client (Claude Desktop, claude.ai, any MCP-capable assistant) as 116 typed tools — plus a
React dashboard for driving the same functionality by hand.
## What it does
- **Mixing** — faders, mutes, pan, sends, main assigns, DCAs and mute groups across channels, auxes,
buses, mains and matrices.
- **Processing** — EQ, gate and dynamics, including the per-model controls of the console's
compressor and gate emulations.
- **Automatic setup** — auto-gain, auto-compress and auto-gate that drive the desk's real controls
from live meter readings, and a pink-noise **auto-EQ** for matrix/bus/main strips with
measurement-mic calibration files.
- **Presets and scenes** — save, load and delete presets over any part of the node tree; scene and
library access.
- **Console features** — input patching, inserts, processing order, solo/monitor, talkback, scribble
strips, bus lighting, GPIO, USB player, RTA and metering, OSC mirroring.
- **Auth** — a static bearer token, an OAuth authorization-code flow for remote MCP clients, and
WebAuthn passkeys for the dashboard.
## Requirements
Node >= 22, and a WING (or WING Rack / WING Compact) reachable on the network.
## Install
Two ready-made ways to run it, both published from this repository:
| | |
| --- | --- |
| **Docker** — `ghcr.io/bawaaaaah/wing-mcp-server`, amd64 and arm64 | [docs/install-docker.md](docs/install-docker.md) |
| **npm** — `@bawaaaaah/wing-mcp-server` on GitHub Packages, ships a `wing-mcp-server` binary | [docs/install-npm.md](docs/install-npm.md) |
The shortest version of each:
```bash
docker run -d -p 8787:8787 -p 14135:14135/udp -v wing-mcp-data:/app/data \
-e WING_HOST=192.168.1.50 ghcr.io/bawaaaaah/wing-mcp-server:latest
```
```bash
npm install -g @bawaaaaah/wing-mcp-server # needs a GitHub Packages token, see the guide
wing-mcp-server --wing-host 192.168.1.50
```
Either way the dashboard is served on `PORT` (8787 by default), the MCP endpoint is at `/mcp`, and
the startup banner prints the URL with the auth token in it. Both guides cover configuration,
persistence, reverse proxies and connecting an MCP client, with worked examples.
## From source
```bash
npm install
cp .env.sample .env # set WING_HOST to your console's IP
npm run dev # server + dashboard, with hot reload
```
Or a production build:
```bash
npm run build
npm start
```
## Tests
```bash
npm test
```
Mocha, run against an in-process mock console — no hardware needed.
CI runs the typecheck, the suite and a build on Node 22 and 24 for every push and pull request, and
builds the Docker image (without publishing it) on feature branches and pull requests, so a broken
Dockerfile is caught before it reaches `main`.
## Releasing
Pushing a `v*.*.*` tag runs the full suite, publishes the npm package to GitHub Packages and pushes
a multi-architecture image to GHCR tagged `<version>`, `<major>.<minor>`, `<major>` and `latest`:
```bash
npm version patch # writes package.json and creates the tag
git push --follow-tags
```
Pushes to `main` publish a moving `edge` image tag and nothing else.
## Protocol notes
`docs/wing-protocol/` holds notes on the WING's OSC node tree, metering, value encoding and error
codes, written while building this. Much of it was verified directly against a real console, and the
node-tree pages under `05-node-tree/` are generated from the parameter catalog
(`npm run docs:gen:wing`) — edit the catalog, not those files.
Some source comments cite `docs/WING_Remote-Protocols-3.1-03.pdf` by page. That is Music Tribe's own
protocol manual and is **not** redistributed here; download it from Behringer's WING product page if
you want those references to resolve locally.
## Status
A personal project, built and tested against a single WING. Expect rough edges on any model or
firmware it has never met.
## Licence
MIT — see [LICENSE](LICENSE). Use it, fork it, ship it; just keep the copyright notice.
The one thing that licence does not cover is `docs/WING_Remote-Protocols-3.1-03.pdf`, Music Tribe's
own protocol manual. It is not redistributed here and is not mine to license — get it from
Behringer's WING product page.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues