An MCP server for executing SuperCollider synthesis code, enabling audio synthesis through SynthDef definitions
SuperCollider MCP Server has significant definition quality gaps. Both tools are registered with schemas and descriptions present, but the definitions fall short of production standards. Naming is somewhat action-oriented but lacks clarity; descriptions are brief but present; schemas are JSON objects with types but missing critical patterns for error handling, output documentation, and parameter constraints. The server is specialized (audio synthesis) but the tool interfaces are not optimized for LLM reasoning.
複数のSynthDefを同時に実行します。
SynthDefのコードを生成し、そのコードを実行して音を出します。 コードは{}でくくるようにしてください。
Ambiguous tool naming: 'synth-execute' and 'multi-synth-execute' do not clearly convey action semantics. Names lack verb_noun pattern clarity. LLMs cannot easily distinguish when to use each tool from the names alone, the distinction (single vs. multiple) is only clear in descriptions.
No output schema documented. Both tools return free-text responses in a 'content' array. LLMs cannot parse structured results or plan follow-up operations. No type information on return values.
No error handling guidance. Catch-all error responses return raw JavaScript error messages. LLM receives no actionable recovery path (e.g., 'retry with valid SuperCollider syntax', 'check server availability'). Does not classify errors as retryable, user-fixable, or fatal.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 44 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 40 | - | v1 |
Parameter 'duration' lacks minimum/maximum bounds. Unbounded numeric parameter could allow LLM to pass negative or excessively large millisecond values, causing unexpected behavior or resource exhaustion.
Descriptions are in Japanese; descriptions are too brief (<100 chars for synth-execute, <80 chars for multi-synth-execute). Descriptions fall short of the 50 - 200 char LLM-optimized range. 'SynthDefのコードを生成し...' provides minimal context on WHEN to use this tool or what prerequisites exist.
No dependency or prerequisite hints in descriptions. Code parameter expects '{}-enclosed SuperCollider syntax' but the description does not explain what happens if syntax is invalid or if the server fails to boot.
Destructive operations without confirmation. Both tools modify state (boot SuperCollider server, execute synthesizer code) and kill processes. No confirmation step or dry-run capability. No tool support for undoing failed operations.
Tools are tightly coupled to side effects (server startup/shutdown, process termination). Both tools call cleanupServer() after completion, killing the SuperCollider server. This violates idempotence, repeated calls with the same input produce different outcomes (first call succeeds, second fails because server is killed).