Model Context Protocol server for KiCAD schematic manipulation
Server has 14 tools with complete input schemas and descriptions. Naming follows verb_noun convention (create_, load_, add_, search_, list_, get_). However, descriptions are minimal (10-50 chars), lacking context on WHEN to use tools, prerequisites, or return value guidance. Parameters have types but many lack detailed constraints (e.g., position arrays lack coordinate range hints, shape enum values not documented). No output schemas documented. Error handling and recovery guidance absent. Composition is sound, tools are single-responsibility, but descriptions do not meet LLM-optimization baselines (target 50-200 chars).
Add a component to the current schematic
Add a hierarchical label to the schematic
Add a junction (connection point) to the schematic
Add a text label to the schematic
Add label directly to component pin
Add a wire connection between two points
Connect two component pins using same label
Descriptions are too brief (10-50 chars) and lack LLM-optimization guidance. Missing WHEN to use, prerequisites, and return value structure. Baseline target is 50-200 chars with actionable context.
No output schemas documented. LLMs cannot infer what fields are returned or plan downstream tool calls. E.g., list_components returns a list but structure is undocumented.
Parameter constraints lack detail. 'position' arrays have no coordinate range hints. 'shape' enum in add_hierarchical_label lists values in description but not as formal enum constraint. 'rotation' and 'size' have no min/max bounds.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | <=2025-11-25 | v2 |
Create a new KiCAD schematic
Get absolute position of a component pin
Get information about the current schematic
List all components in the current schematic
Load an existing KiCAD schematic file
Save the current schematic to a file
Search for components in KiCAD symbol libraries
No error handling or recovery guidance. Tools do not document what happens on failure (e.g., file not found, invalid component reference, coordinate out of bounds) or how to recover.
Global state (current_schematic) is mutable and not thread-safe. Concurrent requests could corrupt schematic state. MCP protocol is stateless, each request should be self-contained.