FL Studio Agent
Drive FL Studio from an AI agent: an MCP server that writes notes, sets tempo, levels and plugin parameters, checks which channels sound, and renders the mix, in your own FL Studio. Source, docs, and the native Bridge plugin: https://github.com/origami-research/fl-studio-agent
Claude Code:
claude mcp add --scope user fl-studio -- uvx --python 3.12 fl-studio-agent
Quick start
You need FL Studio 2026 on macOS or Windows and uv.
-
Install uv if you don't have it. macOS:
curl -LsSf https://astral.sh/uv/install.sh | sh. Windows:powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex", then install loopMIDI and add two ports named exactlyFLMCP ReqandFLMCP Res(Windows has no virtual MIDI ports; macOS needs nothing). -
Set up FL Studio once. Start FL once if you never have, close it, then run (on Windows, in a terminal opened as administrator, because FL's plugin folder is under Program Files):
uvx --python 3.12 --from fl-studio-agent fl-mcp-install
It installs the controller and note scripts, assigns the controller's MIDI ports, creates the agent's own project (
FLMCP Agent.flp; your other projects are never touched), and downloads the prebuilt Bridge plugin for live writes andrender, checking it against the release's SHA-256 sums. It is safe to rerun. To update later, run it withfl-studio-agent@latestin place offl-studio-agentand restart FL and your client. -
Add the server to your client with a button above or a config below, open FL Studio, and ask for "a 4-bar chord loop in A minor".
Claude Code
claude mcp add --scope user fl-studio -- uvx --python 3.12 fl-studio-agent
Check it with claude mcp list.
Claude Desktop
Download fl-studio-agent.mcpb and open it (or drag it into Settings > Extensions). Claude Desktop installs the package itself; you still run step 2 once, which also installs the Bridge plugin into FL.
Or add this to claude_desktop_config.json (Settings > Developer > Edit Config):
{
"mcpServers": {
"fl-studio": {
"command": "uvx",
"args": [
"--python",
"3.12",
"fl-studio-agent"
]
}
}
}
If Claude Desktop reports spawn uvx ENOENT, it cannot see your shell's PATH: replace "uvx" with the full path that which uvx (macOS) or where uvx (Windows) prints.
Cursor
Use the Install in Cursor button above, or add this to ~/.cursor/mcp.json:
{
"mcpServers": {
"fl-studio": {
"command": "uvx",
"args": [
"--python",
"3.12",
"fl-studio-agent"
]
}
}
}
VS Code
Use the Install in VS Code button above, or run (macOS/Linux shell quoting):
code --add-mcp '{"name": "fl-studio", "type": "stdio", "command": "uvx", "args": ["--python", "3.12", "fl-studio-agent"]}'
Windsurf and other clients
Add the standard entry to the client's MCP config (Windsurf: mcp_config.json, see its MCP docs):
{
"mcpServers": {
"fl-studio": {
"command": "uvx",
"args": [
"--python",
"3.12",
"fl-studio-agent"
]
}
}
}
Troubleshooting
Run the doctor while FL Studio is open:
uvx --python 3.12 --from fl-studio-agent fl-mcp-doctor
It prints one JSON report of the control plane (controller script and MIDI ports), the note plane, and the agent project, with a fix for anything not connected.
The usual fixes: open FL Studio before your client starts the server; after an upgrade rerun step 2 with fl-studio-agent@latest (a stale controller is reported); on Windows, keep loopMIDI running with both ports.
Using the FL Studio trial? Set FLMCP_FL_LICENSE=trial in the server's env, because the trial cannot reopen saved projects.
uvx --python 3.12 fl-studio-agent --version prints the installed version.
Tools
run (Python against the FL SDK; its docstring is the SDK cheatsheet), get_scene (what FL has now), check (play a few bars and read which channels sounded), render (record the mix to WAV), and analyze (WAV analysis).
The full description is in the repository README.
Metadata
Release files for fl-studio-agent 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| fl_studio_agent-0.1.2.tar.gz | 495.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fl_studio_agent-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 760.6 kB
Release files / fl_studio_agent-0.1.2.tar.gz
| Download URL | fl_studio_agent-0.1.2.tar.gz |
|---|---|
| Size | 495.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b8c1db131c3f1cd1274b824da77e5dd2d87b7d5cca1cb5017d6873dc7a83285d
|
|
BLAKE2b-256 checksum How to use checksums |
ffb2b89e02a040cfeb098fc8442fc02ae4788e58c7ef065197abde73b610cd9c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / fl_studio_agent-0.1.2-py3-none-any.whl
| Download URL | fl_studio_agent-0.1.2-py3-none-any.whl |
|---|---|
| Size | 265.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
87c61061740e72cbd49c59cfad8618bc1389f5050894391e77511b6d248c759d
|
|
BLAKE2b-256 checksum How to use checksums |
634da8d876f939ff8a6c1dccd78324b306e08b13bbcc1c887cbdd2c0c7998477
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for fl-studio-agent 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.