fl-bridge-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| fl_statusA | Connection status (port, controller, scripts, FL running) with setup hints; reconnect=True forces a re-probe. |
| fl_execA | Run Python inside FL Studio. Pre-imported: channels, mixer, plugins, transport, patterns, playlist,
arrangement, general, ui, device, midi, utils. Set |
| fl_api_listC | List functions of an FL scripting module (empty = counts for all). Docs: docs/fl-api-reference.md. |
| fl_project_stateA | Full project snapshot: title, tempo, time signature, transport, unsaved flag, channels, used mixer tracks with effects, patterns, markers. Call this first. |
| fl_save_projectA | Save the project to its .flp (Ctrl+S via FL's transport command; an unsaved new project opens FL's Save dialog). |
| fl_project_setA | Set tempo (BPM) and/or time signature. |
| fl_undoA | Undo N steps (negative = redo). save_point="name" instead creates a named undo point. FL applies undo with a short delay. |
| fl_markersA | List arrangement markers; optionally add one at a bar (add_name + add_bar) or jump the playhead by
|
| fl_transport_commandC | Fire any FL global transport command by FPT name: Save, SaveNew, Metronome, Loop, LoopRecord, Overdub, Snap, StepEdit, TapTempo, AddMarker, Punch, CountDown, NextWindow, Escape, Enter, F1..F12, Undo... |
| fl_capture_played_notesC | Write the MIDI notes played live in the last N seconds into the selected pattern (dump score log). |
| fl_transportB | Transport control and status. action: play | pause | stop | record_on | record_off. loop_mode: song | pattern. speed: playback multiplier (1.0 normal). Call with no arguments for status only. |
| fl_goto_barA | Move the playhead to a bar (1-based) or by delta_bars. FL applies it asynchronously; fl_transport confirms. |
| fl_get_levelsB | Play for |
| fl_channelsA | List channels: index, name, type, colour, volume, pan, pitch, mute, solo, selected, mixer track, plugin, MIDI port. |
| fl_channel_setA | Edit a channel: volume 0-1 (0.8 = 0 dB), pan -1..1, pitch -1..1, colour 0xRRGGBB/'#rrggbb', select exclusively. |
| fl_channel_stepsB | Read or write a channel's step grid in a pattern. steps: list of booleans (16 per bar). fill_every=N fills
every Nth step instead. Omit both to read |
| fl_channel_step_paramsC | Per-step values (melodic step sequencer): steps=[{step, pitch?, velocity?, pan?, release?, shift?, fine_pitch?, mod_x?, mod_y?}]; pitch = MIDI note, velocity/pan/shift 0-127, fine_pitch 0-240. Turns the step on. |
| fl_channel_auditionC | Play a note on a channel now (preview only, not recorded). |
| fl_channel_windowB | Open/close a channel's plugin window (kind=plugin) or channel settings (kind=settings). |
| fl_channel_toolsC | Utilities: quick-quantize the channel's notes; set its per-pattern step loop point (0 = off); flash a highlight around it in the channel rack. |
| fl_mixer_tracksB | List mixer tracks (named/used by default) with levels, mute/solo/arm, effects; plus master/selected indexes. |
| fl_mixer_track_setA | Edit a mixer track: volume 0-1 (0.8 = 0 dB), pan/stereo_separation -1..1, colour, mute/solo/arm, select, enable, bypass all slots, lock mute, polarity, swap L/R. |
| fl_mixer_sendA | Route a track into another (send/bus) at level 0-1, disable a route, or list a track's routes (omit dest_track). |
| fl_mixer_eqA | Built-in 3-band track EQ: band 0/1/2 = low/mid/high; values 0-1 (gain 0.5 = 0 dB). Omit values to read. |
| fl_mixer_effectA | List a track's effect slots (omit slot) or edit one: dry/wet mix 0-1, mute, slot colour, focus its window. |
| fl_plugin_infoC | Plugin at a channel (slot -1) or mixer track+slot: name, preset, param/preset counts, pad count. |
| fl_plugin_paramsA | List plugin parameters (index, name, normalised value, display string); filter by substring, page with offset. |
| fl_plugin_set_paramsC | Set plugin parameters: values = {"": 0-1, ...}. |
| fl_plugin_presetA | Step to the next/previous preset (one step per call; FL loads it asynchronously and renames the channel). |
| fl_plugin_padsC | Drum pad info (FPC etc.): semitone and colour per pad. |
| fl_paramD | – |
| fl_param_scanC | Discover named automatable parameters of a channel, mixer track, effect slot or global (offset, name, value, display). Address results later as raw_ or target id. |
| fl_channel_fxB | Channel settings knobs (arpeggiator, filter, echo delay time), normalised 0-1; omitted ones are read back. |
| fl_masterA | Master volume, master pitch (0.5 = none) and global shuffle, normalised 0-1; omitted ones are read. Also reports the last-tweaked parameter. |
| fl_patternsA | List patterns (1-based): name, length in beats, colour, selected; groups; current pattern. |
| fl_pattern_createC | Create an empty pattern (no name prompt) or clone an existing one (clone_of), then name/size/colour it. |
| fl_pattern_setB | Edit a pattern: rename, resize (beats, 0 = auto), recolour, make current, clear all step-sequencer steps (FL's clearPattern opens a dialog, so steps only; notes via fl_notes_edit), bake per-channel loops. |
| fl_playlist_tracksC | List playlist tracks (1-based): name, colour, mute, solo, selected, activity; time selection; performance mode. |
| fl_playlist_track_setB | Edit a playlist track: rename, colour, mute, solo, select, lock mute; scroll the playlist to a bar. |
| fl_playlist_liveC | Performance mode: read a track's live blocks/modes, or trigger/stop a block. |
| fl_windowA | Show/hide/focus an FL window (mixer, channel_rack, playlist, piano_roll, browser, plugin_picker...). Omit window to list visibility/focus of all. |
| fl_ui_actionA | Send an action to the focused FL window through the API (no OS keyboard): enter, escape, yes, no, delete, insert, copy, cut, paste, up, down, left, right, next, previous, next_window, close_popup, close_all_windows, zoom_h, zoom_v (value = delta). Optionally focus a window first. |
| fl_optionsA | Read/set global options: snap mode (line, cell, none, step, half_step, beat, bar, events, markers...), snap on/off, step-edit mode, time display, step-sequencer swing 0-1; also reports metronome/precount/loop-record. |
| fl_hintB | Show a message in FL Studio's hint bar. |
| fl_open_event_editorB | Open the automation (event) editor for a channel parameter: volume, pan, pitch, filter_cut, filter_res, or p. |
| fl_send_cc_to_pluginB | Forward a MIDI CC to the focused plugin window (for plugins that learn/respond to CCs). |
| fl_browserA | Walk FL's Browser: list children of a folder path (empty = root), or with load=True activate the last item (a plugin under Plugin database opens in a new channel; a sample loads into the selected channel). preview=True auditions the current item. Reports 'stuck' when FL's browser selection does not move. |
| fl_notes_addB | Queue notes for the open piano roll: [{midi, time, duration, velocity?, pan?, color?, slide?, porta?, fcut?, fres?, pitchofs?}] (beats; velocity 0-1). Applied by the FL Bridge Notes script; auto_trigger presses its hotkey only when FL Studio is already the active window. |
| fl_notes_editC | Queue piano roll edits: clear | delete{notes:[{midi,time}]} | delete_where{filter} | set{filter,props} | transpose{filter,semitones} | shift{filter,beats} | scale_length{filter,factor} | quantize{filter,grid,strength,lengths} | humanize{filter,time,velocity,seed} | legato{filter,gap} | select{filter,selected} | markers{markers:[{time,name, kind?:time_signature|scale,tsnum,tsden,scale_root,scale_helper}]} | clear_markers. filter: midi_min/max, time_min/max, velocity_min/max, color, selected, muted. |
| fl_notes_markerB | Queue a piano roll marker: kind=scale (root + scale name, highlights in-scale keys) or kind=time_signature. |
| fl_notes_stateB | Last exported piano roll state (notes, markers, time signature, timeline selection) plus pending operations. |
| fl_write_midi_fileA | Write a multi-track MIDI file; dragging it into FL creates one channel per track (GM sound) with markers. tracks: [{name, channel 0-15 (9 = drums), program 0-127, notes: [{midi, time, duration, velocity}]}]; markers: [{time, text}]. Times in beats. |
| fl_music_theoryB | Music theory lookup: notes of a scale (scale_root + scale; modes, pentatonics, Indian thaats bhairavi, bhairav, kafi, yaman, khamaj, asavari), notes of a chord symbol (Dm, Bbmaj7, A7, C/E), or the name of a MIDI note. |
| fl_music_progressionC | Chord progression -> note list for fl_notes_add or fl_write_midi_file. style: block | arpeggio_8 | arpeggio_16 | broken; adds a root bass line when bass_octave is set. |
| fl_music_drumsA | Built-in drum patterns (keherwa, keherwa_dholak, dadra, bhangra, four_on_floor, trap, boom_bap, reggaeton) or custom JSON {"voice": "x..x"}; with channel_map {voice: channel index} writes them into the step sequencer. No arguments = list patterns. |
| fl_edison_scriptC | Install an Edison audio script (Settings/Audio scripts/FL Bridge/.pyscript) from a template (normalize, gain, reverse, trim_to_selection, tone, fade, regions_every_beat) or raw enveditor code; run it in Edison via Tools > Scripts. No name = list templates. open_on_track opens Edison on that mixer track. |
| fl_internalC | No arguments: which internal FL modules import from the controller context (flrack = add channels/load assets). With module (+ name): signature, docstring and members for use through fl_exec. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| fl_status_check | Check the FL Studio connection and explain any setup step needed. |
| fl_build_track | Compose a full backing track for a description (genre, mood, key, tempo). |
| fl_mix_check | Analyse the current mix: levels, routing, muted or silent tracks, and fix obvious issues. |
| fl_arrange_chords | Turn a chord progression into piano roll notes or a MIDI file. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| status_resource |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/MadBlast0/Fl-Studio-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server