Skip to main content
Glama

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 sync

Claude 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

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

Schematic (13)

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

PCB (10)

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

Export (7)

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

Library (3)

Tool

Description

kicad.search_symbols

Search component symbols

kicad.search_footprints

Search PCB footprints

kicad.get_symbol_info

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 search

Three integration paths:

  • S-expression parser/writer — Direct manipulation of .kicad_sch files with round-trip fidelity

  • Persistent 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 check

License

MIT

-
security - not tested
A
license - permissive license
-
quality - not tested

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.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SaeronLab/eda-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server