项目简介
这是一个基于 Model Context Protocol (MCP) 构建的服务器,它通过 Python 接口连接到 Altium Designer 电路设计软件。其核心目的是让支持MCP协议的大语言模型(如 Claude for Desktop)能够理解和操作 Altium Designer 中的设计文件(原理图和PCB),从而实现通过自然语言对电路项目进行查询、修改甚至自动化操作。
主要功能点
本服务通过注册一系列工具(Tools)来提供与 Altium Designer 的交互能力:
- 元件信息查询: 获取设计中所有元件的标识符、属性名称、属性值,或根据标识符获取特定元件的详细数据和引脚信息。
- 原理图操作: 获取原理图中元件的定位数据;能够根据引脚列表创建新的原理图符号,并可获取符号放置规则或参考现有库符号。
- PCB布局操作: 获取PCB中的所有网络名称、层信息、设计规则;可以创建网络类;能够获取选中元件的坐标;支持移动元件;提供布局复用工具,用于将一组元件的布局应用到另一组元件。
- 通用功能: 能够获取当前Altium窗口的截图(支持原理图或PCB视图),以及检查MCP服务器自身的状态。
安装步骤
本服务目前主要在 Windows 操作系统上测试。Altium 脚本中的路径硬编码为 'C:\AltiumMCP',因此建议克隆到该目录。
- 克隆仓库: 将项目仓库克隆到 'C:' 目录下,确保项目文件位于 'C:\AltiumMCP'。
- 安装 uv: 使用 'uv' 工具管理 Python 依赖。
- 打开 PowerShell 运行安装命令:
powershell -c "irm https://astral.sh/uv/install.ps1 | iex" - 将 uv 的可执行文件路径添加到系统 PATH 环境变量中(通常是 'C:\Users<你的用户名>.local\bin',请根据实际情况调整)。
set Path=C:\Users\nntra\.local\bin;%Path%
- 打开 PowerShell 运行安装命令:
- 安装依赖: 打开命令提示符(cmd)或 PowerShell,进入 'C:\AltiumMCP' 目录,运行以下命令安装项目所需的 Python 包:
uv sync - Altium 脚本: 确保 Altium 脚本项目 ('AltiumScript\Altium_API.PrjScr') 存在于 'C:\AltiumMCP\AltiumScript' 目录下。
- 启动服务: 在命令提示符或 PowerShell 中,进入 'C:\AltiumMCP' 目录,通过 uv 运行服务器启动文件:
首次运行服务时,它会尝试自动查找 Altium Designer 安装路径,如果找不到,会提示您手动选择 'X2.EXE' 文件。uv run server.py
服务器配置(用于MCP客户端)
MCP服务器需要通过支持MCP协议的客户端来连接和使用。您需要在客户端的配置文件中指定如何启动这个Altium MCP服务器。以下是配置示例,适用于像 Claude for Desktop 这样的客户端(具体配置方式请参考您的MCP客户端文档):
用户需要在客户端的配置文件(通常是一个 JSON 文件,例如 'claude_desktop_config.json')的 'mcpServers' 部分添加一个条目。例如:
{ "mcpServers": { "altium": { // 服务器的内部名称,客户端用它来引用该服务器 "command": "uv", // 用于启动服务器进程的命令 "args": [ // 命令的参数列表 "--directory", "C:\\AltiumMCP", // uv 参数:指定工作目录 "run", "server.py" // uv 参数:运行 server.py 文件 ] } } }
请注意: 客户端实际运行的 'command' 和 'args' 组合起来应该等同于您在安装步骤中用于启动服务的命令行 ('uv --directory C:\AltiumMCP run server.py')。确保 'command' 指向 'uv' 可执行文件(或在系统的PATH中能找到),且 'args' 中的路径与您实际克隆项目的路径一致。
配置完成后,重启您的MCP客户端,客户端应该能检测到并连接到 Altium MCP 服务器。
基本使用方法
- 确保 Altium Designer 正在运行,并且打开了您想要交互的电路设计项目(原理图或 PCB)。
- 启动 Altium MCP 服务器(按照安装步骤中的方法)。
- 启动您的MCP客户端(如 Claude for Desktop)。客户端应该会显示 Altium MCP 集成服务已可用(通常会显示一个图标,如 README 中的锤子图标)。
- 在客户端的聊天界面中,使用自然语言向大语言模型提出与您的 Altium 设计相关的请求或问题。大语言模型会识别您的意图,并调用 Altium MCP 服务器提供的相应工具来执行操作或获取信息。
- 根据请求,大语言模型会返回工具执行的结果或回答您的问题。对于需要用户交互(如选择元件)的工具,Altium Designer 可能会提示您进行操作。
例如,您可以尝试README中提供的命令示例:
- "Get me all parts on my design made by Molex" (获取设计中所有Molex制造的元件)
- "Give me the description and part number of U4" (告诉我元件 U4 的描述和型号)
- "Get me all length matching rules" (获取所有长度匹配规则)
信息
分类
桌面与硬件