MCP servers for controlling Elektron Digitakt and Digitone over MIDI
16 tools with complete schemas and descriptions. Naming is action-verb consistent (send_*, set_*, trigger_*, play_*, reset_*). Descriptions are adequate (50-150 chars typical) but lack LLM-optimized guidance on WHEN to use each tool vs alternatives. Parameters are well-typed with ranges and defaults, but lack enum constraints where applicable (e.g., channel 1-16 should be constrained). Output schemas are not documented, LLMs cannot predict return structure. Error handling is minimal; no recovery guidance. Composition is sound (single responsibility per tool), but some tools combine multiple concerns (e.g., play_pattern_with_tracks_and_melody handles drums + melody + timing in one call, forcing the agent to construct complex nested arrays).
Play a drum pattern of track triggers, locked to MIDI clock. Beat positions are quarter notes: 0 is the downbeat, 1 is beat 2.
Play drums and a melody together. Each trigger goes out on its own track's channel; the melody uses `channel`.
Flatten every step's velocity on a track to one value.
Send a raw MIDI Control Change message.
Resume the sequencer from its current position.
Start the sequencer from the beginning.
Stop the sequencer.
Output schemas not documented. LLMs cannot predict return structure or plan downstream calls. Tools return success/failure strings but no structured data for chaining.
Descriptions lack LLM-optimized guidance on WHEN to use each tool. E.g., send_note vs trigger_track both send MIDI notes but serve different purposes, descriptions don't clarify the distinction for agent selection.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | <=2025-11-25 | v2 |
Send a MIDI note on/off.
Play a sequence of notes back to back, without MIDI clock.
Send a raw NRPN message, for parameters with no CC mapping.
Switch patterns with a MIDI Program Change.
Send a SysEx message.
Set the note length of a sequencer step.
Set which note a sequencer step plays.
Set the velocity of a sequencer step.
Fire a one-shot sample on a Digitakt track. Convenience wrapper: tracks 1-8 are MIDI notes 0-7.
play_pattern_with_tracks_and_melody combines drums, melody, timing, and preroll into one tool. Agents must construct complex nested arrays. Split into separate tools or provide a helper that builds the structure.
Numeric parameters (channel, note, velocity, step, track) lack enum or range constraints in schema. E.g., channel accepts 1-16 but schema shows bare integer. Agents may pass invalid values.
No error recovery guidance. Tools return bare success strings or exceptions. LLMs cannot determine if a failure is retryable, user-fixable, or fatal.