KiCad控制服务

一个用于通过KiCad IPC API从Claude Code控制KiCad 9的MCP服务器,实验性项目需谨慎使用。

  • by Netlist-Studio
  • Python
  • 本地部署
  • 22 星标
  • 更新于
在 GitHub 查看 Netlist-Studio/kicad-mcp

使用说明

KICAD-MCP

一个MCP服务器,用于通过克劳德代码的IPC API控制KiCad 9。实验性——使用风险自负。

需求

  • 启用API服务器的KiCad 9(首选项>插件>KiCad API服务器)
  • Python>=3.10
  • 紫外线

安装

git clone https://github.com/your-org/kicad-mcp
cd kicad-mcp
uv sync

添加到克劳德代码:

claude mcp add kicad -- uv --directory /path/to/kicad-mcp run kicad-mcp

或添加到 .claude/settings.json 手动:

"kicad": {
  "command": "uv",
  "args": ["--directory", "/path/to/kicad-mcp", "run", "kicad-mcp"]
}

打开A .kicad_pcb 在KiCad中创建文件,然后测试您的连接:

uv run kicad-mcp

运作原理

服务器连接到KiCad的本地UNIX套接字(/tmp/kicad/api.sock)使用 kicad-python 绑定。它将电路板数据和编辑操作作为MCP工具公开,允许Claude读取电路板状态并进行更改,这些更改会立即出现在KiCad编辑器中,并提供完全撤消支持。

所有位置均以毫米为单位。写入操作被封装在一个提交中,因此它们显示为一个撤消步骤。

可用工具

工具 说明
ping 检查KiCad是否正在运行且可访问
get_version 获取KiCad版本字符串
get_board_info 足迹、轨迹、通孔、网络、区域的汇总计数
get_footprints 列出足迹的位置、层和值;支持引用过滤器
get_nets 按名称和代码列出所有网络
get_tracks 列出所有铜轨道段
get_vias 列出所有通孔
get_zones 列出所有铜矿区
get_board_outline 返回边缘。切割几何图形
get_component_connections 显示每个组件所在的网络以及哪些其他组件共享这些网络
move_footprint 将足迹移动到绝对位置
rotate_footprint 以度为单位设置足迹的绝对旋转
batch_move_footprints 在一个撤消步骤中最多移动约5个足迹
create_track 将铜缆轨道段添加到命名网中
remove_items_by_id 按KiCad项目ID删除板项目
refill_zones 重新填充所有铜区
save_board 将电路板保存到磁盘

令牌使用警告

一些工具可以在复杂的电路板上返回大量响应,并消耗大量上下文:

工具 为什么它可以很大
get_component_connections 返回每个组件的每个网络加上所有共享的网络邻居——输出随O(组件×网络)增长。在致密的板上, 避免没有电话 reference 过滤器.
get_footprints 返回所有足迹。使用 reference_filter 缩小结果的论点(例如。 "U", "C")而不是拿走一切。
get_tracks 每个轨道段一个条目——一个完全布线的板可以有数千个条目。
get_nets 每个网一个条目——大型设计可以有数百个条目。更喜欢 get_board_info 快速计数。

示例用法

一旦添加到Claude Code中,用自然语言描述你想要什么:

“移动电路板轮廓内的所有组件,并将无源器件分组到它们连接的芯片旁边。”

“将晶体负载盖C3和C4布置到Y1。”

“显示与U1连接的所有内容。”

“重新填充区域并保存电路板。”


建于 克劳德代码