MCP server for Altium Designer, 150+ tools for schematic, PCB, and library automation via a persistent DelphiScript bridge.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"eda-agent": {
"command": "<see-readme>",
"args": []
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
MCP server that lets an AI (or any MCP-compatible client) interact with a live Altium Designer session. It exposes 195+ tools covering schematic, PCB, library, and project operations over a persistent DelphiScript bridge — the AI reads the design you currently have open, asks questions about it, and can modify it in place while you watch.
This server supports HTTP transport. Be the first to test it — help the community know if it works.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in other
Persistent memory using a knowledge graph
Privacy-first. MCP is the protocol for tool access. We're the virtualization layer for context.
Make HTTP requests and fetch web content
Read, write, and manage files on the local filesystem
MCP Security Weekly
Get CVE alerts and security updates for Eda Agent and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
MCP server that lets an AI (or any MCP-compatible client) interact with a live Altium Designer session. It exposes 195+ tools covering schematic, PCB, library, and project operations over a persistent DelphiScript bridge — the AI reads the design you currently have open, asks questions about it, and can modify it in place while you watch.
⚠️ Experimental. Not all tools are extensively tested. Some can crash the Altium DelphiScript engine. See Known limitations before using on any design you haven't backed up.
Claude Code reviewing a buck converter through eda-agent. The feedback resistor divider on this schematic is intentionally wrong — Claude catches it among other recommendations.
A floating Altium-side window shows live status, request count, cumulative Altium-side time, auto-shutdown countdown, and a per-command log with durations. Hide pings filters the 30 s keep-alive traffic; Only >100ms isolates slow calls. The Detach button saves all dirty docs and exits the polling loop cleanly.
eda-agent (Python, launched by your MCP client) sends commands via file-based IPCThis is not a batch tool that opens a project, runs a script, and exits. It's a live connection for as long as you want it — conversational design review, guided refactoring, ad-hoc BOM queries, "what nets does this resistor connect to?" — all on the project you currently have open.
query_objects, modify_objects, create_object, delete_objects, run_process) that work on almost any schematic or PCB object type via late-binding — avoids per-type handler proliferationbatch_modify, batch_create, batch_delete, pcb_place_tracks, pcb_move_components, place_wires, place_sch_components_from_library, lib_add_pins, get_connectivity_many, sch_attach_spice_primitives. Collapse N LLM turns + N IPC round-trips into one. Typical wall-time savings: 10–100× on multi-item editsdesign_review_snapshot bundles 8–12 review reads (project info, components, nets, rules, diff, messages, stats, unrouted, BOM) into a single call. One LLM turn instead of a dozenpcb_get_components, get_bom, get_component_info, find_component, lib_search, design_review_snapshot, sch_get_simulation_readiness) carries a _datasheet_guidance block with per-part vendor search queries. attach_to_altium / ping_altium carry a _system_reminder so every MCP client that connects sees the rule at session start. LLM-fabricated datasheet values are forbidden; WebFetch/WebSearch are called out by namecrossref_net(net_name) compares the schematic pin list against the PCB pad list for the same net. Catches ECO drift, stale post-fabrication routing, phantom nets from port/sheet-entry rename conflicts. in_sync flag + sch_only / pcb_only diffsch_get_simulation_readiness audits every component and partitions into ready / needs-primitive / needs-file. sch_attach_spice_primitive(s) sets SpicePrefix + Value on passives. sch_attach_spice_model links a vendor .mdl / .ckt. sim_run dispatches the simulator. Built-in guardrail: never fabricate a SPICE model