Bridges FL Studio on macOS to Claude and other MCP clients through CoreMIDI virtual ports and FL Studio's Python MIDI scripting API. You get transport controls (play, stop, record), tempo changes, mixer and channel rack reads and mutations, plus two note writing paths: standard MIDI file export or a queued Piano Roll script that applies notes directly into an open channel. The live bridge runs a background daemon so multiple MCP clients share the same virtual ports without stepping on each other. Setup requires mapping the request and response ports in FL Studio's MIDI settings and copying two Python scripts into your FL Studio folders. Built for macOS where CoreMIDI is cleaner than the Windows alternatives. Alpha state, intentionally limited to what FL Studio's documented scripting APIs expose.
macOS-first MCP bridge for FL Studio. It exposes FL Studio transport, mixer, channel, MIDI export, and Piano Roll note-apply workflows to MCP clients such as Claude Desktop, Claude Code, Cursor, and other MCP-capable tools.
This is an alpha MVP. It is intentionally scoped around FL Studio's documented Python MIDI scripting and Piano Roll scripting APIs. It does not promise full headless FL Studio automation.
Most FL Studio MCP work today is Windows-oriented. macOS has a cleaner CoreMIDI path for virtual ports, and FL Studio supports Python-based MIDI scripts on macOS. This project turns that into a small local MCP server plus companion FL Studio scripts.
.pyscript to insert persistent notes.Scripts > FL Studio MCP Apply in the target Piano Roll.From this repo:
python3 -m pip install .
flstudio-mcp-mac-install
The installer copies:
device_FLStudioMCP.py to ~/Documents/Image-Line/FL Studio/Settings/Hardware/FLStudioMCP/FL Studio MCP Apply.pyscript to ~/Documents/Image-Line/FL Studio/Settings/Piano roll scripts/Start the MCP server once so it starts the local MIDI daemon and creates the virtual CoreMIDI ports:
flstudio-mcp-mac
You can stop this foreground MCP process after the ports appear. The background daemon keeps the FLStudioMCP Request and FLStudioMCP Response ports available for all MCP clients.
Open FL Studio and go to Options > MIDI Settings.
In the input list, choose FLStudioMCP Request.
Set Controller type to FL Studio MCP Mac.
Set the controller output to FLStudioMCP Response.
Restart the MCP client if needed. If duplicate FLStudioMCP ports appear, quit old MCP server processes and start the v0.1.1+ daemon again.
For detailed setup across Claude Desktop, Claude Code, Cursor, Windsurf, PyPI, and the MCP Registry, see docs/publishing.md.
Example Claude Desktop config:
{
"mcpServers": {
"flstudio-mcp-mac": {
"command": "flstudio-mcp-mac"
}
}
}
For source installs where the command is not on PATH:
{
"mcpServers": {
"flstudio-mcp-mac": {
"command": "python3",
"args": ["-m", "flstudio_mcp_mac"]
}
}
}
Use fl_create_midi_file when you want a normal .mid file to import.
Use fl_queue_piano_roll_notes when you want to apply notes into the currently open Piano Roll:
Scripts > FL Studio MCP Apply.Note shape:
[
{ "pitch": 60, "start": 0, "duration": 1, "velocity": 100 },
{ "pitch": 64, "start": 1, "duration": 1, "velocity": 96 },
{ "pitch": 67, "start": 2, "duration": 2, "velocity": 96 }
]
Times are in beats. MIDI pitch uses the standard 0-127 scale.
python3 -m pip install ".[dev]"
PYTHONPATH=src pytest
Set FLSTUDIO_MCP_BRIDGE=mock to run the MCP server with deterministic in-memory FL Studio responses for protocol tests:
FLSTUDIO_MCP_BRIDGE=mock python3 -m flstudio_mcp_mac
Normal live mode uses a background daemon. For low-level debugging, set FLSTUDIO_MCP_BRIDGE=direct to make one MCP process own the virtual MIDI ports directly.
For live FL Studio validation steps, see docs/testing.md.
The bridge sends base64 JSON over MIDI control-change frames on channel 16:
The FL script only accepts whitelisted command names and returns one JSON response for each request.
This server runs entirely on your machine. It collects no telemetry and stores no data on any remote service. It communicates only with your local FL Studio instance over macOS virtual MIDI ports (CoreMIDI), and writes files only where you ask: generated MIDI files and the Piano Roll queue JSON under your local Music folder. No account, API key, or network connection is required, and nothing you do in FL Studio leaves your computer.
Built by Puya Ventures LLC. I build custom MCP servers and AI integrations. Get in touch: purahmanian@gmail.com | Portfolio: https://puyarahmanian.com
MIT. See LICENSE.
io.github.xpaysh/social-media
com.thenextgennexus/youtube-media-mcp-server
csoai-org/social-media-ai-mcp
com.ezbizservices/social-media
io.github.wolflangis/video-loom
mamertofabian/elevenlabs-mcp-server