I've been building this for a few months for my own use. It's still a work in progress, but already working great for a couple of things I use it for daily, so figured it's time to share.
Repo:
https://github.com/salitronic/eda-agentApache 2.0. Pure Python + DelphiScript, no DLLs, no installer, no admin rights.
---
What it isAn MCP (Model Context Protocol) server that exposes Altium Designer to AI clients like Claude Code (only tested with Claude code so far). ~140 tools covering schematic, PCB, library, and project operations, all against the currently open Altium session, not a file parser.
Where it's actually already highly useful for meSchematic reviews through Claude Code. I point Claude at a project and ask it to sanity-check things: unconnected power pins, missing decoupling caps, wrong pull-up values, parts without an MPN, compare subcircuits to datasheet checklist, etc. It's genuinely useful, not a substitute for a manual review of course but it really cuts down on review time and reduces a lot of that back-and-forth datasheet checking for basic things like pin numbers.
Making Claude Code aware of hardware for firmware and documentation work. This is the one I use most. Instead of manually writing out "PA5 is connected to the SPI clock of the memory chip, PB12 is the CS", I let Claude query the schematic directly. It reads the MCU pin-net connections, knows what's on each peripheral, and writes driver code accordingly. Need to document a connector pin map? MCU GPIO pin connections? extract BOM items? no need to waste time re-writing this manually in the documentation just ask Claude to extract all of that directly from the Altium project. No time waste, no copy mistakes!
Ad-hoc stuff: run DRC/ERC, compile, annotate, edit parameters, draw board outline, place parts in specific orders, library edits, etc...
How it worksPython MCP server writes request.json, a DelphiScript polling loop in Altium reads it, processes the command, writes response.json. No IPC magic, no COM, no DLL hooks. The script runs inside Altium's own scripting engine, so everything is direct Altium API access.
Installpip install --user eda-agent
eda-agent install-scriptsThen in Altium:
File > Run Script > Altium_API > Dispatcher.pas > StartMCPServerRegister with your MCP client and you're in.
Honest limitations- DelphiScript is what it is. Some Altium APIs crash the scripting engine in ways you can't catch, a handful of tools are flaky because of that, not because of the wrapper.
- Polling loop auto-shuts after 60s of inactivity so it doesn't hog Altium. You need to start the server script after the shutdown.
- While the script is running some Altium toolbar buttons that rely on scripting are disabled.
- Tested against Altium 24/25. Older versions may miss APIs.
- Still a work-in-progress some of the tools are not fully working as expected and some are not tested enough.
This project is not affiliated with or endorsed by Altium in any way.Feedback, issues, and PRs all welcome. Crash reports with specific Altium versions especially useful.
-----
Here is a video showing Claude Code review a buck converter circuit through eda-agent. The feedback resistor network is intentionally wrong and CC flags is correctly among other recommendations.