{"name":"io.github.synopsys0/postfader-fl-studio-mcp","slug":"synopsys0-postfader-fl-studio-mcp","title":"PostFader","description":"FL Studio MCP server: read, mix, compose, and edit your open FL Studio project from any MCP client.","url":"https://mcp.market/server/synopsys0-postfader-fl-studio-mcp","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":34,"stars":7,"forks":1,"downloads_week":119,"last_push_at":"2026-10-14T03:57:56.000Z","license":"Apache-2.0"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/synopsys0/postfader-fl-studio-mcp","website":null,"version":"12.0.3","remotes":[],"packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"postfader-fl-studio-mcp","version":"12.0.3","transport":{"type":"stdio"},"environmentVariables":[{"description":"Set to 1 to build the MIDI SysEx transport. Without it the server cannot reach FL Studio.","isRequired":true,"default":"1","name":"FL_BRIDGE_ENABLE_MIDI"},{"description":"Exact virtual MIDI endpoint name shared with FL Studio. PostFader does not install or configure a virtual MIDI provider.","isRequired":true,"name":"FL_BRIDGE_MIDI_PORT"},{"description":"Absolute FL Studio user-data directory containing Settings/Hardware.","isRequired":true,"name":"FL_STUDIO_USER_DATA_DIR"}]}],"tools":[{"name":"atlas_get_product","description":"Read one Plugin Atlas product: vendor, controls, adapters, and alternatives.","write_action":false,"price_micros":0,"input_schema":null},{"name":"atlas_match_loaded","description":"Identify the open project's loaded plug-ins against Plugin Atlas.","write_action":false,"price_micros":0,"input_schema":null},{"name":"atlas_recommend","description":"Rank Plugin Atlas products for a production problem or technique.","write_action":false,"price_micros":0,"input_schema":null},{"name":"atlas_search","description":"Search the bundled offline Plugin Atlas for products by text and filters.","write_action":false,"price_micros":0,"input_schema":null},{"name":"audio_analyze_file","description":"Measure one rendered file's loudness, peaks, spectrum, dynamics, and stereo image.","write_action":false,"price_micros":0,"input_schema":null},{"name":"audio_analyze_masking","description":"Measure where an instrumental masks a vocal and suggest remedies.","write_action":false,"price_micros":0,"input_schema":null},{"name":"audio_compare_files","description":"Compare a candidate render with a reference and suggest tonal adjustments.","write_action":false,"price_micros":0,"input_schema":null},{"name":"audio_diagnose_mix","description":"Diagnose a rendered mix against technical thresholds for a delivery target.","write_action":false,"price_micros":0,"input_schema":null},{"name":"audio_estimate_tempo_and_key","description":"Estimate a file's tempo and major/minor key, with ranked alternatives.","write_action":false,"price_micros":0,"input_schema":null},{"name":"audio_list_recent_bounces","description":"List the newest audio files in FL Studio's Rendered, Audio, and Projects folders.","write_action":false,"price_micros":0,"input_schema":null},{"name":"audio_transcribe_melody","description":"Transcribe a monophonic recording (a sung or played line) into notes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"automation_record_value","description":"Record one automation value into FL while playback and recording run.","write_action":false,"price_micros":0,"input_schema":null},{"name":"channel_get_steps","description":"Read one channel's step-sequencer grid in the current pattern.","write_action":false,"price_micros":0,"input_schema":null},{"name":"channel_list","description":"List every Channel Rack channel with its mix, routing, and generator.","write_action":false,"price_micros":0,"input_schema":null},{"name":"channel_play_note","description":"Play one short note on a channel so the user can hear the sound.","write_action":false,"price_micros":0,"input_schema":null},{"name":"channel_set","description":"Change any combination of one Channel Rack channel's settings in one call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"channel_set_steps","description":"Turn step-sequencer cells on or off for one channel in the current pattern.","write_action":false,"price_micros":0,"input_schema":null},{"name":"compose_bassline","description":"Generate a bass part that follows a Roman-numeral progression, without touching FL.","write_action":false,"price_micros":0,"input_schema":null},{"name":"compose_chord_progression","description":"Generate voice-led chords from Roman numerals in a key, without touching FL.","write_action":false,"price_micros":0,"input_schema":null},{"name":"compose_drums","description":"Generate kick, snare, and hat patterns in a style, without touching FL.","write_action":false,"price_micros":0,"input_schema":null},{"name":"compose_export_midi","description":"Write note sequences to a standard Type-1 MIDI file and verify it.","write_action":true,"price_micros":0,"input_schema":null},{"name":"compose_melody","description":"Generate a scale-aware melody within a register, without touching FL.","write_action":false,"price_micros":0,"input_schema":null},{"name":"mixer_get_peak_watch","description":"Read a peak watch's status and cumulative per-track peaks so far.","write_action":false,"price_micros":0,"input_schema":null},{"name":"mixer_get_track","description":"Read one mixer track's full state: level, pan, effects, EQ, and sends.","write_action":false,"price_micros":0,"input_schema":null},{"name":"mixer_list_tracks","description":"List mixer tracks with names, levels, mute/solo state, and loaded effects.","write_action":false,"price_micros":0,"input_schema":null},{"name":"mixer_plan_gain_staging","description":"Propose dB fader moves that bring each watched track to a target peak.","write_action":false,"price_micros":0,"input_schema":null},{"name":"mixer_set_track","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"mixer_start_peak_watch","description":"Start sampling mixer peak meters while the user plays the song.","write_action":false,"price_micros":0,"input_schema":null},{"name":"mixer_stop_peak_watch","description":"Stop a peak watch early and return its final per-track aggregate.","write_action":false,"price_micros":0,"input_schema":null},{"name":"pattern_create","description":"Create a pattern: find the first empty one, select it, name it, and size it.","write_action":true,"price_micros":0,"input_schema":null},{"name":"pattern_list","description":"List the project's patterns with name, color, length, and which is current.","write_action":false,"price_micros":0,"input_schema":null},{"name":"pattern_set","description":"Rename, recolor, resize, or select one existing pattern in one call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"piano_roll_read_notes","description":"Read the notes of one channel in one pattern: pitch, timing, and expression.","write_action":false,"price_micros":0,"input_schema":null},{"name":"piano_roll_setup","description":"Prepare the one-time Piano Roll scripting setup that note tools need.","write_action":false,"price_micros":0,"input_schema":null},{"name":"piano_roll_transform_notes","description":"Quantize, transpose, humanize, duplicate, delete, or clear existing notes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"piano_roll_write_notes","description":"Write notes into one channel's Piano Roll score in a pattern.","write_action":true,"price_micros":0,"input_schema":null},{"name":"playlist_add_markers","description":"Add named section markers (Intro, Verse, Drop) to the Playlist timeline.","write_action":false,"price_micros":0,"input_schema":null},{"name":"playlist_get_selection","description":"Read the Playlist's current time selection and the project PPQ.","write_action":false,"price_micros":0,"input_schema":null},{"name":"playlist_list_tracks","description":"List every Playlist track with its name, color, and mute/solo/selection.","write_action":false,"price_micros":0,"input_schema":null},{"name":"playlist_set_track","description":"Rename, recolor, mute, solo, or select one Playlist track in one call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"plugin_get_pad_map","description":"Read an instrument's drum pads: MIDI note, color, and empty/muted state.","write_action":false,"price_micros":0,"input_schema":null},{"name":"plugin_list_available","description":"List the instruments and effects in FL's native Add menu (macOS only).","write_action":false,"price_micros":0,"input_schema":null},{"name":"plugin_list_loaded","description":"List every loaded mixer effect and Channel Rack instrument as a target.","write_action":false,"price_micros":0,"input_schema":null},{"name":"plugin_list_parameters","description":"List a loaded plug-in's real controls with their current values and text.","write_action":false,"price_micros":0,"input_schema":null},{"name":"plugin_list_presets","description":"Read a page of a loaded plug-in's preset names, its preset count, and current preset.","write_action":false,"price_micros":0,"input_schema":null},{"name":"plugin_load","description":"Add one instrument (new channel) or mixer effect from FL's Add menu (macOS).","write_action":false,"price_micros":0,"input_schema":null},{"name":"plugin_select_preset","description":"Load a known preset on one mixer effect or Channel Rack instrument.","write_action":false,"price_micros":0,"input_schema":null},{"name":"plugin_set_parameter","description":"Set one plug-in parameter by display value, option text, or raw 0..1 value.","write_action":false,"price_micros":0,"input_schema":null},{"name":"processing_apply","description":"Apply the plan returned by processing_plan to the loaded effects.","write_action":false,"price_micros":0,"input_schema":null},{"name":"processing_plan","description":"Turn processing goals into concrete settings for effects that are loaded.","write_action":false,"price_micros":0,"input_schema":null},{"name":"project_apply_edits","description":"Apply edits you have already decided, across several targets, in one call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"project_get_history","description":"Read FL's undo history: position, count, next undo hint, and dirty state.","write_action":false,"price_micros":0,"input_schema":null},{"name":"project_get_summary","description":"Read the open project's metadata, counts, dirty state, and transport.","write_action":false,"price_micros":0,"input_schema":null},{"name":"project_step_history","description":"Undo or redo one step of FL Studio's project history and verify the move.","write_action":false,"price_micros":0,"input_schema":null},{"name":"render_cancel_job","description":"Cancel a render job: stop monitoring it and the process it started.","write_action":true,"price_micros":0,"input_schema":null},{"name":"render_get_job","description":"Read a render job's status and, once ready, its decoded WAV details.","write_action":false,"price_micros":0,"input_schema":null},{"name":"render_start_job","description":"Render a saved .flp to a WAV with FL's command-line exporter, as a background job.","write_action":false,"price_micros":0,"input_schema":null},{"name":"review_apply_revision","description":"Apply the revision plan returned by review_plan_revision to the project.","write_action":false,"price_micros":0,"input_schema":null},{"name":"review_attach_assets","description":"Validate exported audio files and attach them to a Review Session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"review_compare","description":"Compare the bounces before and after a revision against its objective.","write_action":false,"price_micros":0,"input_schema":null},{"name":"review_delete","description":"Delete one Review Session's stored record after the user asks to.","write_action":true,"price_micros":0,"input_schema":null},{"name":"review_evaluate","description":"Measure an attached bounce as a whole and section by section, with findings.","write_action":false,"price_micros":0,"input_schema":null},{"name":"review_export_delivery","description":"Write a Review Session's delivery manifest to new JSON or Markdown files.","write_action":true,"price_micros":0,"input_schema":null},{"name":"review_get","description":"Read a Review Session, its next export request, or its delivery manifest.","write_action":false,"price_micros":0,"input_schema":null},{"name":"review_plan_revision","description":"Compile one bounded revision plan from evaluation findings and feedback.","write_action":false,"price_micros":0,"input_schema":null},{"name":"review_record_feedback","description":"Record the producer's explicit feedback and locks in a Review Session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"review_start","description":"Start a Review Session for the result of one completed Production Run.","write_action":false,"price_micros":0,"input_schema":null},{"name":"review_stop","description":"Stop a Review Session so no further revision work happens.","write_action":false,"price_micros":0,"input_schema":null},{"name":"run_continue","description":"Resume a stopped or blocked Production Run, or change its unexecuted remainder.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_describe_operations","description":"List Production Run operations and return exact schemas for the ones named.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_execute","description":"Run a multi-step production plan, such as writing a chorus, as one task.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_get","description":"Read a run's status, generated outputs, and per-operation receipts.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_list","description":"List recent Production Runs saved on this computer, newest first.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_stop","description":"Stop a run so no further operations execute.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_validate","description":"Dry-run a Production Run plan against the live project without changing it.","write_action":true,"price_micros":0,"input_schema":null},{"name":"session_get_capabilities","description":"Report which FL Studio integration paths work in this bridge session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"session_set_write_mode","description":"Turn write mode on or off for this bridge session without restarting FL.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sound_apply_palette","description":"Apply the palette returned by sound_plan_palette, loading each role's preset.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sound_get_history","description":"Report the local sound-selection history: location, health, and record counts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sound_get_inventory","description":"Read the pool of loaded instruments and their presets that palettes choose from.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sound_get_palette","description":"Look up a previously planned sound palette by its palette_id.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sound_plan_palette","description":"Choose an instrument and preset for each musical role from loaded sounds.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sound_record_feedback","description":"Record the user's explicit verdict on a palette so future picks follow it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sound_reset_history","description":"Delete the local sound-selection history after the user asks to.","write_action":true,"price_micros":0,"input_schema":null},{"name":"transport_set","description":"Change playback, recording, tempo, loop mode, and other transport settings.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-10-15T11:59:58.594Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-15T11:59:58.578Z","components":{"code":{"score":25,"max":25,"notes":["98 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"postfader-fl-studio-mcp","version":"12.0.3","found":true,"weeklyDownloads":119,"license":"Apache-2.0","dependencyCount":16,"publishedAt":"2026-10-05T08:57:12.653562Z","repositoryUrl":"https://github.com/synopsys0/postfader-fl-studio-mcp"}],"repo":{"found":true,"owner":"synopsys0","repo":"postfader-fl-studio-mcp","archived":false,"pushedAt":"2026-10-14T03:57:56Z","stars":7,"forks":1,"openIssues":6,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/108628840?v=4","ownerCreatedAt":"2022-07-03T18:31:45Z","license":"Apache-2.0"},"icon":{"url":"https://avatars.githubusercontent.com/u/108628840?v=4&s=128","source":"registry","width":128,"height":128},"presence":{"stars":7,"forks":1,"downloadsWeek":119,"license":"Apache-2.0","lastPushAt":"2026-10-14T03:57:56.000Z","score":34}}}},"grade_history":[{"kind":"restore","fromGrade":"B","toGrade":"A","reason":"score 92","createdAt":"2026-09-19T21:13:40.259Z"}],"reviews":[]}