FL Studio MCP
by DylanCop
README.md
# FL Studio MCP
An [MCP](https://modelcontextprotocol.io) server that lets an AI assistant (Claude or any
MCP client) **see and control FL Studio**: transport, tempo, mixer, Channel Rack, patterns,
playlist tracks, and the **parameters of every plugin you load, VSTs included** — plus a path for
writing notes into the piano roll.
```
AI client ──MCP──▶ fl-studio-mcp (Python) ──SysEx over loopMIDI──▶ "FL MCP Bridge" script ──▶ FL Studio API
(Claude) server/ (runs inside FL)
```
> **Status: 0.1 (alpha).** The protocol, the server and the in-FL bridge script are covered by
> 33 automated tests that run the real bridge script against a simulated FL Studio API
> (`tests/`). It has **not yet been verified against a live FL Studio session** — see
> [docs/LIMITATIONS.md](docs/LIMITATIONS.md) and please open issues with what you find.
## What the AI can do
| Area | Capabilities |
|---|---|
| Transport | play / stop / record, set tempo, jump position, undo |
| Mixer | list tracks, volume, pan, mute, solo, arm, rename, sends, **list effect slots** |
| Channel Rack | list channels, volume, pan, mute, solo, rename, route to mixer track, select, preview notes |
| **Plugins (incl. VST)** | inventory of every generator and effect in the project; read parameters (name, value, display text); set parameters **by name or index**; step presets |
| Patterns / Playlist | list, rename, select, mute, solo |
| Notes | stage notes (or a `.mid` file) and import them into the piano roll; export the piano roll back for the AI to read |
Full reference: [docs/TOOLS.md](docs/TOOLS.md).
## Install
Requirements: Windows (macOS works in principle — see SETUP), FL Studio 21+, Python 3.10+,
[loopMIDI](https://www.tobias-erichsen.de/software/loopmidi.html) (free virtual MIDI ports).
```bash
git clone https://github.com/DylanCop/fl-studio-mcp
cd fl-studio-mcp
pip install -e .
fl-studio-mcp install-fl-scripts # copies the scripts into FL's folders
```
Then create the two loopMIDI ports, enable the controller in FL, and register the server with
your MCP client. Step-by-step with screenshots-in-words: **[docs/SETUP.md](docs/SETUP.md)**.
Check everything with:
```bash
fl-studio-mcp doctor
```
### Claude Desktop / Claude Code
```json
{
"mcpServers": {
"fl-studio": { "command": "fl-studio-mcp", "args": ["serve"] }
}
}
```
```bash
claude mcp add fl-studio -- fl-studio-mcp serve
```
## Example prompts
* "Which plugins are on my Lead track, and what are the parameters of the reverb?"
* "Open the filter on Serum a bit — set Cutoff to 0.7 and Resonance to 0.2."
* "Set the tempo to 128 and mute the drum channel."
* "Write a 4-bar chord progression in A minor and stage it so I can import it into the piano roll."
## How it works, and what it can't do
FL Studio exposes a Python *MIDI controller scripting* API. This project uses it as an RPC
endpoint: the server talks JSON-over-SysEx to a controller script running inside FL. Because FL's
API has hard limits (it can't load plugins, and only piano-roll scripts can write notes), some
things need one click from you. Details in [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) and
[docs/LIMITATIONS.md](docs/LIMITATIONS.md).
## Development
```bash
pip install -e ".[dev]"
pytest
```
## License
MIT — see [LICENSE](LICENSE). Not affiliated with Image-Line. "FL Studio" is a trademark of
Image-Line.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo recent community issues