FL Studio

Provides MIDI and JSON-based control of FL Studio, enabling real-time transport, mixer, channel, plugin, and piano roll actions via MCP.
  • python

0

GitHub Stars

python

Language

7 months ago

First Indexed

3 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "karl-andres-fl-studio-mcp": {
      "command": "uv",
      "args": [
        "run",
        "fl-studio-mcp"
      ]
    }
  }
}

You can control FL Studio from your AI assistant through the FL Studio MCP Server. This server exposes a comprehensive set of actions for transport, mixer, channels, plugins, and piano roll, enabling real-time collaboration between your workflows and FL Studio via MIDI and scripted commands.

How to use

Connect your MCP client to the FL Studio MCP Server to start issuing commands. You can control playback (play, stop, pause), adjust position and speed, and toggle recording. You can manipulate mixer settings, channel properties, and plugin parameters. The Piano Roll tools let you add notes and chords with precise timing, delete specific notes, or clear the entire piano roll. Real-time note triggering and grid-based step control are supported for efficient pattern creation.

How to install

Prerequisites you need before running the server are a compatible FL Studio installation, Python, and a way to run the MCP server locally.

uv sync

# Or install in editable mode via Python
pip install -e .

# Start the MCP server after installation
uv run fl-studio-mcp

# Alternatively, run the built-in startup command if you are not using uv
fl-studio-mcp

Configuration and usage notes

Use the MCP client to connect to the server via the standard stdio command. The server is designed to be run locally and to communicate with FL Studio through MIDI ports and the Piano Roll script. Ensure FL Studio is running and the MIDI input is configured to receive from the virtual MIDI port you enable (IAC Driver on macOS, loopMIDI on Windows).

Troubleshooting

If you see not connected or timeout errors, verify that FL Studio is running and that the MCP controller is enabled in the MIDI settings. On macOS, ensure the IAC Driver is online; on Windows, confirm loopMIDI ports are active. Restart FL Studio after enabling the controller for best results.

Piano Roll workflow

Open FL Studio and select a channel, then open the Piano Roll. The first time you use Piano Roll automation, manually trigger the ComposeWithLLM script in FL Studio to initialize the integration. After that, MCP tools will automatically trigger the script as needed to modify the piano roll.

Security and notes

This server relies on local MIDI ports and scripting APIs provided by FL Studio. Do not expose MIDI ports or the server to untrusted clients. Ensure you only enable access to trusted MCP clients in your environment.

Example usage patterns

Adjust a mixer track, then insert a simple melody into the piano roll, followed by triggering a plugin parameter change all within a single session.

Available tools

fl_connect

Connect/reconnect to FL Studio

fl_connection_status

Get connection status

fl_play

Start/pause playback

fl_stop

Stop playback

fl_record

Toggle recording

fl_get_transport_status

Get playback/recording state

fl_set_song_position

Set playback position

fl_get_song_length

Get song duration

fl_set_loop_mode

Switch between pattern/song mode

fl_set_playback_speed

Adjust playback speed (0.25x-4x)

fl_get_mixer_track_count

Get number of mixer tracks

fl_get_mixer_track_info

Get track details

fl_get_all_mixer_tracks

List all tracks

fl_set_track_volume

Set track volume

fl_set_track_pan

Set track pan

fl_mute_track

Mute/unmute track

fl_solo_track

Solo/unsolo track

fl_arm_track

Arm track for recording

fl_set_track_name

Rename track

fl_set_track_color

Set track color

fl_set_stereo_separation

Adjust stereo width

fl_get_channel_count

Get number of channels

fl_get_channel_info

Get channel details

fl_get_all_channels

List all channels

fl_get_selected_channel

Get selected channel

fl_select_channel

Select/deselect channel

fl_select_one_channel

Select channel exclusively

fl_trigger_note

Trigger MIDI note (real-time)

fl_set_channel_volume

Set channel volume

fl_set_channel_pan

Set channel pan

fl_mute_channel

Mute/unmute channel

fl_solo_channel

Solo/unsolo channel

fl_set_channel_name

Rename channel

fl_set_channel_color

Set channel color

fl_route_channel_to_mixer

Route to mixer track

fl_get_grid_bit

Get step sequencer step

fl_set_grid_bit

Set step sequencer step

fl_get_step_sequence

Get full pattern

fl_set_step_sequence

Set full pattern

fl_is_plugin_valid

Check if plugin exists

fl_get_plugin_name

Get plugin name

fl_get_plugin_param_count

Get parameter count

fl_get_plugin_params

List all parameters

fl_get_plugin_param_value

Get parameter value

fl_set_plugin_param_value

Set parameter value

fl_get_preset_count

Get preset count

fl_next_preset

Next preset

fl_prev_preset

Previous preset

fl_get_plugin_color

Get plugin color

fl_send_notes

Add notes to the piano roll

fl_send_chord

Add a chord (multiple notes at same time)

fl_delete_notes

Delete specific notes

fl_clear_piano_roll

Clear all notes

fl_get_piano_roll_state

Read current piano roll notes

fl_trigger_script

Manually trigger the FL Studio script

fl_get_piano_roll_info

Get piano roll system info

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational