Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

altium-mcp
Altium Model Context Protocol server and Altium API script
3 years
Works with Finder
7
Github Watches
0
Github Forks
7
Github Stars
Altium MCP Server
TLDR: Use Claude to control or ask questions about your Altium project. This is a Model Context Protocol (MCP) server that provides an interface to interact with Altium Designer through Python. The server allows for querying and manipulation of PCB designs programmatically.
Note: Having Claude place components on the PCB currently fails hard.
Example commands
- Create a schematic symbol from the attached MPM3650 switching regulator datasheet and make sure to strictly follow the symbol placement rules. (Note: Need to open a schematic library. Uses
C:\AltiumMCP\symbol_placement_rules.txt
description as pin placement rules. Please modify for your own preferences.) - Duplicate my selected layout. (Will prompt user to now select destination components. Supports Component, Track, Arc, Via, Polygon, & Region)
- Get me all parts on my design made by Molex
- Give me the description and part number of U4
- Place the selected parts on my pcb with best practices for a switching regulator. Note: It tries, but does terrible placement. Hopefully I can find a way to improve this.
- Give me a list of all IC designators in my design
- Get me all length matching rules
Setup
Currently only tested on Windows & the Altium scripts have hard coded C:\AltiumMCP
paths for now. That's probably a good TODO item.
- Clone the repo to
C:\
so you end up with aC:\AltiumMCP\
directory - Install uv
On Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
and then
set Path=C:\Users\nntra\.local\bin;%Path%
- Open cmd in
C:\AltiumMCP\
directory and runuv sync
to add packages from pyproject.toml file.
Claude for Desktop Integration
Enable Developer Mode under Claude > Help > Enable Developer Mode
Go to Claude > Settings > Developer > Edit Config > claude_desktop_config.json to include the following: Below is specific to Windows, TODO: find out how to run on both without a hard coded path
{
"mcpServers": {
"altium": {
"command": "uv",
"args": [
"--directory",
"C:\\AltiumMCP",
"run",
"server.py"
]
}
}
}
Using with Claude
Restart Claude: Right click on the Claude icon in the System Tray > Quit. Then re-open Claude desktop.
Once the config file has been set on Claude, and the addon is running on Altium, you will see a hammer icon with tools for the Altium MCP.
Configuration
When launching claude for the first time, the server will automatically try to locate your Altium Designer installation. It will search for all directories that start with C:\Program Files\Altium\AD*
and use the one with the largets revision number. If it cannot find any, you will be prompted to select the Altium executable (X2.EXE) manually when you first run the server. Altium's DelphiScript scripting is used to create an API between the mcp server and Altium. It expects to find this script project in C:\AltiumMCP\AltiumScript\
.
Available Tools
The server provides several tools to interact with Altium Designer:
Component Information
-
get_all_designators
: Get a list of all component designators in the current board -
get_all_component_property_names
: Get a list of all available component property names -
get_component_property_values
: Get the values of a specific property for all components -
get_component_data
: Get detailed data for specific components by designator -
get_component_pins
: Get pin information for specified components
Schematic/Symbol
-
get_schematic_data
: Get schematic data for specified components -
create_schematic_symbol
(YouTube): Passes pin list with pin type & coordinates to Altium script -
get_symbol_placement_rules
: Create symbol's helper tool that readsC:\AltiumMCP\symbol_placement_rules.txt
to get pin placement rules for symbol creation. -
get_library_symbol_reference
: Create symbol's helper tool to use an open library symbol as an example to create the symbol
Layout Operations
-
get_all_nets
: Returns a list of unique nets from the pcb -
create_net_class
(YouTube): Create a net class from a list of nets -
get_pcb_layers
: Get detailed layer information including electrical, mechanical, layer pairs, etc. -
set_pcb_layer_visibility
(YouTube): Turn on or off any group of layers. For example turn on inner layers. Turn off silk. -
get_pcb_rules
: Gets the rule descriptions for all pcb rules in layout. -
get_selected_components_coordinates
: Get position and rotation information for currently selected components -
move_components
: Move specified components by X and Y offsets -
layout_duplicator
(YouTube): Starts layout duplication assuming you have already selected the source components on the PCB. -
layout_duplicator_apply
: Action #2 oflayout_duplicator
. Agent will use part info automatically to predict the match between source and destination components, then will send those matches to the place script.
The cool thing about layout duplication this way as opposed to with Altium's built in layout replication, is that the exact components don't have to match because the LLM can look through the descriptions and understand which components match and which don't have a match. That's something that can't really be hard coded.
Both
-
get_screenshot
: Take a screenshot of the Altium PCB window or Schematic Window that is the current view. It should auto focus either of these if it is open but a different document type is focused. Note: Claude is not very good at analyzing images like circuits or layout screenshots. ChatGPT is very good at it, but they haven't released MCP yet, so this functionality will be more useful in the future.
Server Status
-
get_server_status
: Check the status of the MCP server, including paths to Altium and script files
How It Works
The server communicates with Altium Designer using a scripting bridge:
- It writes command requests to
C:\AltiumMCP\request.json
- It launches Altium with instructions to run the
Altium_API.PrjScr
script - The script processes the request and writes results to
C:\AltiumMCP\response.json
- The server reads and returns the response
References
- BlenderMCP: I got inspired by hearing about MCP being used in Blender and used it as a reference. https://github.com/ahujasid/blender-mcp
- Claude is not familiar with DelphiScript, so many of the Altium provided example scripts were used as reference.
- Used CopyDesignatorsToMechLayerPair script by Petar Perisin and Randy Clemmons for reference on how to .Replicate objects (used in layout duplicator)
- Petar Perisin's Select Bad Connections Script: For understanding how to walk pcb primitives (track, arc, via, etc) connected to a pad
- Matija Markovic and Petar Perisin Distribute Script: For understanding how to properly let the GUI know when I've updated tracks' nets
- Petar Perisin's Room from Poly: Used as reference to detect poly to pad overlap since I couldn't get more tradition methods to work.
- Petar Perisin's Layer Panel Script: Used as reference for getting layers and changing layer visibility
Disclaimer
This is a third-party integration and not made by Altium. Made by coffeenmusic
TODO:
- Create a separate function w/ a case statement that decides which document to focus
- Show/Hide Panels:
DXP/ReportPCBViews.pas
- Create rules:
PCB/CreateRules.pas
- Run DRC: IPCB_Board.RunBatchDesignRuleCheck(
- Move cursor to position: IPCB_Board.XCursor, IPCB_Board.YCursor
- Add get schematic & pcb library path for footprint.
- Add get symbol from library
- log response time of each tool
- Add go to schematic sheet
- Go to sheet with component designator
- Board.ChooseLocation(x, y, 'Test');
- Zoom to selected objects:
- Change Schematic Selection Filter: SelectionFilter.pas
- Place schematic objects (place component from library): PlaceSchObjects.pas
- How can I read through components from libraries in Components panel?
TODO Tests: Need to add the following test units
-
get_pcb_layers
-
set_pcb_layer_visibility
-
layout_duplicator
-
get_pcb_screenshot
相关推荐
PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/MCP/Docker/Zotero
🔥 1Panel provides an intuitive web interface and MCP Server to manage websites, files, containers, databases, and LLMs on a Linux server.
Easily create LLM tools and agents using plain Bash/JavaScript/Python functions.
Artifact2MCP Generator allows generation of MCP server automatically & dynamically given smart contract's compiled artifact (chain‑agnostic)
😎简单易用、🧩丰富生态 - 大模型原生即时通信机器人平台 | 适配 QQ / 微信(企业微信、个人微信)/ 飞书 / 钉钉 / Discord / Telegram / Slack 等平台 | 支持 ChatGPT、DeepSeek、Dify、Claude、Gemini、xAI、PPIO、Ollama、LM Studio、阿里云百炼、火山方舟、SiliconFlow、Qwen、Moonshot、ChatGLM、SillyTraven、MCP 等 LLM 的机器人 / Agent | LLM-based instant messaging bots platform, supports Discord, Telegram, WeChat, Lark, DingTalk, QQ, Slack
Reviews

user_xcyO0v8N
I've been using Altium-MCP for a while now, and it has revolutionized my work with microcontroller projects. The tool is extremely user-friendly, and the features are very comprehensive, making my workflow much smoother. Kudos to Coffeenmusic for creating such an intuitive and efficient product! I highly recommend it to anyone working in the field.

user_5q0LVKCn
As a dedicated user of altium-mcp by coffeenmusic, I find it to be an indispensable tool for my development needs. The seamless integration and user-friendly interface make it stand out. It has significantly improved my project efficiency. Highly recommended to anyone looking for a reliable MCP application!

user_3aoirvQ6
As a dedicated user of altium-mcp, I must say it's an exceptional tool for anyone involved in PCB design. Created by coffeenmusic, it provides an intuitive and efficient experience. The seamless integration and robust feature set make it a standout in its field. Highly recommended!

user_3KTk6O5i
I've been an avid user of the Altium-MCP and it has significantly streamlined my PCB design process. The intuitive interface and powerful features by Coffeenmusic make it a superior choice for professionals. It's an absolute game-changer in the electronics industry. Highly recommended!

user_6F1k3L3I
As a dedicated user of Altium-MCP by coffeenmusic, I can confidently say this tool has revolutionized my design process. The seamless integration and user-friendly interface make complex projects much more manageable. Highly recommended for anyone serious about their PCB design!

user_2dWEcja4
As a devoted user of the Altium-MCP application by coffeenmusic, I am thoroughly impressed with its comprehensive and intuitive interface. The seamless integration with various design processes has significantly enhanced my productivity. Highly recommend this tool to anyone in the field!

user_MI6L1s8b
Altium-MCP by coffeenmusic is a brilliant addition to any engineer's toolkit. Its intuitive interface and robust features make PCB design smoother and more efficient. As a loyal user, I appreciate how it seamlessly integrates with other tools, saving time and enhancing productivity. Highly recommended for anyone in the field!

user_Ri62dG76
As a dedicated user of the Altium-MCP application by coffeenmusic, I'm thoroughly impressed with its functionality and ease of use. This tool has significantly streamlined my PCB design process, making it more efficient and enjoyable. Its user-friendly interface and robust feature set have made it an indispensable part of my workflow. Highly recommended for anyone serious about PCB design!