mcpField
K
KiCad Schematics

KiCad Schematics

本地服务
github.com/unmateria科研与教育311 周前更新

关于 KiCad Schematics

KiCad Schematics 是供 Claude 等 MCP 客户端通过自然语言生成 KiCad 原理图的 MCP 服务。它将电路描述编译为可编辑的 `.kicad_sch` 文件,并在输出前校验连接与运行 KiCad ERC。

主要功能

  1. 01编译原理图设计描述
  2. 02放置元件并连接网络
  3. 03查找和导入元件符号
  4. 04校验连接并运行 ERC
  5. 05导出原理图预览或 PDF

适用场景

  1. 01根据文字描述绘制电路原理图
  2. 02检查电气规则并查看违规项
  3. 03为 KiCad 缺失的元件导入符号
  4. 04修改设计后重新编译原理图

MCP 相关

服务向 MCP 客户端提供 33 个工具,包括原理图编译、元件管理、文件检查和导出;生成文件可在 KiCad 中打开编辑。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbmcp-kicad.mcpb

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP-KiCad

通过与 Claude 对话设计电子原理图。 这是一个 MCP 服务,可让大模型绘制真正的 KiCad 原理图——放置元件、连接网络、添加电源符号并运行 KiCad 自带的电气规则检查——然后交给你一个 .kicad_sch 文件,你可以打开、编辑并用于制造。

阅读西班牙语版

由 MCP-KiCad 生成的 LM2596 降压转换器原理图

一款 LM2596 降压转换器。没有人手动画出它:它是根据文本描述编译生成的,并且通过了 ERC 检查。


它实际能做什么

你用日常语言描述电路。Claude 会编写一段简短的声明式描述,并调用一个工具 compile_schematic,将描述转换为完整的原理图文件。

你: 为我制作一个以约 1 Hz 运行、使用 5 V 电源的 555 无稳态电路。

Claude: [查找 NE555 的实际引脚名称,编写设计并进行编译] 完成——7 个元件,ERC 检查通过。这是预览。

生成的文件可以像其他原理图一样在 KiCad 中打开。它不是图片,而是一个包含真实网络表、可直接用于 PCB 布局的真正文件。

输出为何可用

生成某些东西很容易;生成一份能让人接受的原理图却不容易。每份编译好的原理图在交给你之前都会经过检查,编译器会拒绝输出任何未通过检查的文件:

保证实现方式
导线不会与其他网络的导线交叉几何检查会重新检查每一段导线。冲突的导线会改用网络标签
导线不会穿过元件本体使用相同的检查,并对照每个符号的实际轮廓进行核验
每条声明的连接都存在重新读取生成的文件,并将其网络表与请求内容进行比较
不会意外产生额外连接反向执行相同检查——如果导线碰到不该连接的引脚,就会报错
电源符号确实接触其引脚根据实际接触情况核验,而非依据网络名称
导线相交处都有连接点该规则是通过测量 KiCad 随附的 115 份原理图得出的:三条或更多导线末端相交处,以及两条导线在引脚处相交处,都要有连接点
KiCad 确认无误kicad-cli 会对结果运行 ERC,并随结果一并返回报告

如果无法干净地绘制连接,就会改用网络标签,而不会生成错误的导线。原理图绝不会在没有提示的情况下出错。

网络与自身交叉不属于上述情况:无论如何它都属于同一个网络,因此导线会在交叉处断开并加上连接点,而不会被丢弃。只有与其他网络发生真正冲突时,才会导致导线被替换。

它不能做什么
  • 不处理 PCB。 不做电路板布局、铜箔布线或 Gerber 文件。有意只处理原理图——错误原理图生成的 PCB 毫无价值。
  • 不发明元件。 它使用 KiCad 已安装的符号库;缺少的元件可以通过 find_part / import_part 从外部 KiCad 库导入——安装前会进行核验。如果某个元件无处可找,它会如实告知,而不会自行绘制。
  • 不是仿真器。 它会绘制你描述的电路,但不会告诉你这个电路是否合理。

要求

KiCad 10提供 kicad-cli,用于运行 ERC 和渲染。更早版本未经测试。
Claude Desktop 或 Claude Code或任何其他 MCP 客户端。
Go 1.24+仅在从源代码构建时需要。

