MCP server for AI-assisted PCB design with KiCad 9.x, providing tools for design rule checking, electrical rule checking, zone filling, auto-routing, and various export formats
KiCad MCP has 23 tools with consistent naming (verb_noun pattern) and basic schemas. However, parameter descriptions are minimal or absent for most tools, output schemas are undocumented, and error handling lacks recovery guidance. Tool names are clear (list_projects, run_drc, export_gerber) but descriptions are terse (avg ~40 chars, well below the 194-char baseline). Most parameters lack descriptions entirely, e.g., 'project' param appears 20+ times with only 'Project name' as description, no guidance on format or constraints. No tool documents its return structure. Error responses are not shown in source, making recovery guidance unverifiable. Security considerations (path traversal in read_file, permission checks for destructive ops) are not evident in tool definitions.
Auto-route PCB using FreeRouting (async by default, creates backup)
Clean up old completed/failed tasks
Export 3D rendered images (top, bottom, iso, all)
Export all available file types
Export Bill of Materials (CSV)
Export Gerber and drill files
Export complete JLCPCB/PCBWay manufacturing package
Export netlist (kicadxml, spice, cadstar, orcadpcb2)
Parameter descriptions are minimal or absent. 'project' parameter appears 20+ times with only 'Project name' as description, no guidance on format, constraints, or valid values. LLMs cannot infer whether to pass a path, ID, or display name.
No output schemas documented. Tools like export_gerber, export_bom, get_board_info return data but the response structure is not specified. LLMs cannot plan downstream tool calls or extract required fields.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | <=2025-11-25 | v2 |
Export PCB as PDF
Export schematic as PDF
Export schematic as SVG
Export PCB as STEP 3D model
Export PCB as SVG images
Fill all copper zones in PCB
Get PCB board information (dimensions, layers, components)
List project output files
Get status of an async task
Get version information
List all projects
List all async tasks
Read file content (restricted to project/task directories)
Run Design Rule Check (DRC) on PCB
Run Electrical Rule Check (ERC) on schematic
Tool descriptions are terse (avg ~40 chars vs 194-char baseline). Most lack context on WHEN to use the tool, WHAT it returns, or PREREQUISITES. E.g., 'Export Gerber and drill files' does not explain output format, file locations, or when to call it in a workflow.
read_file tool accepts 'filepath' with only 'File path' description and no validation guidance. No mention of path traversal restrictions, allowed directories, or error cases. Security risk if LLM can be tricked into reading sensitive files outside project/task dirs.
Destructive operations (fill_zones, auto_route, cleanup_tasks) lack confirmation or dry-run support. No indication in tool definitions that these modify state. LLMs may invoke them without understanding irreversibility.