Two-mode MCP music studio: scored composition (ABC notation) and live performance (Strudel live coding). Interactive ext-apps widgets with sheet music rendering, in-place editing and MIDI/WAV export, all 128 General MIDI instruments, style presets, and a live REPL with Hydra shader visuals.
Music Studio has well-structured tool definitions with comprehensive schemas, strong descriptions, and thoughtful parameter constraints. All 7 tools have explicit schemas with types and descriptions. Naming follows verb-noun conventions (play-*, get-*, search-*, analyze-*, convert-*). Descriptions are detailed and context-aware (avg ~240 chars), explaining WHAT each tool does, WHEN to use it, and what it returns. Parameters are consistently typed and described. The server includes tool annotations (toolAnnotations=true), proper error handling guidance, and rich output documentation. Main gaps: (1) some parameters lack explicit enum constraints where they should (e.g., style values, visual presets are documented in text but not in JSON Schema enums), (2) no explicit 'required' field validation in output schemas (only input), (3) error recovery guidance is implicit rather than explicit in tool definitions. Overall, this is a high-quality, production-ready set of definitions with minor room for formalization.
Analyze chords, harmony, and music theory. Validates chord symbols, suggests voicings, analyzes key signatures, and provides harmonic analysis. Useful for checking ABC notation chord symbols and understanding harmonic progressions.
Convert ABC notation melody to a Strudel/TidalCycles pattern. Takes a parsed ABC score and generates equivalent live-coding pattern syntax. Useful for transitioning from composed scores to live performance.
Get reference material for ABC notation composition. Topics include 'abc-syntax' (notation syntax), 'genres' (tune templates by genre), 'styles' (accompaniment style presets), 'instruments' (MIDI instrument list), and 'harmony' (chord and harmony theory).
Get reference material for Strudel/TidalCycles live coding. Topics include 'strudel-syntax' (pattern syntax), 'genres' (sound and pattern templates), 'sounds' (available sound libraries), 'effects' (audio effects), 'visuals' (visual preset list), and 'hydra' (Hydra shader recipes and integration).
Write Strudel/TidalCycles code and play it live in an interactive REPL with real-time audio feedback. The widget supports full pattern editing, pianoroll visualization, and Hydra shader visuals synchronized to the music. Patterns can use all Strudel sound libraries, effects, and visual presets. Returns an interactive live-coding widget (in ext-apps hosts) or an HTML player with REPL (in terminals). Code is validated in a sandboxed child process before execution.
Enum constraints not formalized in JSON Schema for multi-value parameters: 'style' accepts preset names (rock, jazz, bossa, waltz, folk) documented in text but not declared as enum in schema; 'topic' and 'library' in discovery tools similarly lack enum constraints. This forces LLMs to hallucinate valid values or rely on description text.
Output schemas lack explicit 'required' field lists and return type documentation. Tool descriptions state what is returned (e.g. 'Returns an interactive widget') but input schema objects do not formalize the output structure as a JSON Schema definition. LLMs cannot programmatically extract fields or plan downstream tool chains with certainty.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 70 | 2026-07-28+ | v2 |
Compose and play sheet music with visual notation, multi-instrument audio, and style presets. Write ABC notation for melodies, arrangements, harmonized pieces, or well-known tunes. Add a style (rock, jazz, bossa, waltz, folk...) for automatic drums, bass, and chord accompaniment. Returns an interactive sheet music widget (in ext-apps hosts) or an HTML player page (in terminals), with MIDI/WAV export, live editing, and note-by-note playback highlighting. All 128 General MIDI instruments supported, plus swing, tempo, transposition, and drum intro controls.
Search music composition and live-coding documentation (ABC notation, Strudel/TidalCycles, music theory) by keyword. Hits an external search API. Returns relevant documentation snippets and guide excerpts.
Error recovery guidance is embedded in descriptions and server-level instructions but not formalized in tool-level error handling patterns. No explicit guidance on which errors are retryable, which require user intervention, or what to do next. E.g., search-music-docs calls 'an external search API' but does not specify what happens on API failure or timeout.
Parameter descriptions for 'style', 'visuals', 'theme' list examples but do not validate them. The description of 'style' says '(rock, jazz, bossa, waltz, folk...)' but does not constrain the schema or provide a full enum list. If STYLE_NAMES is defined in music-logic.ts, it should be imported and formalized in the schema.
'convert-abc-to-strudel' describes 'scale' and 'tuning system' but does not clarify valid values or provide discovery. LLMs cannot know what scales Strudel supports without calling get-strudel-guide first. Listing a few examples ('major', 'minor', 'pentatonic') in the parameter description would reduce discovery friction.