安装

选项 A — 一键安装(推荐)

从 Releases 下载 mcp-kicad.mcpb,然后双击。Claude Desktop 会将其安装为扩展:无需编辑 JSON,也无需输入路径。此安装包包含适用于 Windows、macOS 和 Linux 的构建版本,因此同一个文件在所有平台上都能使用。

然后直接跳到检查是否正常运行。

在 Apple Silicon 上,捆绑的 macOS 构建版本会通过 Rosetta 运行。如果你想使用原生版本,请改为从选项 B 下载 mcp-kicad-darwin-arm64。

选项 B — 下载二进制文件
  1. 前往 Releases,下载适用于你系统的文件:

    系统文件
    Windows(Intel/AMD)mcp-kicad-windows-amd64.exe
    Linux(Intel/AMD)mcp-kicad-linux-amd64
    Linux(ARM,例如 Raspberry Pi)mcp-kicad-linux-arm64
    macOS(Apple Silicon)mcp-kicad-darwin-arm64
    macOS(Intel)mcp-kicad-darwin-amd64
  2. 将它放到任意位置,例如 C:\Tools\mcp-kicad.exe 或 ~/bin/mcp-kicad。

  3. 在 Linux 和 macOS 上,为它添加可执行权限:

    chmod +x ~/bin/mcp-kicad
    

    在 macOS 上,首次运行会因二进制文件未签名而被阻止。使用以下命令允许运行:

    xattr -d com.apple.quarantine ~/bin/mcp-kicad
    

无需安装其他内容。该二进制文件是独立的,无需配置文件:它会自行查找 KiCad。

选项 C — 从源代码构建
git clone https://github.com/unmateria/MCP-Kicad.git
cd MCP-Kicad
go build -o mcp-kicad ./cmd/server      # add .exe on Windows

将其连接到 Claude

如果你已安装 .mcpb 安装包,则无需执行此步骤——它会自动完成注册。

Claude Desktop

编辑配置文件——如果文件不存在,请创建它:

系统位置
Windows%APPDATA%\Claude\claude_desktop_config.json
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Linux~/.config/Claude/claude_desktop_config.json

添加服务:

{
  "mcpServers": {
    "kicad": {
      "command": "C:\\Tools\\mcp-kicad.exe",
      "args": []
    }
  }
}

在 Linux 或 macOS 上,命令是普通路径,例如 "/home/you/bin/mcp-kicad"。

Windows 注意: JSON 中的反斜杠必须加倍(C:\\Tools\\...)。单个反斜杠是服务无法启动的最常见原因。

然后完全退出 Claude Desktop 并重新打开。 仅重新加载窗口并不足够——服务作为子进程运行,只有在完全重启后才会启动。

Claude Code
claude mcp add kicad -- /path/to/mcp-kicad
检查是否正常运行

向 Claude 提问:

使用 get_project_info 检查 KiCad 设置。

你应该会收到检测到的 kicad-cli 路径、库目录和输出目录。如果提示找不到 kicad-cli,请参阅下方的配置。


使用方法

只需描述电路即可。具体说明你关心的内容——电源电压、所需的元件型号、已确定的数值——其余交给 Claude。

效果不错的提示词:

使用 LM7805 设计一个由 12 V 输入供电的 5 V 稳压电源,并添加输入和输出去耦电容以及电源指示 LED。

帮我制作一块 ATmega328P 最小系统板:16 MHz 晶振及负载电容、复位上拉电阻、ICSP 接口,以及两个电源引脚上的去耦电容。

搭建一个由两个晶体管构成的无稳态多谐振荡器,让两个 LED 以约 2 Hz 的频率闪烁。

之后可以提出的实用请求:

  • “显示原理图” — 渲染预览图。
  • “导出为 PDF” — 通过 kicad-cli 导出。
  • “运行 ERC” — 执行 KiCad 电气规则检查,并解释违规项。
  • “将去耦电容移近 U1 并重新编译” — 设计源文件是文本,因此修改起来很方便。

生成的文件会存放在输出目录中(get_output_dir 会告诉你位置;set_output_dir 可以更改该目录)。

设计源文件

