PostFader V10 — FL Studio MCP Server
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| fl_get_capabilitiesA | Report direct, partial, unavailable, and unvalidated integration paths. |
| fl_get_project_summaryA | Read project metadata, counts, dirty state, version, and transport state. |
| fl_get_transport_stateA | Read playback, recording, loop mode, position, and song length. |
| fl_get_selected_rangeC | Read raw endpoints and PPQ without claiming meter or rendering semantics. |
| fl_list_mixer_tracksA | List mixer tracks, current levels, selection state, and loaded effects. |
| fl_inspect_mixer_trackA | Read one track's state, effects, built-in EQ, and outgoing routes. |
| plugins_scan_loaded_pluginsA | Inventory loaded plug-ins without inserting or changing anything. |
| plugins_inspect_parameter_mapA | Read a bounded page of exposed parameters; never marks unknown controls safe. |
| plugins_scan_parametersA | De-pad a whole plug-in in one call; prefer this over paging a VST. |
| plugins_atlas_searchB | Search bundled static plug-in knowledge without contacting FL Studio. |
| plugins_atlas_get_productB | Read one static Atlas product and its related descriptive records. |
| plugins_atlas_recommendB | Rank static plug-in choices or stock alternatives without changing FL. |
| plugins_atlas_inspect_loadedC | Match the target-aware live Track B inventory to static Atlas knowledge. |
| copilot_capture_readonly_inspectionB | Capture a compact project, mixer, and effect inspection report. |
| fl_set_write_modeA | Enable or disable writes for this bridge session without restarting FL. |
| fl_set_mixer_volumeA | Set one mixer fader and report the readback FL gave on a later tick. |
| fl_set_mixer_volume_dbC | Search FL's fader curve and prove the requested dB value on a later tick. |
| fl_set_mixer_panA | Set one mixer pan and report the readback FL gave on a later tick. |
| fl_set_mixer_muteA | Set one track's mute state and report the readback FL gave on a later tick. |
| fl_set_mixer_soloB | Set one mixer track's solo state and verify it on a later FL tick. |
| fl_set_mixer_armA | Set recording arm with one bounded toggle and later-tick readback. |
| fl_set_mixer_colorA | Set a mixer color, accepting FL-owned differences in the high byte. |
| fl_set_mixer_stereo_separationA | Set stereo separation and report FL's later-tick readback. |
| fl_select_mixer_trackB | Make one mixer track active and verify the active-track getter. |
| fl_set_track_eqA | Set gain and/or frequency on one built-in EQ band; at least one is required. |
| fl_set_mixer_nameA | Rename one mixer track. |
| fl_set_mixer_sendA | Route one mixer track to another, or stop routing it there. |
| fl_set_mixer_send_levelA | Set how much of one track reaches another. 0.8 is unity, as on the fader. |
| fl_set_plugin_param_displayA | Set a plug-in parameter using the units it displays, not a 0..1 guess. |
| fl_set_plugin_param_optionA | Set a parameter that shows words rather than numbers: Key, Scale, Input Type. |
| fl_set_plugin_paramA | Set one plug-in parameter; verified from FL's display string changing. |
| fl_apply_verified_batchB | Apply a closed-union batch after one session preflight, without replay. |
| fl_set_playingA | Set playback to an absolute state and verify it on a later FL idle tick. |
| fl_stopA | Stop playback, set normalized position to zero, and verify both fields. |
| fl_set_song_positionA | Set a stopped transport's absolute normalized playhead position. |
| fl_set_loop_modeA | Set Pattern or Song loop mode without exposing FL's toggle-only API. |
| fl_set_tempoA | Set project tempo while stopped and verify BPM on a later FL idle tick. |
| fl_set_recordingA | Set recording absolutely; FL's toggle is dispatched at most once. |
| fl_set_metronomeB | Set the metronome absolutely and prove the later UI state. |
| fl_set_precountA | Set recording precount absolutely and verify it on a later FL tick. |
| fl_set_time_signature_numeratorA | Set and prove beats per bar from FL's PPB/PPQ getter pair. |
| fl_get_project_historyA | Read undo/redo bounds, current history position, hint, and dirty state. |
| fl_undoA | Move to the previous absolute undo-history position and verify it. |
| fl_redoA | Move to the next absolute undo-history position and verify it. |
| fl_get_plugin_preset_countA | Read FL's authoritative preset count for one loaded plug-in. |
| plugins_list_presetsA | Read one deterministic preset page without changing the plug-in. |
| plugins_get_current_presetB | Read FL's current preset name and an index only when it is unique. |
| plugins_inspect_pad_mapA | Read generic pad, MIDI-note, color, empty, and mute observations. |
| fl_select_plugin_presetC | Navigate to an exact preset and require later-idle-tick identity readback. |
| fl_list_channelsA | List globally addressed channels, mix state, routing, and generator identity. |
| fl_list_patternsA | List pattern identity, length, current state, and empty/default status. |
| fl_find_empty_patternA | Find the first default-empty pattern without changing the current pattern. |
| fl_select_patternA | Select one pattern and verify FL's current-pattern getter. |
| fl_set_pattern_identityA | Set pattern name and/or color with per-field later-tick proof. |
| fl_set_pattern_lengthB | Set pattern length using Image-Line's API 39+ getter/setter pair. |
| fl_list_playlist_tracksA | List every one-based Playlist track and its controllable state. |
| fl_set_playlist_track_identityB | Set Playlist name and/or color with per-field later-tick proof. |
| fl_set_playlist_track_stateB | Set Playlist states; toggle-only selection is dispatched at most once. |
| fl_set_channel_mixA | Set channel volume, pan, and/or mute with per-field readback proof. |
| fl_set_channel_soloA | Set a global channel solo state and verify it on a later FL tick. |
| fl_set_channel_pitchA | Set normalized channel pitch and report normalized/semitone readback. |
| fl_select_channelB | Select one global channel exclusively and verify the complete selection. |
| fl_set_channel_identityA | Set a channel's name and/or color with per-field readback proof. |
| fl_route_channel_to_mixerB | Set one global channel's absolute mixer destination and verify it. |
| fl_get_step_sequenceB | Read an explicit current-pattern/channel grid and its conflict digest. |
| fl_set_step_sequenceA | Set absolute current-pattern cells only if the observed grid digest still matches. |
| fl_trigger_noteB | Audition a global channel with a bounded note-on/off dispatch receipt. |
| audio_analyze_fileA | Measure level, spectrum, dynamics, stereo, and optional pitch of one render. |
| audio_compare_filesB | Measure band deltas over the aligned, loudness-matched common overlap. |
| audio_analyze_maskingA | Measure per-band spectral overlap and vocal-minus-instrument level margins. |
| audio_find_recent_bouncesA | List the newest audio files in FL Studio's Rendered, Audio, and Projects folders. |
| mix_doctorA | Diagnose a real bounce with explicit policy thresholds and no mutation. |
| mix_reference_recommendationsA | Return bounded tonal review ranges only when alignment/readiness passes. |
| mix_masking_recommendationsA | Recommend bounded dynamic remediation from sample-synchronous stems. |
| mix_start_peak_watchB | Start a process-persistent sampled peak watch and return its first frame. |
| mix_get_peak_watchA | Read cumulative sampled peaks without stopping the watch. |
| mix_stop_peak_watchA | Stop one process-local watch and return its final aggregate. |
| mix_create_gain_stage_planA | Create, but do not apply, dB-fader changes from a peak watch. |
| mix_list_plugin_profilesB | List bundled parameter-role adapters and processing recipes. |
| mix_inspect_plugin_compatibilityA | Report which loaded effects have known parameter-role adapters. |
| mix_resolve_processing_intentA | Map an intent to loaded profiled controls without applying settings. |
| mix_create_planC | Store a session-bound closed-union plan; no project value changes. |
| mix_get_planB | Read one process-local reviewable plan. |
| mix_apply_planB | Apply a plan once through the verified batch kernel. |
| mix_finish_assessmentB | Run the end-to-end read-only finish assessment and stop at user export. |
| sound_selection_inventoryB | Read a compact loaded sound pool; Atlas-only products remain recommendations. |
| sound_selection_planA | Choose deterministic loaded-target assignments without changing FL or history. |
| sound_selection_getA | Look up one process-local palette without treating expiry as a server error. |
| sound_selection_create_variationC | Return a section delta instead of replacing the existing palette. |
| sound_selection_applyB | Apply exact presets in deterministic order and stop on unknown or unverified outcomes. |
| sound_selection_record_feedbackC | Update bounded local ranking feedback; silence is never inferred. |
| sound_selection_history_statusA | Report the local history path, health, schema, and bounded record counts. |
| sound_selection_history_resetA | Explicitly remove bounded local selection history; project state is unchanged. |
| postfader_creation_readinessB | Aggregate all detectable setup blockers without changing FL Studio. |
| processing_planA | Plan loaded-effect processing without enabling writes or mutating FL. |
| processing_apply_planA | Apply a semantic plan through one task-scoped verified Production Run. |
| postfader_validate_runA | Validate a bounded Production Run and current capabilities without changing FL. |
| postfader_execute_runA | Create and execute one task-scoped run until its plan completes or blocks. |
| postfader_list_runsA | Find recent runs after an MCP restart without executing any operations. |
| postfader_get_runA | Read a current or journaled run, its generated outputs and operation receipts. |
| postfader_continue_runA | Continue or replace only a run's unexecuted remainder after a follow-up. |
| postfader_stop_runA | Stop future run operations without undoing completed project changes. |
| postfader_review_startA | Start a bounded Review Session from one completed Production Run. |
| postfader_review_attach_assetsA | Validate and attach explicit audio assets without changing FL Studio. |
| postfader_review_evaluateA | Measure one bounce globally and by known section; apply zero FL mutations. |
| postfader_review_getA | Read a Review Session, retained evidence, status, and exact next action. |
| postfader_review_compareA | Compare before and after bounces without implying producer approval. |
| postfader_review_plan_revisionA | Compile and validate one bounded RevisionPlan before any project mutation. |
| postfader_delivery_manifestA | Build the final multi-dimensional delivery view without writing a file. |
| postfader_review_export_handoffB | Return one precise full-mix export request and only necessary stems. |
| postfader_review_apply_revisionA | Apply one bounded revision with one preflight and one write authorization. |
| postfader_review_record_feedbackA | Record explicit feedback; silence and measurements never grant approval. |
| postfader_review_stopA | Stop future review work without undoing completed project changes. |
| postfader_review_deleteA | Delete one Review Session record without touching audio or the FL project. |
| postfader_delivery_export_manifestA | Create local delivery files without overwriting or saving the FL project. |
| plugins_list_availableA | Read the native Add menu on macOS; opens/closes the menu and changes focus. Reports exact loadable favorite names and instrument/effect kinds. This is menu availability, not proof of licensing or an exhaustive installed scan. |
| plugins_loadA | Load one macOS Add-menu plugin, then identify its new channel or effect slot. |
| piano_roll_bridgeC | Manage the one-time-per-process arm for FL's separate Piano Roll script runtime. |
| piano_roll_read_notesA | Open a score and read notes without changing notes or enabling musical writes. |
| postfader_render_saved_projectA | Start FL's command-line WAV exporter in a separate process; saved state only. |
| postfader_render_get_jobB | Get render progress and decoded WAV evidence; completed also requires FL exit. |
| postfader_render_cancelB | Cancel monitoring and its owned process; on macOS the renderer may remain open. |
| piano_roll_write_notesC | Generate a typed Piano Roll script, select its target, and report hotkey dispatch honestly. |
| piano_roll_transformB | Quantize, transpose, humanize, duplicate, delete, or clear selected/all notes. |
| compose_chord_progressionA | Generate voice-led triads/sevenths without changing FL. |
| compose_melodyA | Generate a bounded scale-aware melody without changing FL. |
| compose_basslineA | Generate a bounded bass part from Roman harmony without changing FL. |
| compose_drumsA | Generate mapped kick/snare/hat patterns without changing FL. |
| midi_export_type1B | Write a standard Type-1 file, reopen it, parse it, and verify its digest/events. |
| audio_estimate_tempo_and_keyA | Estimate periodic tempo and global major/minor key with ranked ambiguity. |
| audio_transcribe_melodyB | Extract a reviewable note sequence from monophonic audio; it does not mutate FL. |
| arrangement_prepare_patternB | Find an FL-reported empty pattern, select it, name/color it, and set length. |
| arrangement_add_section_markersA | Add bar/beat section markers; name readback is available, marker-time readback is not. |
| automation_record_valueB | Dispatch one REC_MIDIController value while playback and recording are active. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| fl-capabilities | Live verified capability report for the connected FL Studio bridge. |
| fl-status | Compact live connection, project, transport, and write-mode context. |
| fl-project | Live typed summary of the currently open FL Studio project. |
| fl-transport | Live playback, recording, loop, position, and tempo state. |
| fl-mixer | Live bounded mixer-track inventory without instantaneous peaks. |
| fl-channels | Live global Channel Rack inventory with stable target identities. |
| fl-patterns | Live pattern inventory, current selection, identity, and length. |
| fl-plugins | Live inventory of loaded mixer effects and Channel Rack generators. |
TDQS
Scored across 134 tools
Many tools have clear distinct purposes, but there are overlapping tools such as fl_set_plugin_param, fl_set_plugin_param_display, fl_set_plugin_param_option, and fl_apply_verified_batch that may be confused. The postfader_* and mix_* groups also have many similar verbs (create, apply, plan) but are differentiated by domain prefixes.
Most tools follow a consistent verb_noun or domain_verb_noun pattern (e.g., fl_set_mixer_volume, mix_create_plan). There are minor deviations like 'piano_roll_bridge' (noun_verb) and 'copilot_capture_readonly_inspection' (prefix_verb_adj_noun) but overall the pattern is predictable.
The server has 134 tools, which is far beyond the typical well-scoped range. While the server covers multiple domains (FL Studio control, audio analysis, composition, rendering), the sheer number suggests insufficient consolidation and will likely overwhelm agents.
The server covers a wide range of workflows including project state, mixer control, plugin management, composition, audio analysis, and deliverable export. There are some potential gaps like missing explicit delete for certain entities (e.g., no fl_delete_channel or fl_delete_playlist_track), but the lifecycle coverage is generally strong given the domain breadth.