该项目是一个用于 KiCad 的模型上下文协议(MCP)服务器。作为利用 KiCad 官方 IPC-API 的 MCP 服务器,它提供了最稳定可靠的方式让像 Claude 这样的 AI 模型与 KiCad 交互,自动化并辅助 PCB 设计和原理图任务。
kicad-python 库与正在运行的 KiCad 会话通信。https://github.com/user-attachments/assets/e2ba57e7-2c77-4c56-a911-c461c77307e4
https://github.com/user-attachments/assets/de6c93dc-8808-4321-827e-ebad0556e7b1
https://github.com/user-attachments/assets/0fea60de-d012-4b4d-bfa4-dd1b758b2c7f
该服务器具有 AnalyzeTools 以增强板分析。一个关键工具是 get_board_status,它提供 PCB 布局的全面概述,包括截图。
为了确保稳健可靠的运行,服务器使用了 ActionFlowManager。此管理器通过在每次操作前后自动调用 get_board_status 来协调操作执行。这种流程为 AI 模型提供了关键上下文:
这一自动化验证过程显著提高了自动化 PCB 设计任务的准确性和可靠性。
借助这个 MCP 服务器,AI 模型可以执行以下任务:
get_board_status 查询板的整体状态信息进行综合分析。本项目使用 Poetry 管理依赖项。
kicad-python本项目使用 kicad-python 库作为 Git 子模块。因此,在运行本项目之前,必须构建并安装 kicad-python。
克隆仓库并初始化子模块:
运行 git submodule update --init 将 kicad-python 的源代码添加为子模块。
git submodule update --init --depth 1
构建并安装 kicad-python:
导航到 kicad-python 目录,并按照该项目的 COMPILING.md 文件中的说明构建并安装库。
在运行服务器之前,需要在项目根目录 (KiCad-mcp-python/.env) 中创建一个 .env 文件。此文件对于依赖于 KiCad 命令行界面(CLI)的工具至关重要,例如 get_board_status,它生成截图以提供板的视觉上下文。它存储服务器正确运行所需的环境变量。
创建一个名为 .env 的文件,并添加以下内容,根据您的系统配置调整路径:
KICAD_CLI_PATH=/path/to/your/kicad-cli
PCB_PATHS=/path/to/your/project1.kicad_pcb,/path/to/your/project2.kicad_pcb
变量解释:
KICAD_CLI_PATH:KiCad 命令行界面(CLI)可执行文件的绝对路径。
/Applications/KiCad/KiCad.app/Contents/MacOS/kicad-cli
例子:C:\Program Files\KiCad\7.0\bin\kicad-cli.exe/usr/bin/kicad-cliPCB_PATHS:您希望 MCP 服务器能够访问的 .kicad_pcb 文件的绝对路径的逗号分隔列表。安装依赖项:
安装 kicad-python 后,返回到本项目的根目录,并运行以下命令以安装剩余的依赖项:
poetry install
启用 KiCad IPC 服务器: 启动 KiCad 并通过选择 工具 -> 外部插件 -> 启动服务器 来启用 IPC 服务器。
启动 MCP 服务器: 使用以下命令启动 MCP 服务器:
poetry run python main.py
服务器现在等待来自 MCP 客户端的连接。
要使用此服务器与 MCP 客户端(如 VSCode 扩展)配合使用,需要正确配置服务器执行命令。
查找 Poetry 虚拟环境解释器路径: 运行以下命令以找到当前项目 Poetry 虚拟环境中安装的 Python 解释器的完整路径:
poetry env info --path
复制命令输出的路径(例如,/pypoetry/virtualenvs/kicad-mcp-python-xxxxxxxx-py3.10)。
添加 MCP 服务器配置:
在您的 MCP 客户端配置文件(例如 mcp_servers.json)中添加服务器信息如下:
command:通过在复制的路径后面追加 /bin/python 输入解释器的完整路径。args:添加 ["/path/to/your/KiCad-mcp-python/main.py"] 以指定要运行的脚本。确保提供 main.py 的完整绝对路径。配置示例:
{
"servers": [
{
"name": "kicad-mcp-server",
"command": "/pypoetry/virtualenvs/kicad-mcp-python-xxxxxxxx-py3.10/bin/python",
"args": ["/path/to/your/kicad-mcp-python/main.py"],
}
]
}
get_board_status 以包含操作前后的板信息以及截图进行视觉验证。(0714 提交)kicad-python 子模块安装在内的详细设置说明。