eda-agent MCP
An MCP server that lets an agent edit an open project in Altium Designer, KiCad or EasyEDA Pro: schematics, boards, libraries, checks
- 296 ★ on the repository
- Last commit
- Apache-2.0
Broad access
Why this level
- The agent edits open schematics, boards and libraries and can save documents to disk
- The `app_` tools simulate real keys and mouse, take focus and act inside the Altium window
- The autonomous mode drives a project through stages on its own, so the changes can be many
Install
- Works in
Manual install
git clone https://github.com/salitronic/eda-agent && cd eda-agent && python -m pip install -e .Prefer python -m pip over a bare pip: the package lands in the same Python you will run the server with.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The agent edits open schematics, boards and libraries and can save documents to disk
- The `app_` tools simulate real keys and mouse, take focus and act inside the Altium window
- The autonomous mode drives a project through stages on its own, so the changes can be many
This is third-party code. Review the repository files before installing.
What it does
eda-agent is a Python MCP server that lets Claude Code or any other MCP client work with a live Altium Designer session. The server talks to the editor through a DelphiScript polling loop and a file-based exchange, so the agent reads the open project, answers questions about it and edits the schematic or board while you watch. The default Altium backend exposes about 500 tools for schematics, PCBs, libraries, projects and design agents. KiCad 9 and EasyEDA Pro plug in as extra backends. For project review there is `design_review_snapshot`, which bundles several reads (components, nets, rules, messages, BOM) into one call. `design_lint_report` runs 31 checks: parameter visibility, power-port orientation, floating ports, duplicate designators and more. Schematic and PCB nets can be cross-checked after an ECO. Typical sections come as ready blocks: decoupling, pull-ups, dividers, crystals, LEDs, filters and MOSFET switches. The server never invents a SPICE model; it asks for the manufacturer file. The `autodesign` skill in `skills/autodesign` walks an agent from a requirement to a board through the `design_next_action` loop. The server owns the order of 13 stages, the checks and the journal, and the agent performs the suggested steps. The skill works with Altium and EasyEDA Pro; the KiCad backend does not register this mode. A local dashboard at `http://127.0.0.1:8766` shows datasheet coverage and the project issue queue.
Who it is for. For circuit and PCB engineers on Altium Designer for Windows or KiCad 9 who want an agent to handle reviews, bulk edits, BOMs and libraries.
Good fit when
- Before release you need a check: components without an MPN or datasheet, duplicate designators, floating nets
- You want to ask about the open project, for example which nets a resistor connects to
- You need a draft schematic from a requirement, say a 12 V to 3.3 V step-down supply around a chosen IC, with the datasheet read
- You need bulk edits: component parameters, net names, wires and ports placed in batches
- After an ECO you need to compare schematic and PCB nets and find mismatches
Not a fit when
- The project is unsaved and has no backup: the author calls the server experimental, and some tools can crash the Altium scripting engine
- You run Altium outside Windows: the Altium backend works only there
- You need a batch run without an open editor: the server keeps a live connection to the open program
- You are doing other work at the computer: the UI tools take focus and can interrupt your typing
Example request
Review the open Altium project: find components without an MPN or datasheet and unconnected nets, make no editsMCP
- Transport
- stdio
- Authentication
- not required
Environment variables
EDA_AGENT_BACKEND- Backend chosen at startup, altium by default
EDA_AGENT_UI_AUTOMATION- A value of 0 refuses every synthesised key press and mouse click
Limitations
The author calls the project experimental: not every tool is tested and some can crash the DelphiScript engine in Altium, so make a copy of the project and use the `app_checkpoint` checkpoint. The Altium backend works only on Windows and needs a one-time registration of the `Altium_API.PrjScr` script as a Global Project and a StartMCPServer run from `Dispatcher.pas`. KiCad needs version 9 or newer with the API server enabled and `python -m pip install -e .[kicad]`. Python 3.11 or newer is required. The `app_` tools send real keyboard and mouse input. Datasheets are fetched over the network.
How to disable. Remove the server from the client config, in Claude Code that is `claude mcp remove altium`, and stop the loop in Altium with the Detach button, which saves nothing. The variable `EDA_AGENT_UI_AUTOMATION=0` switches off the keyboard and mouse simulation.
FAQ
How do I connect eda-agent to Claude Code?
Install the package with `python -m pip install -e .` from the cloned repository, then register the server: `claude mcp add -s user altium -- python -m eda_agent`. You can verify it with /mcp: the altium server should be listed.
Do I need to install anything inside Altium?
Yes. `eda-agent install-scripts` drops the `Altium_API.PrjScr` script project, which you register in the scripting system as a Global Project. After that the polling loop starts from File, Run Script, `Dispatcher.pas`, StartMCPServer.
What does the autodesign skill do?
It walks the agent through the `design_next_action` loop from a requirement to a board. The server suggests the stage and its exit gate and keeps a journal, and after three failures on a stage the question goes to a human. A checkpoint is advised before risky stages such as routing.
Is KiCad supported?
Yes, as an extra backend, starting with KiCad 9 and its API server enabled. You need `pip install -e .[kicad]`. The autodesign mode is not registered on the KiCad backend.
Can I stop the agent from clicking menus and buttons?
Yes. The variable `EDA_AGENT_UI_AUTOMATION=0` refuses every synthesised event. Reading dialogs stays on, so the server still notices that Altium is waiting for an answer.
Discussion
No questions or reviews yet.
Related
MCP serversA skill, CLI and MCP server for EasyEDA Pro: the agent reads datasheets, draws schematics and boards and checks them with DRC
An MCP server for PCB design in KiCAD: the agent places components, routes connections, runs DRC and prepares manufacturing files
The kct CLI and a Python library for agents: parse and edit KiCad schematics and PCBs with JSON output, run DRC and ERC without a running KiCad
MCP server that lets an agent write valid Altium Designer libraries: .PcbLib footprints and .SchLib symbols
MCP server for PCB design in KiCAD 10: schematic, routing, checks and manufacturing prep through an agent
A CLI agent for circuit boards: edits KiCad schematics and boards from a description and checks itself with ERC and DRC
Comparison with similar tools
Entries that share the main search query, and how they differ.
| Entry | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| eda-agent (this entry) | no | not required | 296 | |
| easyeda-agent | no | 881 | works with EasyEDA Pro: a skill, CLI and MCP server | |
| KiCAD MCP Server | no | not required | 3,027 | designs boards in KiCad only |
| altium-designer-mcp | no | not required | 86 | writes Altium libraries but does not edit the open project |
README in short
The README opens with an experimental-status warning and a video of an agent drawing a step-down converter from one sentence. It then covers how the file exchange works, features, requirements, installation, client setup and sections on limitations, backends and the safety of input simulation. Details live in the docs folder: tool reference, autonomous design, backend choice.