FastMCP server for Mixxx DJ software control via OSC protocol
Runs on your machine from its package; the steps are below.

At most: moves money, runs code or commands, deletes data, or sends messages for you.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Distributed as an MCP bundle (`https://github.com/sandraschi/mixx-dj-mcp/releases/download/v0.2.0/mixx-dj-mcp-v0.2.0.mcpb`) — download it and import the bundle in your MCP client.
AI-native DJ control for Mixxx. 80+ operations across decks, library, effects, mixer, stems, transitions, video, and more. Talk to your DJ software like a colleague.
uv sync && uv run uvicorn mixx_dj_mcp.server:app --port 11116
Configure Mixxx OSC once (one minute): Preferences > MIDI/OSC > Enable OSC, set out 11118, in 11119, send to 127.0.0.1, restart. Done.
Your AI assistant (Claude, Cursor, opencode) can now control your decks.
| You say | The AI does |
|---|---|
| "Play deck 2" | mixx_deck(operation="play_pause", deck=2) -- OSC to Mixxx |
| "Find some 128 BPM tech house" | mixx_library(operation="search", query="tech house") |
| "Add reverb to the outgoing track" | mixx_effects(operation="chain_load", rack=1, effect="Reverb") |
| "Plan a 30-min drum & bass set" | mixx_ai_set(operation="plan", style="drum and bass") |
| "Record this set" | mixx_recording(operation="start") |
| "Analyse this track's key" | mixx_analyze(operation="track", path="C:/Music/track.mp3") |
| "Show me my most-played tracks" | mixx_history(operation="profile") |
| "Transition with an echo out" | mixx_transition(operation="apply", effect="echo_out") |
| Tool | What it controls |
|---|---|
mixx_deck | Play/pause, load, cue, loops, sync, rate, scratch, hotcues, quantize, keylock -- plus video |
mixx_library | Search, browse crates/playlists, BPM/key metadata |
mixx_effects | Effect chains, parameters, quick effects, super knob |
mixx_mixer | Crossfader, EQ, gain, headphone cue, talkover, mic |
mixx_analyze | BPM detection, musical key (Krumhansl-Schmuckler), energy, cue suggestions |
mixx_stems | Demucs stem separation, sampler loading, stem-aware mixing |
mixx_transition | AI-suggested transitions, 8 effect types, auto-crossfader |
mixx_ai_set | Autonomous DJ -- plan sets, perform transitions, review |
mixx_recording | Record, replay, and export DJ sets as OSC streams |
mixx_history | Play history, style profile, track suggestions |
mixx_crate | LLM-generated smart crates by BPM/key/genre |
mixx_set | Harmonic mixing sequences, energy curve planning |
mixx_skin | List, apply, create video skins, AI palette generation |
mixx_vinyl | OCR catalog, AI gig picker, Plex crossref |
mixx_controller | USB auto-detect, install mappings |
mixx_daw | Export stems to DaVinci Resolve, Reaper |
| Prefab cards | show_deck/mixer/library_status_card -- rich in-chat UI |
| For... | Read |
|---|---|
| Installing the server, webapp, NSIS installer, or MCPB | docs/INSTALL.md |
| Status & backlog | docs/STATUS.md · docs/TODO.md |
| Full tool reference with parameters, returns, and examples | docs/TOOLS.md |
| Using video -- requires the mixxxxx fork of Mixxx | docs/MIXXX_VIDEO.md |
| AV orchestrator (mixxxxx hub, NDI, Resolume, OBS) | docs/ORCHESTRATOR.md · webapp Help → AV Rig |
| NDI (network video from mixxxxx) | docs/NDI.md · docs/NDI-TARGETS.md · webapp Help → NDI |
| Project status & backlog | docs/STATUS.md · docs/TODO.md |
| AI-powered transitions between decks | docs/AI_TRANSITIONS.md |
| Architecture -- how the OSC bridge, REST API, and webapp work | docs/ARCHITECTURE.md |
| Beginner's guide to DJing with Mixxx | docs/NOOB_GUIDE.md |
| Comparing Mixxx to other DJ software | docs/DJ_LANDSCAPE.md |
| Algoriddim djay feature parity | docs/ALGORIDDIM_COMPARISON.md |
| Mixxx OSC setup and address reference | bridge/README.md |
Mixx-DJ-MCP supports the mixxxxx video fork -- a modified Mixxx build that adds FFmpeg video playback, per-deck video widgets, and fullscreen projector output alongside the standard audio engine.
mixxxxx on GitHub · docs/MIXXX_VIDEO.md
| Port | What |
|---|---|
| 11116 | Backend REST API + MCP transport |
| 11117 | React webapp (Vite) |
| 11118 | OSC feedback from Mixxx |
| 11119 | OSC commands to Mixxx |
Mixx-DJ-MCP is a Fleet Audio Hub -- it connects to other MCP servers for a unified DJ ecosystem:
| Server | Integration |
|---|---|
plex-mcp | Cross-reference vinyl with digital library |
songgeneration-mcp | AI music generation loaded direct to decks |
sfx-mcp | Sound effects triggered during live sets |
vfx-mcp | Real-time video effects on video output |
stems-mcp | External stem separation engine |
davinci-resolve-mcp | Export stems to Fairlight for post-production |
reaper-mcp | Export stems to Reaper DAW |
inkscape-mcp | AI skin colour palette generation |
mixx-dj-mcp works completely standalone. You can optionally connect it with companion servers in the sandraschi fleet to unlock extended features:
| Companion Server | Feature Unlocked | Status | Setup |
|---|---|---|---|
resolume-mcp | ndi-vj-routing, osc-clip-sync, live-projection-mapping | Optional | Install Guide |
resonite-mcp | virtual-world-stage, nekomimi-avatar-dance, osc-bpm-telemetry | Optional | Install Guide |
Self-Contained Companions: Fleet companions operate independently. Installing companions does not trigger transitive dependency chains.
MIT -- Sandra Schipal
Vinyl not included. Mixxx not included. Bad music taste is your own.