MCP server for Logic Pro control and automation, providing tools to read and manipulate Logic Pro projects, tracks, regions, audio, and MIDI through a control surface interface and Accessibility API
Logician MCP demonstrates strong naming conventions (all tools start with action verbs: logic_*), comprehensive parameter schemas with type definitions, and excellent use of tool annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint). Descriptions are detailed and context-aware. However, output schemas are not explicitly documented in the visible code, and error handling guidance is minimal. The Tool.swift architecture shows sophisticated safety classification (readOnly/write/destructive) and idempotency tracking, which is exemplary. Most tools have 3-7 parameters with clear types and descriptions, meeting baseline expectations (p10=1, p90=8). Tool composition is clean: each tool has a single responsibility. Weaknesses: no visible pagination support for list-like tools, output field documentation missing, and error recovery guidance absent from descriptions.
Bounce a bar range to audio file(s) with format options (WAV, AIFF, MP3, AAC, FLAC)
A/B evaluate a plugin parameter change by rendering or bouncing audio before and after the change, with optional project path verification
Export aligned stems (one audio file per track) for a bar range, with solo verification and progress reporting
Search for MCP tools by name, description, or argument keywords across all available tools (including inactive ones), with optional limit and toolset filtering
Diagnostic check of Logic Pro setup: running status, project document, Accessibility permissions, MCU bridge, MIDI connectivity, key command registration, and UI language inference
Import a MIDI arrangement (tracks, notes, control changes, pitch bends) into the project at a specified bar, with optional tempo import and verification
List all available Logic Pro key commands (standard and custom) with their current key bindings
Output schemas not documented. Tool descriptions explain inputs but do not specify what fields/structure the response contains. LLMs cannot plan downstream tool calls or extract required data without knowing the output shape.
Error handling guidance missing. Tool descriptions do not explain what errors can occur, how to recover, or what the LLM should do next. E.g., logic_import_midi could fail if tracks are malformed, but no recovery hint is provided.
logic_send_mcu_command parameter 'command' is under-specified. Description says 'MCU command name or hex bytes' but does not clarify format, valid command names, or hex encoding (e.g., space-separated, colon-separated, raw bytes). LLMs will guess and fail.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
Send raw Mackie Control Universal (MCU) commands to the control surface for direct hardware control
Register or re-learn Logic Pro key commands for MCP tools, with optional relearn mode to fix orphaned MIDI port bindings
logic_find_tool 'limit' parameter lacks bounds. No minimum or maximum specified. Unbounded numeric parameters let LLMs pass absurd values (e.g., limit=999999) that waste resources.
logic_import_midi 'tracks' parameter structure is complex (nested objects with optional arrays) but lacks examples or validation rules. LLMs may construct malformed track objects. Provide a concrete example or stricter schema constraints.