FL Studio 2025 AI Bridge
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FLMCP_MIDI_PORT | No | Name of the loopMIDI port used for MIDI-wake mechanism. | loopMIDI |
| FLMCP_TRANSPORT | No | Transport mode for FL Studio bridge: 'file' (recommended for FL Studio 2025) or default socket-based. | file |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| fl_pingA | Report health of BOTH bridges. Returns: { "midi_bridge": {"online": bool, ...}, "piano_roll": {"installed": bool, ...}, "available_capabilities": [...], } |
| fl_reconnectA | Drop and reopen the TCP connection to the MIDI bridge. |
| fl_bridge_infoA | Detailed info about the MIDI bridge (fails if it's offline). |
| fl_call_rawB | Escape hatch: invoke any action the MIDI bridge accepts with arbitrary params. |
| transport_playA | Start or toggle playback (FL Studio's Play button). |
| transport_stopA | Stop playback. |
| transport_recordA | Toggle record arm state. |
| transport_statusA | Get is_playing, is_recording, position, loop mode, tempo, signature. |
| transport_set_positionC | Seek to a specific position in the song. |
| transport_song_lengthA | Return song length in ticks, seconds, ms, bars, steps. |
| transport_set_loop_modeB | Set FL Studio's song/pattern loop mode. |
| transport_set_playback_speedA | Set the playback speed multiplier (0.25..4.0). |
| transport_set_tempoB | Set the project tempo in BPM. Uses processRECEvent for proper undo history. |
| transport_tap_tempoA | Send a tap-tempo event (accumulates to set BPM). |
| transport_set_time_signatureB | Set project time signature (e.g. 4/4, 3/4, 7/8). |
| transport_toggle_metronomeA | Toggle metronome on/off. |
| transport_toggle_countdown_before_recordingB | Toggle 'countdown before recording'. |
| transport_jogA | Nudge playhead by |
| pattern_countB | Return total pattern count. |
| pattern_currentA | Return index + name of currently selected pattern. |
| pattern_listA | Return list of all patterns: [{index, name, color, length}]. |
| pattern_selectA | Jump to pattern by index (1-based in FL). |
| pattern_createC | Create a new empty pattern. Returns {index, name}. |
| pattern_rename | Rename an existing pattern. |
| pattern_set_color | Set pattern color. Accepts '#RRGGBB' or 'rgb(r,g,b)'. |
| pattern_cloneC | Clone a pattern (copy all notes & channel grid bits). |
| pattern_deleteC | Delete a pattern by index. |
| pattern_set_lengthC | Set pattern length in bars. |
| pattern_find_by_nameA | Find a pattern by exact name (case-insensitive). Returns {index, name} or null. |
| pattern_jump_to_nextB | Select the next pattern in the list. |
| pattern_jump_to_previousA | Select the previous pattern in the list. |
| channel_countA | Total channel count (global = across all groups). |
| channel_infoB | Detailed info on one channel: name/volume/pan/pitch/color/mute/solo/fx_route/type. |
| channel_allB | List of all channels with basic info. |
| channel_selectedA | Return currently selected channel (or null). |
| channel_selectC | Select channel (exclusive=True deselects others). |
| channel_set_volumeB | Set channel volume (0.0..1.0, where 0.78 ≈ 0 dB). |
| channel_set_panB | Set channel pan (-1.0..1.0). |
| channel_set_pitchB | Set channel pitch offset in semitones (-120..120). |
| channel_muteB | Mute / unmute / toggle (None = toggle). |
| channel_soloC | Solo / unsolo / toggle (None = toggle). |
| channel_set_nameB | Rename a channel. |
| channel_set_colorA | Set channel color. Accepts '#RRGGBB' or 'rgb(r,g,b)'. |
| channel_route_to_mixerC | Route a channel to a given mixer insert track. |
| channel_trigger_noteB | Trigger a one-shot MIDI note on the channel (live preview, not recorded). |
| channel_get_grid_bitA | Read a single step-sequencer bit (position is 0-based step within the pattern). |
| channel_set_grid_bitC | Set a single step-sequencer bit. |
| channel_get_step_sequenceA | Read the full step sequence for a channel (optionally for a specific pattern). |
| channel_set_step_sequenceC | Overwrite step sequence. |
| channel_clear_step_sequenceC | Clear all step-sequencer bits for the channel (in the current or specified pattern). |
| channel_quick_quantizeC | Quantize the channel's notes in the current pattern. |
| mixer_countA | Number of mixer tracks (incl master @ index 0). |
| mixer_track_infoB | Detailed info on a mixer track (name, vol, pan, mute, solo, arm, color, stereosep, sends, fx slots). |
| mixer_all_tracksD | List of all mixer tracks. |
| mixer_set_volumeB | Set mixer track volume (0.0..1.0). |
| mixer_set_panA | Set mixer track pan (-1.0..1.0). |
| mixer_muteA | Mute / unmute / toggle (None = toggle). |
| mixer_soloC | Solo / unsolo / toggle. |
| mixer_armC | Arm track for recording. |
| mixer_set_nameB | Rename a mixer track. |
| mixer_set_colorB | Set mixer track color ('#RRGGBB' or 'rgb(r,g,b)'). |
| mixer_set_stereo_separationA | Set mixer track stereo separation (-1.0..1.0). |
| mixer_set_send_levelB | Set send level from one mixer track to another (0..1). |
| mixer_routeB | Enable or disable a mixer route (send) between two tracks. |
| mixer_fx_slotsA | List plugin IDs in the 10 FX slots of a mixer track (-1 = empty). |
| mixer_selectC | Focus / select a mixer track. |
| mixer_get_eqB | Return 3-band mixer EQ (gains + frequencies). |
| mixer_set_eq_bandA | Set one band of the mixer EQ. band=0|1|2 (low/mid/high). gain -1..1, freq 0..1 (normalised). |
| mixer_link_to_channelC | Link a channel to a mixer track. mode='replace'|'add'. |
| plugin_is_validC | Check if a plugin slot has a valid plugin loaded. |
| plugin_nameD | Plugin display name. |
| plugin_param_countC | Return number of automatable parameters. |
| plugin_paramsC | List parameters (paginated): [{idx, name, value, value_string}]. |
| plugin_get_paramC | Get value of a single parameter. |
| plugin_set_paramC | Set a single parameter (0.0..1.0 normalised). |
| plugin_find_paramC | Find a parameter by substring (case-insensitive). |
| plugin_preset_countC | Number of built-in presets for plugin. |
| plugin_next_presetD | Advance to the next preset. |
| plugin_prev_presetC | Go back to the previous preset. |
| plugin_set_presetC | Load preset by numeric index. |
| plugin_show_editorC | Show/hide the plugin editor window (None = toggle). |
| plugin_list_mixer_trackA | List all loaded plugins in every FX slot of a mixer track. |
| playlist_track_countC | Playlist track count. |
| playlist_track_infoC | Info on a playlist track: name, color, mute, solo, height, group. |
| playlist_all_tracksC | List of all playlist tracks. |
| playlist_set_track_nameC | Rename a playlist track. |
| playlist_set_track_colorB | Set playlist track color ('#RRGGBB'). |
| playlist_mute_trackC | Mute/unmute a playlist track. |
| playlist_solo_trackC | Solo a playlist track. |
| playlist_list_clipsA | List all clips in the playlist (optionally filter to one track). |
| playlist_place_patternC | Place a pattern clip on a playlist track at a given bar position. |
| playlist_delete_clipB | Delete the clip on a track starting at the given bar position. |
| playlist_refreshA | Force playlist repaint (use after bulk edits). |
| playlist_list_markersA | Return all timeline markers: [{pos_bars, name, mode}]. |
| playlist_add_markerC | Add a playlist marker. |
| playlist_delete_markerC | Remove a playlist marker by index. |
| arrangement_currentA | Return current arrangement index + name. |
| arrangement_listA | List all arrangements. |
| arrangement_selectC | Switch to a different arrangement. |
| arrangement_jump_markerA | Jump playhead to next (+1) or previous (-1) marker within current arrangement. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| status | Bridge + transport quick status. |
| project | Full project metadata: tempo, signature, channels, mixer, patterns, selection. |
| transport | Live transport state (is_playing, position, tempo, loop mode). |
| channels | Full channel rack as JSON. |
| mixer | All mixer tracks as JSON. |
| patterns | All patterns in the project. |
| playlist | Playlist tracks + clips. |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Boyan253/fl-studio-2025-ai-bridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server