loading…
Search for a command to run...
loading…
An MCP server for Electronic Design Automation that provides comprehensive tools for managing KiCad 9.x PCB design workflows. It enables users to create schemat
An MCP server for Electronic Design Automation that provides comprehensive tools for managing KiCad 9.x PCB design workflows. It enables users to create schematics, layout PCBs, perform design rule checks, and export manufacturing files through a standardized interface.
MCP server for EDA (Electronic Design Automation) tools. Currently supports KiCad 9.x with 39 tools covering the full PCB design workflow.
git clone https://github.com/SaeronLab/eda-mcp.git
cd eda-mcp
uv sync
Add to your .mcp.json:
{
"mcpServers": {
"eda-mcp": {
"type": "stdio",
"command": "uv",
"args": ["--directory", "/path/to/eda-mcp", "run", "eda-mcp"]
}
}
}
| Tool | Description |
|---|---|
kicad.get_session_state |
Current session state and capabilities |
kicad.create_project |
Create a new KiCad project |
kicad.open_project |
Open an existing project |
kicad.list_projects |
Find projects in a directory |
kicad.save_project |
Save all project files |
kicad.help |
Workflow and tool documentation |
| Tool | Description |
|---|---|
kicad.add_component |
Add a symbol to the schematic |
kicad.add_power_symbol |
Add VCC, GND, +3V3, etc. |
kicad.set_value |
Set component value (10k, 100nF) |
kicad.set_reference |
Change reference designator |
kicad.set_component_field |
Set custom fields (MPN, supplier) |
kicad.delete_component |
Remove a component |
kicad.move_component |
Reposition a component |
kicad.add_wire |
Connect two points with a wire |
kicad.add_net_label |
Add a named net label |
kicad.add_global_label |
Add a cross-sheet label |
kicad.add_no_connect |
Mark unused pins |
kicad.annotate_schematic |
Auto-assign reference designators |
kicad.list_components |
List all components with details |
| Tool | Description |
|---|---|
kicad.create_board_outline |
Draw the PCB boundary |
kicad.set_design_rules |
Set min trace/clearance/drill |
kicad.create_net_class |
Create net class with specific rules |
kicad.route_trace |
Route a copper trace |
kicad.place_via |
Place a via |
kicad.fill_zones |
Fill copper zones |
kicad.add_text |
Add silkscreen text |
kicad.add_line |
Add lines/shapes to layers |
kicad.design_summary |
Board statistics and sanity check |
kicad.list_footprints |
List all footprints on the PCB |
| Tool | Description |
|---|---|
kicad.export_netlist |
Export netlist from schematic |
kicad.export_gerbers |
Export Gerber manufacturing files (DRC-gated) |
kicad.export_bom |
Export Bill of Materials |
kicad.export_pdf |
Export schematic/PCB to PDF |
kicad.export_svg |
Export schematic/PCB to SVG |
kicad.run_drc |
Design Rules Check |
kicad.run_erc |
Electrical Rules Check |
| Tool | Description |
|---|---|
kicad.search_symbols |
Search component symbols |
kicad.search_footprints |
Search PCB footprints |
kicad.get_symbol_info |
Get symbol pins and properties |
src/eda_mcp/
├── server.py # FastMCP server, tool registration
├── session.py # Session state management
├── common/
│ ├── types.py # ToolResponse, Position
│ └── errors.py # Error hierarchy
└── plugins/
└── kicad/
├── discovery.py # KiCad path detection
├── guardrails.py # Pre-export safety checks
├── worker.py # Async pcbnew worker manager
├── worker_process.py # Persistent pcbnew subprocess
├── sexp/
│ ├── parser.py # S-expression parser
│ └── writer.py # S-expression writer
└── tools/
├── schematic.py # Schematic manipulation via sexp
├── cli.py # kicad-cli exports (Gerber, PDF, DRC)
└── library.py # Symbol/footprint search
Three integration paths:
.kicad_sch files with round-trip fidelityuv run pytest tests/ -v # Run all tests
uv run ruff check src/ tests/ # Lint
uv run pyright src/ # Type check
MIT
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"eda-mcp": {
"command": "npx",
"args": []
}
}
}