Altium-MCP-Suite

mcp
Security Audit
Fail
Health Warn
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 6 GitHub stars
Code Fail
  • process.env — Environment variable access in altium-designer-mcp/.github/scripts/cleanup-caches.js
  • rm -rf — Recursive force deletion command in altium-designer-mcp/.github/workflows/ci_main.yml
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

Altium MCP servers with coordinated bridge recovery, source snapshots, tests and Windows setup.

README.md

Altium MCP Suite

Tests

English · فارسی · 简体中文 · العربية

MCP servers that let an AI read and edit your Altium schematics, PCBs, and libraries. You keep Altium open; the AI works on the project you have open, live.

Windows · Python 3.12 · Tested live on Altium Designer 26

What it can do

  • Read and edit the open schematic: add components, draw wires, place net labels and power ports, edit parameters, pull a BOM or netlist.
  • Work the PCB: move components, lay tracks and vias, check placement clearances, panelize.
  • Audit the design: orphan net labels, floating ports, unconnected IC pins, missing decoupling caps, designator collisions, off-grid parts — or one 31-point lint sweep over schematic and PCB.
  • Check connectivity with four read-only tools: snapshot pin-to-net assignments (SHA-256 digest), per-pin contracts (expected net, or intentional NC with a reason), before/after diffs, and schematic↔PCB pad parity in both directions.
  • Calculate trace width, impedance, and length budgets. These are calculators, not a signal-integrity proof.
  • Read and write .SchLib / .PcbLib library files.
  • Manage native assembly variants by GUID, bulk-update fitted states, and export their component matrix. Changes use project backups and native readback; see the variant workflow.
  • Two bridges, one script engine: a shared lock keeps the two Python bridges from fighting over Altium's script engine, and every request carries an ID so a late answer to an old request is never accepted.

What's still in development

  • Placement assistance: batch placement and clearance checks work; finer placement tooling is still being worked on.
  • Bridge reliability: every known DelphiScript crash gets fixed or guarded, but new ones still surface — this is ongoing.
  • Validation so far is on Altium Designer 26; other versions haven't been exercised yet.

Current limitations

  • Experimental. Some operations can crash Altium's DelphiScript engine and stop the polling loop — back up your design before letting the AI edit it.
  • Native save and script-backed UI commands can wait during a handler. The loop releases the engine after about two idle seconds; background pings do not extend that deadline. The next coordinated tool call restarts it automatically.
  • EDA JSON parameters above U+00FF (Ω, Chinese text) are rejected before dispatch to prevent silent ? substitution. Full Unicode transport is not implemented.
  • Network paths must be mapped drives; UNC paths don't open.
  • proj_sync_pcb requires allow_modal=True; the schematic→PCB ECO still opens an interactive dialog.
  • The connectivity checkers verify pin assignments, not copper. They can't see data you didn't feed them.
  • An open modal dialog blocks script commands; Win32 dialog diagnostics remain available. Busy handlers reject new dispatch. Timed-out requests are withdrawn if not yet consumed; in-flight edits cannot be cancelled, so inspect the design before retrying.

Setup

See transport checks and manual recovery for unresolved script ownership after a timeout or engine fault.

Install Git, Python 3.12, and Altium on Windows. Use your own Altium path.

git clone https://github.com/M-R-Abedini/Altium-MCP-Suite.git
Set-Location Altium-MCP-Suite
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe setup.py --altium-exe "C:\Program Files\Altium\AD26\X2.EXE"

Merge the generated mcp.local.json (or codex.local.toml) into your MCP client config and restart its connections. Open your project in Altium and call app_context to check the bridge.

For a smaller tool list, pass --toolset minimal to setup.py or the EDA server. Discover an operation with tool_catalog(query="...", with_schema=True), then call tool_invoke(name="...", arguments={...}). All operations remain available; schemas load on demand with the same input validation as full mode. See measured latency and tool-list size.

Push-Location altium-designer-mcp
cargo build --release --locked
Pop-Location
.\.venv\Scripts\python.exe setup.py --altium-exe "C:\Program Files\Altium\AD26\X2.EXE" --library-dir "D:\MyProject\Libraries"

The library server is optional (needs the pinned Rust toolchain + VS C++ build tools). Repeat --library-dir for more directories.

Questions and contributions

Ask setup and usage questions in Q&A.
For bugs and feature requests, use Issues.
See the contributing guide for development setup, tests, translations, and crediting collaborators.

License

New suite code is MIT. Bundled projects keep their own licenses — see UPSTREAM.json.

Reviews (0)

No results found