MCP server — control FL Studio via MIDI from Claude or any MCP client
Critical gaps across naming, descriptions, and schemas. Only 25 tools listed but server.py imports 70+ modules, suggesting massive undocumented tool inflation. Visible tools (fl_list_midi_ports, fl_connect, fl_get_status, etc.) have basic descriptions (10-50 chars) far below the 194-char baseline. No input schemas visible for any tool except fl_insert_notes (partial). Parameter descriptions are minimal or absent. No output schemas documented. Error handling guidance missing. This server prioritizes breadth over quality.
Connect to FL Studio via MIDI port
Close MIDI ports and disconnect from FL Studio
Query current FL Studio playback status, BPM, pattern index, and channel count
Play notes in realtime via MIDI
Query list of channels from FL Studio
List installed VST/AU plugins on the system
List available presets and samples from FL Studio library
List available MIDI input and output ports
70+ imported tool modules in server.py (composition, vision, stems, midi_gen, etc.) are not listed in the provided tool inventory. These tools are inferred only, no schemas, descriptions, or definitions visible. This represents massive undocumented tool inflation.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | <=2025-11-25 | v2 |
Query list of patterns from FL Studio
Load a preset or project file into FL Studio
Load a VST/AU plugin into FL Studio via GUI automation
Mute or unmute a channel
Create a new pattern
Send All Notes Off to stop stuck notes
Send a lightweight ping to FL Studio to verify connection
Start playback in FL Studio
Step forward in FL Studio's history stack
Save the current project to its current filename
Select a pattern by index
Set the pan of a channel
Set the volume of a channel
Set the tempo (BPM) in FL Studio
Solo or un-solo a channel
Stop playback in FL Studio
Step backward in FL Studio's history stack
Output schemas completely undocumented. Tools like fl_get_status, fl_list_channels, fl_list_patterns, fl_list_installed_plugins, fl_list_library return data but no schema is visible. LLMs cannot plan downstream calls or extract fields without knowing the response structure.
Descriptions are uniformly short (25 - 50 chars) and lack context. Baseline is 194 chars. Examples: 'Start playback in FL Studio' (28 chars), 'Stop playback in FL Studio' (26 chars), 'Send All Notes Off to stop stuck notes' (38 chars). No guidance on when to use each tool, prerequisites, or what happens on error.
No error handling guidance. Tools like fl_connect, fl_load_plugin, fl_load_file can fail (port not found, plugin missing, file not accessible) but descriptions do not explain recovery steps or what the LLM should do next.
fl_insert_notes parameter schema is incomplete. 'notes' array items have properties (pitch, velocity, channel, start, duration) but no minItems/maxItems, no validation that pitch is 0 - 127 or velocity is 0 - 127. Descriptions lack format guidance (e.g., 'note name must be C4, F#3, Bb4 format').