在后台,Claude 会编写一份小型 JSON 文档并对其进行编译。你很少需要接触它,但值得了解一下,因为它解释了结果为何稳定——位置从不以毫米为单位指定,而是通过引脚对引脚进行锚定:

{
  "version": 1,
  "project": "led_18650",
  "sheet": "auto",

  "blocks": [
    {
      "name": "led",
      "symbols": [
        { "ref": "BT1", "lib": "Device:Battery_Cell", "value": "18650" },
        { "ref": "R1", "lib": "Device:R", "value": "100", "rot": 90,
          "place": { "pin": "1", "at": "BT1.+", "dir": "up", "cells": 1 } },
        { "ref": "D1", "lib": "Device:LED", "value": "LED_RED", "rot": 90,
          "place": { "pin": "A", "at": "R1.2", "dir": "right", "cells": 3 } }
      ]
    }
  ],

  "nets": {
    "VBAT":   ["BT1.+", "R1.1"],
    "_ANODE": ["R1.2", "D1.A"],
    "GND":    ["D1.K", "BT1.-"]
  },

  "power_nets": { "GND": "power:GND" }
}

根据上述源文件编译出的原理图

每个区块中的第一个符号会作为锚点;其他符号都连接到一个已放置符号的引脚上,距离为整数个 2.54 mm 网格单元。这样一来,无论模型如何调整顺序,原理图都能保持对齐网格且清晰易读。

完整格式详见 internal/tools/design_format.md(与 design_guide 工具提供给模型的文本相同),docs/compiler/ 中还有 13 个完整示例——从由两个部分组成的 LED 电路,到包含 27 个组件的温室控制器。


配置

无需配置。服务会在常见位置查找 KiCad:

  • Windows — C:\Program Files\KiCad\<version>\bin\kicad-cli.exe,然后是 PATH
  • Linux — /usr/bin/kicad-cli、/usr/local/bin/kicad-cli,然后是 PATH
  • macOS — /Applications/KiCad/KiCad.app/Contents/MacOS/kicad-cli,然后是 PATH

如果你的安装位置比较特殊,或者想更改文件的写入位置,请将 config.ini.example 复制到 config.ini,放在可执行文件旁边,然后填写所需内容:

[paths]
kicad_cli  = /opt/kicad/bin/kicad-cli
output_dir = /home/you/schematics
libs_root  = /home/you/mcp-kicad-libs

[api_keys]
mouser                =
digikey_client_id     =
digikey_client_secret =

API 密钥是可选的,且仅用于获取元数据——没有分销商提供 CAD 文件。所有实际提供符号和封装的来源都无需密钥。

生成的文件默认位于 <your home>/mcp-kicad/output。


工具

共提供 33 个工具。实际上,Claude 几乎所有操作都通过 compile_schematic 完成;其余工具用于检查和修复现有文件。

设计 compile_schematic · design_guide · get_design_context · kicad_workflow_help · apply_template · list_templates

查找零件 find_part · import_part · check_component_existence · symbol_pins · list_symbol_libraries · register_library

读取原理图 read_schematic · get_connectivity_summary · cluster_components · layout_metrics

手动编辑 create_schematic · add_symbol · connect_pins · disconnect_pin · add_wire · add_label · add_power_rail · junction · no_connect · connect_netlist · batch_schematic

检查和导出 validate_design(ERC/DRC) · export_schematic_image(SVG/PDF) · modify_pcb_layout

设置 get_project_info · get_output_dir · set_output_dir


KiCad 没有的元件

KiCad 自带约 22 700 个符号。你需要的那个通常不在其中。 find_part 会同时搜索所有来源,import_part 则会安装候选元件:

find_part   query="ESP32-C3-MINI-1"
import_part ref="espressif:symbols/Espressif.kicad_sym#ESP32-C3-MINI-1"
→ MCP_Imported:ESP32-C3-MINI-1   53 pins, footprint matched, ready for compile_schematic
来源内容许可证
已安装此计算机上的 KiCad 库和所有已导入的内容—
jlcpcbJLCPCB 的贴装目录:符号、封装和 3D 模型,全部相互匹配MIT
cernCERN 开源硬件:数千个真实零件编号对应的符号CERN-OHL-P-2.0
digikey-libDigi-Key 的库,包含 150 个分类库按仓库规定
espressifEspressif 自有的 ESP32 库按仓库规定
sparkfunSparkFun 的扩展板、传感器和连接器CC-SA-4.0
lcscLCSC / EasyEDA,转换为 KiCad 格式——按 C 编号涵盖大量长尾元件第三方数据
mouser、digikey仅用于识别:根据订单代码查找真实 MPN、制造商、封装和数据手册。没有 CAD 文件——没有分销商提供这些文件。需要 API 密钥—

