Enables automation of the full PCB design workflow in KiCad 9.x, providing tools for project management, schematic capture, PCB layout routing, component library searches, and the generation of manufacturing exports like Gerbers and BOMs.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@eda-mcpRun DRC and export the Gerber manufacturing files"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
eda-mcp
MCP server for EDA (Electronic Design Automation) tools. Currently supports KiCad 9.x with 39 tools covering the full PCB design workflow.
Requirements
Installation
git clone https://github.com/SaeronLab/eda-mcp.git
cd eda-mcp
uv syncClaude Code Configuration
Add to your .mcp.json:
{
"mcpServers": {
"eda-mcp": {
"type": "stdio",
"command": "uv",
"args": ["--directory", "/path/to/eda-mcp", "run", "eda-mcp"]
}
}
}Tools
Core (6)
Tool | Description |
| Current session state and capabilities |
| Create a new KiCad project |
| Open an existing project |
| Find projects in a directory |
| Save all project files |
| Workflow and tool documentation |
Schematic (13)
Tool | Description |
| Add a symbol to the schematic |
| Add VCC, GND, +3V3, etc. |
| Set component value (10k, 100nF) |
| Change reference designator |
| Set custom fields (MPN, supplier) |
| Remove a component |
| Reposition a component |
| Connect two points with a wire |
| Add a named net label |
| Add a cross-sheet label |
| Mark unused pins |
| Auto-assign reference designators |
| List all components with details |
PCB (10)
Tool | Description |
| Draw the PCB boundary |
| Set min trace/clearance/drill |
| Create net class with specific rules |
| Route a copper trace |
| Place a via |
| Fill copper zones |
| Add silkscreen text |
| Add lines/shapes to layers |
| Board statistics and sanity check |
| List all footprints on the PCB |
Export (7)
Tool | Description |
| Export netlist from schematic |
| Export Gerber manufacturing files (DRC-gated) |
| Export Bill of Materials |
| Export schematic/PCB to PDF |
| Export schematic/PCB to SVG |
| Design Rules Check |
| Electrical Rules Check |
Library (3)
Tool | Description |
| Search component symbols |
| Search PCB footprints |
| Get symbol pins and properties |
Architecture
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 searchThree integration paths:
S-expression parser/writer — Direct manipulation of
.kicad_schfiles with round-trip fidelityPersistent pcbnew worker — JSON-RPC subprocess using KiCad's Python API for PCB operations
kicad-cli — Subprocess calls for exports, DRC, and ERC
Development
uv run pytest tests/ -v # Run all tests
uv run ruff check src/ tests/ # Lint
uv run pyright src/ # Type checkLicense
MIT
This server cannot be installed
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.