name: operating-kicad-eda
description: "KiCad EDA orchestration via kicad-mcp MCP server. Routes 17 tools for schematic creation, PCB layout, autorouting, DRC, and Gerber export. Enforces serialized PCB ops, library-first lookup, and autoroute-only routing."
user-invocable: true
argument-hint: "<operation: schematic|pcb|route|drc|export|full-pipeline>"
allowed-tools: Read, Bash
Read: inspect KiCad files and MCP tool schemas
Bash: run kicad-cli for ERC/DRC, Python scripts for footprint injection
Operating KiCad EDA
MCP tool router for KiCad 9. Never guess, never hand-route, never parallelize PCB writes.
When to use
| Scenario |
Use |
Approach |
| Create schematic from design doc |
Yes |
schematic() operations |
| Generate PCB from schematic |
Yes |
build_pcb_from_schematic |
| Route a PCB |
Yes |
autoroute(operation="run") only |
| Fix DRC violations |
Yes |
drc(operation="autofix") |
| Export manufacturing files |
Yes |
export() Gerber/BOM/render |
| Hand-place a single trace |
NO |
LLM traces violate clearances |
Iron rules
- NEVER hand-route —
pcb(add_trace/add_via) produces DRC-failing garbage. Use autoroute(operation="run").
- NEVER guess names — footprint and symbol names change between KiCad versions. Always
library(operation="search") first.
- SERIALIZE PCB ops — MCP PCB tools do load/modify/save. Parallel calls corrupt the
.kicad_pcb file.
- VERIFY after changes —
drc(operation="run") + audit(operation="all") before declaring done.
MCP tool routing table
| Task |
MCP Tool |
Operation |
| Search parts |
library |
search |
| Create/edit schematic |
schematic |
create_symbol, add_wire, add_label |
| Build PCB from schematic |
build_pcb_from_schematic |
— (standalone) |
| Place footprints |
pcb |
place_footprint |
| Set board outline |
pcb |
set_board_outline |
| Add zones (copper pour) |
pcb |
add_zone |
| Auto-route |
autoroute |
run |
| Run DRC |
drc |
run |
| Auto-fix DRC |
drc |
autofix |
| Export Gerber |
export |
gerber |
| Export BOM |
export |
bom |
| 3D render |
export |
render |
| Estimate board size |
estimate_board_size |
— (standalone) |
| Suggest placement |
suggest_placement |
— (standalone) |
| Full audit |
audit |
all |
Standard pipeline
1. library(search) → find symbols and footprints
2. schematic(create_symbol) → place all components
3. schematic(add_wire/add_label) → connect nets
4. [Python] footprint injection script → fix kicad-cli lookup
5. build_pcb_from_schematic → initial PCB
6. pcb(set_board_outline) → product form factor
7. suggest_placement or pcb(place_footprint) → position components
8. autoroute(run) → FreeRouter
9. drc(run) → check
10. drc(autofix) → fix violations
11. pcb(add_zone) → GND copper pour both layers
12. export(gerber) → manufacturing files
13. export(render) → 3D views
References
Exit criteria