MCP server for Synth V music synthesis software, providing tools to control projects, tracks, groups, arrangements, and UI dialogs via a named-pipe bridge to Synth V's Lua scripting interface
SynthV-MCP has 38 tools with consistent naming (verb_noun pattern) and descriptions present for all tools. However, critical gaps undermine quality: (1) Input schemas lack type information for complex parameters (e.g., 'groups' in select_arrangement_groups is array but item schema missing; 'form' in show_custom_dialog is object with no field definitions). (2) Parameter descriptions are minimal (10-30 chars) and lack constraints, ranges, or format guidance. (3) No output schemas documented, LLMs cannot predict response structure for chaining. (4) Error handling absent, no guidance on failure modes or recovery. (5) Many parameters marked 'Optional' but no defaults specified, creating ambiguity. Baseline: 194 chars avg description (this server ~40 chars); 100% A+ tools have output schemas (this has 0). Tools are functional but fall short of production-grade agent integration.
Insert one library note-group reference into a track.
Create an empty note group and add it to the project library.
Create a new track in the current project.
Ask a Yes/No/Cancel question inside Synth V.
Clear all current arrangement selections.
Clear selected groups in the arrangement view.
Clone the current piano-roll group into the project library.
No output schemas documented. LLMs cannot predict response structure, breaking tool chaining and forcing agents to guess field names for downstream calls.
Complex parameter schemas lack type definitions. 'groups' in select_arrangement_groups is array but item schema missing; 'form' in show_custom_dialog is object with no field constraints.
Parameter descriptions are minimal (10-30 chars) and lack format guidance, ranges, or constraints. E.g., 'onset' in add_group_reference has no units or valid range; 'display_color' in add_track has no format (hex? named?).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Ask for an OK/Cancel confirmation inside Synth V.
Send a message to the Synth V Lua side and receive an echoed response plus project summary.
Read the current selection from the arrangement view.
Read summary booleans for the current arrangement selection state.
Read one group reference from a track by 1-based index.
Read plain text from the host system clipboard.
Read host information for the current Synth V application instance.
Read one note group from the project library by 1-based index.
Read the total project duration.
Read current project, track, current-group, and tempo summary.
Read basic track properties for one track.
Read volume, pan, mute, and solo state for a track.
List note groups stored in the project library.
List tracks in the current Synth V project.
Ping the Synth V Lua side and return current project/track/group summary.
Prompt for a single line of text inside Synth V.
Remove one group reference from a track by 1-based index.
Remove one note group from the project library by 1-based index.
Remove one track from the current project.
Select arrangement groups by {trackIndex, index} pairs.
Rename the current piano-roll note group.
Update one existing group reference on a track.
Replace the host system clipboard text.
Rename one note group in the project library.
Show a blocking custom dialog inside Synth V using the official dialog form schema.
Show a simple informational message box inside Synth V.
Show a blocking text input box inside Synth V.
Show a blocking message box inside Synth V.
Show a blocking OK/Cancel box inside Synth V.
Show a blocking Yes/No/Cancel box inside Synth V.
Unselect arrangement groups by {trackIndex, index} pairs.
No error handling or recovery guidance. Tools return raw responses with no indication of failure modes, retryability, or what the LLM should do if a call fails.
Optional parameters lack defaults. 'track_index' marked optional in get_group_reference but no default specified, unclear if it defaults to current track or fails.