Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

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

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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 result to return a value; print() goes to output. Avoid time.sleep and looping plugins.nextPreset; pass midi.FFNEP_DontPromptName to findFirstNextEmptyPat.

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 jump markers (+1 next, -1 previous).

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 seconds (0 = sample instantly without starting playback) and report mixer peaks and channel activity. The reliable way to confirm instruments make sound.

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 count steps.

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

NameDescription
fl_status_checkCheck the FL Studio connection and explain any setup step needed.
fl_build_trackCompose a full backing track for a description (genre, mood, key, tempo).
fl_mix_checkAnalyse the current mix: levels, routing, muted or silent tracks, and fix obvious issues.
fl_arrange_chordsTurn a chord progression into piano roll notes or a MIDI file.

Resources

Contextual data attached and managed by the client

NameDescription
status_resource

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/MadBlast0/Fl-Studio-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server