TLDR:使用Claude来控制或询问有关您的Altium项目的问题。 这是一个模型上下文协议(MCP)服务器,提供了一个通过Python与Altium Designer交互的接口。该服务器允许对PCB设计进行查询和编程操作。
注意:目前Claude在PCB上放置组件时会失败。
C:\AltiumMCP\symbol_placement_rules.txt描述作为引脚放置规则。请根据自己的喜好进行修改。)下拉菜单 > 文件 > 设置 > 扩展 > 高级 > Python: 3.11.0。如果没有,请安装3.11并添加Python到PATH。altium-mcp.dxt桌面扩展文件。下拉菜单 > 文件 > 设置 > 扩展 > 高级 > 安装扩展... 选择.dxt文件。您不需要重启Claude,现在应该可以在搜索栏附近的工具菜单中看到altium-mcp。

server/lib目录中的包:从根目录 > python -m pip install --no-cache-dir --target server/lib -r requirements.txtserver/lib的清单,并包含任何新增的工具,提升修订版本等。"server": {
"type": "python",
"entry_point": "server/main.py",
"mcp_config": {
"command": "python",
"args": ["${__dirname}/server/main.py"],
"env": {
"PYTHONPATH": "${__dirname}/server/lib"
}
}
}
npm install -g @anthropic-ai/dxt,打包dxt:dxt pack在Windows上 1.
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
然后
set Path=C:\Users\nntra\.local\bin;%Path%
uv venv server/venv --relocatableuv pip install --python server/venv/Scripts/python.exe -r requirements.txtserver/venv的清单,并包含任何新增的工具,提升修订版本等。 "server": {
"type": "python",
"entry_point": "server/main.py",
"mcp_config": {
"command": "${__dirname}/server/venv/Scripts/python.exe",
"args": ["${__dirname}/server/main.py"],
"env": {
"PYTHONPATH": "${__dirname}/server/venv"
}
}
}
npm install -g @anthropic-ai/dxt,打包d
xt:dxt pack首次启动claude时,服务器将自动尝试定位您的Altium Designer安装。它将在所有以C:\Program Files\Altium\AD*开头的目录中搜索,并使用修订号最大的那个。如果找不到任何安装,当您第一次运行服务器时,将被提示手动选择Altium可执行文件(X2.EXE)。使用Altium的DelphiScript脚本创建了MCP服务器与Altium之间的API。
服务器提供了几个工具来与Altium Designer交互:
get_output_job_containers:使用当前打开的.OutJob文件,读取所有可用的输出容器run_output_jobs:传递当前打开的.OutJob中的输出作业容器名称列表,运行任意数量的任务。.OutJob必须是当前聚焦的文档。get_all_designators:获取当前板上的所有组件标识符列表get_all_component_property_names:获取所有可用组件属性名称的列表get_component_property_values:获取特定属性的所有组件值get_component_data:通过标识符获取特定组件的详细数据get_component_pins:获取指定组件的引脚信息get_schematic_data:获取指定组件的原理图数据create_schematic_symbol(YouTube):将引脚列表及其类型和坐标传递给Altium脚本get_symbol_placement_rules:创建符号辅助工具,读取C:\AltiumMCP\symbol_placement_rules.txt以获取符号创建的引脚放置规则。get_library_symbol_reference:创建符号辅助工具,使用打开的库符号作为示例来创建符号
get_all_nets:返回PCB上的唯一网络列表create_net_class(YouTube):从网络列表创建网络类get_pcb_layers:获取详细的层信息,包括电气层、机械层、层对等get_pcb_layer_stackup:获取堆叠信息,如介电材料、层厚度等set_pcb_layer_visibility(YouTube):开启或关闭任何一组层。例如开启内层。关闭丝印层。get_pcb_rules:获取布局中所有PCB规则的规则描述。get_selected_components_coordinates:获取当前选中组件的位置和旋转信息move_components:按X和Y偏移量移动指定组件layout_duplicator(YouTube):假设您已经在PCB上选择了源组件,开始布局复制。layout_duplicator_apply:layout_duplicator的第2步。代理将自动使用部件信息预测源和目标组件之间的匹配,然后将这些匹配发送给放置脚本。与Altium内置的布局复制相比,这种方式布局复制的一个很酷之处在于,确切的组件不必匹配,因为LLM可以通过查看描述来理解哪些组件匹配,哪些没有匹配。这是很难硬编码实现的。

get_screenshot:拍摄Altium PCB窗口或原理图窗口的截图,这是当前视图。如果打开但聚焦于不同类型的文档,它应该自动聚焦于这些之一。注意:Claude在分析电路或布局截图这样的图像方面并不擅长。ChatGPT在这方面非常擅长,但他们还没有发布MCP,因此这种功能在未来会更有用。get_server_status:检查MCP服务器的状态,包括Altium和脚本文件的路径服务器通过脚本桥接与Altium Designer通信:
workspace\request.jsonAltium_API.PrjScr脚本workspace\response.json这是一个第三方集成,不是由Altium制作的。由coffeenmusic制作
scripts-libraries\Scripts - PCB\FilterObjects\scripts-libraries\Scripts - SCH\SelectionFilter\DXP/ReportPCBViews.pasPCB/CreateRules.pas待办测试: 需要添加以下测试单元
get_pcb_layersset_pcb_layer_visibilitylayout_duplicatorget_pcb_screenshot