FastMCP server for FL Studio - LLM integration with piano roll and more
Both tools have minimal descriptions and critically lack input parameter schemas. get_piano_roll_state has an empty input schema ({}), violating the requirement that every parameter needs a description and type. send_notes has a schema with parameter descriptions, but the descriptions are embedded in a single 'notes' parameter rather than individual parameter definitions. Neither tool documents output schemas. Descriptions are present but generic (10-50 chars), below the 50-200 char baseline for LLM-optimized tools. No error handling guidance, no recovery paths, no validation rules documented.
Read the current piano roll state from the exported JSON file. The FL Studio script must have exported the state by pressing the 'Export State' button.
Send arbitrary notes to the FL Studio piano roll.
get_piano_roll_state has empty input schema ({}). Tool accepts no documented parameters, making it impossible for LLMs to understand prerequisites or constraints.
send_notes parameter 'notes' embeds all field documentation in a single description string rather than defining individual typed parameters (midi, duration, time, velocity). LLMs cannot parse nested field constraints from text descriptions alone.
No output schemas documented for either tool. LLMs cannot plan downstream calls or extract required fields. get_piano_roll_state should document the JSON structure returned from the exported file.
Descriptions are 10-50 characters, well below the 50-200 char baseline for LLM-optimized tools. 'Read the current piano roll state...' lacks context on when to call this vs other tools, what format is returned, or what prerequisites exist.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | 2026-07-28+ | v2 |
No error handling guidance. If the exported JSON file is missing, malformed, or FL Studio is not running, the tools provide no recovery path or actionable error message for the LLM.