Author Topic: Open-sourced an MCP server for Altium Designer with live interaction.  (Read 1548 times)

0 Members and 1 Guest are viewing this topic.

Offline SalitronicTopic starter

  • Regular Contributor
  • *
  • Posts: 60
  • Country: mt
  • Electronic Design Engineer
    • Salitronic | Electronic Design Services
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-agent

Apache 2.0. Pure Python + DelphiScript, no DLLs, no installer, no admin rights.

---

What it is

An 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 me

Schematic 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 works

Python 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.

Install

Code: [Select]
pip install --user eda-agent
eda-agent install-scripts

Then in Altium:

Code: [Select]
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.

« Last Edit: April 18, 2026, 11:59:51 am by Salitronic »
 
The following users thanked this post: bookaboo, thm_w

Offline lichurbagan

  • Regular Contributor
  • *
  • Posts: 225
  • Country: bd
Re: Open-sourced an MCP server for Altium Designer with live interaction.
« Reply #1 on: April 28, 2026, 07:46:00 am »
Well-judged architecture. However, the main risks are DelphiScript instability, lack of state caching, and some latency from polling. These can be solved with capability flags, incremental design graph caching, and batching or lightweight IPC upgrades.
 

Offline ddavidebor

  • Super Contributor
  • ***
  • Posts: 1192
  • Country: gb
    • Sideband
I did something similar today, but bypassing the Delphi and just hooking into the message bus ! Great minds think alike.
Currently working on the future of Altium library management https://getsideband.com/
Need Altium Designer Libraries? Check out https://getsideband.com/libraries (35k symbols, 34K footprints)
 



Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf

 

-->