每个来源只会被索引一次,存入 libs/cache/,此后即可离线搜索。只有经过验证后才会安装:

  1. 可以解析,
  2. kicad-cli 能够读回并重新写入,
  3. 能放入临时原理图,且引脚已解析,
  4. 引脚与封装焊盘进行比较,
  5. KiCad 能绘制出来,并生成图像。

验证失败的元件完全不会安装。 半导入的符号比没有符号更糟,因为它看起来像是能用。如果某个元件在所有来源中都不存在,答案就是它不存在——绝不悄悄选用替代品,也绝不凭空绘制几何图形。

所有内容都放入一个库 MCP_Imported,并向 KiCad 注册,因此 GUI 的符号选择器也能看到。每个导入的符号都带有 MCP_Source 属性,记录其来源、许可证和导入时间——这也是 libs/ 不纳入版本管理的原因:它可以根据来源重新生成。


工作原理

.design.json → 编译 → .kicad_sch

  1. 放置。 每个符号的位置都根据引脚锚点计算,并解析为 2.54 mm 网格上的绝对坐标。
  2. 布线。 简短且显然正确的连接使用闭式几何绘制;较长的连接则交给 A* 路由器处理,以避开元件本体。
  3. 电源。 每个引脚放置一个电源符号,沿引脚指向偏移,然后对齐成电源轨。
  4. 把关。 重新检查每条导线。凡是跨越其他网络、穿过符号或共线重叠的导线,都会被删除并替换为网络标签——连通性得以保留,错误连接则不会。
  5. 整理。 将位号和数值文本移出元件本体和导线;将图纸居中,如果电路放不下,则升级纸张尺寸。
  6. 验证。 从头重新读取文件,追踪并将其网络表与源文件进行比较,然后运行 kicad-cli ERC。

KiCad 文件通过真正的 S 表达式解析器(internal/sexp)进行读写——绝不通过文本模式匹配处理。


已知限制

  • 密集图纸上的文本仍可能重叠。 位号和网络标签会移到可选位置中重叠最少的地方,但在拥挤的原理图上,最佳位置有时仍会碰到其他内容。编译器会准确报告剩余问题,以及分别需要增加多少间距才能避免重叠。
  • 有些连接会变成标签而不是导线。 这是把关步骤在发挥作用。电气上完全相同,但不那么美观。
  • PNG 预览需要 Chromium 系浏览器(Edge、Chrome、Chromium 或 Brave)。如果没有,则改用质量较低的纯 Go 渲染器。目前只有 Windows 路径经过实际验证。
  • 已使用 Claude Desktop 和 Claude Code 进行测试。 其他 MCP 客户端应该也能运行,但尚未尝试。

开发

go build -o mcp-kicad ./cmd/server   # build
go test ./...                        # all tests
go run ./cmd/verify_e2e              # end-to-end smoke test
go run ./cmd/compile -o out.kicad_sch docs/compiler/led_18650.design.json
go run ./cmd/measure_layout out.kicad_sch    # layout quality metrics
go run ./cmd/pininfo <library.kicad_sym>     # pin positions in a symbol library

# The component sources are claims about the outside world. `go test ./...`
# never touches the network; these re-measure them on demand.
MCP_KICAD_LIVE=1 go test ./internal/parts/providers/ -run TestLive -v
MCP_KICAD_LIVE=1 go test ./internal/tools/ -run TestLiveImportAndCompile -v

docs/compiler/ 中的 13 个来源构成参考语料——对流水线的每项更改都会针对所有来源进行检查。

架构说明见 CLAUDE.md。


许可证

PolyForm Noncommercial License 1.0.0 — 可免费用于、修改并分享任何非商业用途,包括个人项目、业余电子制作、教育、研究和非营利组织。此许可证不授予商业使用权。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。