
KiCad Tools
io.github.ProductOfAmerica由 GitHub 帳號 ProductOfAmerica 發布v0.21.1更新於 Oct 24, 2026
Byte-preserving KiCad automation: 100+ tools for schematics, PCB layout, ERC, DRC, exports
概覽
KiCad MCP 伺服器,提供 109 個工具,讓助理直接讀取、修改、檢查並匯出磁碟上真實的 KiCad 電路圖、PCB 佈局與元件庫。
- 可以做什麼
- 讀取電路圖:列出元件、標籤、導線、階層圖頁、腳位與網路連線,找出未連接的腳位
- 編輯電路圖:放置、移動、刪除元件,加入導線、接點、標籤與電源符號,把腳位接到指定網路
- 讀取與編輯電路板:列出封裝、走線、網路、鋪銅區與層別;放置封裝,加入走線、導孔、鋪銅區與網路類別;從電路圖同步網表
- 檢查與匯出:執行 ERC 與 DRC,驗證佈局與階層結構,用 Freerouting 自動佈線,匯出 PDF、SVG、DXF、Gerber、鑽孔、3D、BOM、網表與貼片座標檔
- 管理專案與庫:建立專案骨架,新增與重排階層圖頁,自動編號,瀏覽與撰寫符號庫和封裝庫
- 適用情境
- 適合需要助理對 KiCad 電子設計做實際變更的情況,例如加入元件並接線、把電路圖同步到電路板、執行 ERC/DRC 或產生生產檔案,而不必手動編輯 s-expression 檔案。請注意本專案已進入維護模式,其 README 自述在小規模測試中一般編碼助理表現更好。
- 執行需求
- 以 Python 套件形式在本機執行(Python 3.11+),透過 uvx 或 pip 安裝。只有呼叫 KiCad 的工具才需要 KiCad 9.x 或 10.x:kicad-cli 用於 ERC、DRC、匯出與網表同步,pcbnew 綁定用於填滿鋪銅與自動佈線,放置內建元件需要官方庫。自動佈線另需 Java 25 或更新版本。路徑可用工具參數、KICAD_SCH_PATH、KICAD_PCB_PATH、KICAD_OUTPUT_DIR 等環境變數指定,或從工作目錄中的 .kicad_pro 自動辨識。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 KiCad Tools,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
mcp-server-kicad
Let an AI assistant edit real KiCad projects without corrupting them.
109 MCP tools covering schematic capture, PCB layout, symbol and footprint libraries, ERC and DRC, and manufacturing exports. No screenshots, no copy-paste, no hand-edited s-expressions: the model calls tools, KiCad files change on disk.
[PyPI] [Python] [KiCad] [Tests] [License]
Quick start • What you get • Configuration • Tool reference • Requirements • Contributing
[!IMPORTANT] Maintenance mode. As of October 2026 this project gets security fixes and KiCad compatibility fixes only. No new tools or features are planned. Existing installs keep working. Why
Why maintenance mode
The plugin was built on one idea: KiCad files are large, so an AI assistant should change them through tools instead of editing the text. We tested that idea against plain Claude Code with KiCad installed and no plugin: the same model (Claude Opus 5.5), the same settings and the same tasks, each result judged by KiCad 10 itself (netlist, board, ERC and DRC).
- Six single edits on a public KiCad 10 design (a value change, do-not-populate, a footprint swap, pads assigned to a net, a footprint rotation, a net renamed across sheets), three runs each. Plain Claude Code got all 18 right. With the plugin, 3 of 18 were right.
- A long session of 20 board edits. Both got every edit right, and the plugin's sessions used about 1.8 times as much context.
- Why the plugin failed, from reading every transcript:
- It had no tool for some edits (a pad's net, the do-not-populate flag, swapping one footprint).
- Its instructions told the model never to edit KiCad files directly, so the model stopped and asked instead.
- Its board-sync tool rewrote almost every footprint on the board, so the model undid its own work.
- The premise did not hold in these tests. Plain Claude Code changed a 2 MB board without reading it whole: it searched for the part and edited only the lines it needed.
These were small tests on one design, not a verdict on every board or every model. They were enough to stop adding tools. The test material is not published, because the design it used carries no license.
What to use instead: a coding agent such as Claude Code, with KiCad installed. Ask it to check its changes with kicad-cli (netlist export, ERC, DRC) before it finishes.
Bug reports and fixes for KiCad compatibility are still welcome.
What it looks like
Every tool works on the real file, and a write changes only the bytes you asked
it to. An edit that cannot be done correctly is refused with the file intact.
KiCad itself writes a design file in just two places: the library upgrades, and
autoroute_pcb's routed copy, a new board that leaves yours untouched.
Quick start
Claude Code
Install the plugin. It wires up the server and ships the design skills with it:
Claude Desktop
Download kicad-<version>.mcpb from the latest release and install it
from Settings, then Extensions. Claude Desktop fetches Python and the package
itself; you need KiCad installed, plus Java 25 or newer for autoroute_pcb.
Desktop does not run from your project directory, so fill in the schematic,
board, and export paths it asks for. Leave the kicad-cli field blank unless
KiCad is installed somewhere unusual. The design skills are Claude Code only.
Everything else
Then point your MCP client at the unified server, and name your schematic,
board, and export folder in env by absolute path, so tools find them without
being told on every call:
That single entry registers all 109 tools. A client that starts the server in
your project's folder can leave env out: the server then takes the paths from
the single .kicad_pro there (see How paths resolve).
Prefer to split the tools across five smaller servers? See
Configuration.
What you get
Five tool servers
Run them as one unified server, or separately when you want a smaller tool surface in context.
Six design skills (Claude Code plugin)
Tools alone let a model click every button. The bundled skills teach it which buttons, in what order, and what "done" looks like.
The design skills hand their artifacts to independent reviewer subagents
(agents/) before moving on, so a bad BOM or a bad placement plan
gets caught before it becomes a schematic.
Configuration
Split servers
Five entries instead of one, when you want to load only part of the tool surface:
Five-server MCP config
Give each entry the env block from Everything else, with
KICAD_SYM_LIB or KICAD_FP_LIB for the library servers, unless your client
starts them in the project's folder.
Each is also runnable directly:
How paths resolve
Highest priority wins:
- Tool parameters. Every tool accepts an explicit path.
- Environment variables. They override anything auto-detected.
- Auto-detect. The working directory is scanned for a
.kicad_pro, and the schematic, board, and library paths are derived from it.
Requirements
-
Python 3.11+
-
KiCad 9.x or 10.x, only for the tools that call KiCad:
kicad-cli: ERC, DRC, exports, jobsets,get_version, the library upgrades andupdate_pcb_from_schematicpcbnewPython bindings:fill_zonesandautoroute_pcb(which also needs Java 25 or newer; see The Freerouting download)- KiCad's stock libraries: placing a stock symbol or footprint
Every other tool parses files directly and needs no KiCad.
CI covers Linux (KiCad 9 and 10), macOS and Windows (KiCad 10), and Python 3.11 to 3.14.
The Freerouting download
autoroute_pcb runs Freerouting.
Unless FREEROUTING_JAR names a jar, its first call downloads Freerouting 2.5.0,
freerouting-2.5.0.jar (65 MB, needs Java 25 or newer), from
https://github.com/freerouting/freerouting/releases/download/v2.5.0/freerouting-2.5.0.jar
and caches it as ~/.local/share/mcp-server-kicad/freerouting-2.5.0.jar
(%USERPROFILE%\.local\share\mcp-server-kicad\ on Windows). Its SHA-256 is
checked against the value pinned in this package before the download is saved
and every time the cached copy is used. A download that does not match is not
saved; a cached copy that does not match is not run, and is downloaded again.
Freerouting is run with --gui.enabled=false and
--usage_and_diagnostic_data.disable_analytics=true, the settings its
documentation gives for running headless and for not sending usage data, so it
opens no window and its analytics stay off. When it starts, Freerouting still
asks GitHub for its newest release; it has no setting to turn that off.
To skip the download, set FREEROUTING_JAR to the absolute path of a Freerouting
jar you trust. That jar is used as given, with no hash check. A relative path, or
one that names no file, is ignored and the download goes ahead. Earlier releases
cached an unpinned freerouting.jar in the same folder; it is no longer read and
can be deleted.
Finding your KiCad install
A stock install needs no configuration. kicad-cli is found on PATH, then in
/Applications/KiCad/KiCad.app on macOS, then under Program Files and
AppData on Windows, newest first. The stock libraries and pcbnew's Python
are found relative to it. For an unusual install:
Without kicad-cli, the tools that need it stay listed and fail with a message
naming KICAD_CLI_PATH.
KiCad 10 files
The server's own reads and writes handle KiCad 9 and 10 schematics, boards, symbol libraries and footprints alike, and never change bytes you did not ask to change (see docs/adr-cst-substrate.md). Work handed to KiCad itself only succeeds if your install can load the file, and KiCad 9 cannot load a KiCad 10 board:
fill_zonesandautoroute_pcbrefuse a KiCad 10 board on a KiCad 9pcbnewbefore starting; install KiCad 10 or pointKICAD_PYTHONat one.autoroute_pcbon a KiCad 9 board through KiCad 10'spcbnewworks but warns that the routed copy comes back in KiCad 10 format. It never touches the original board.upgrade_symbol_libandupgrade_footprint_liblet KiCad rewrite your files, by design. Each file is replaced atomically and only if it changed, so an interrupted upgrade leaves none damaged. A backup goes to<name>.bak, overwritten every run.
Windows: Controlled Folder Access
Defender's Controlled Folder Access blocks unrecognised apps from writing under
Documents, where KiCad keeps its data. kicad-cli then crashes at startup
(exit 3221225477) on every call, --version included, and the error looks
like a missing file: error 2: The system cannot find the file specified.
The server works around this: it retries once with KICAD_DOCUMENTS_HOME
pointed at an unprotected local folder and keeps it for the session. Set
KICAD_DOCUMENTS_HOME yourself to pick the folder (this turns the retry off).
It cannot fix your project files. If your project lives under Documents, the write tools fail the same way. Move the project, or allow the tools under Windows Security > Virus & threat protection > Ransomware protection > Allow an app through Controlled folder access.
Tool reference
Schematic (42 tools)
Read
Write
Analysis and export
PCB (34 tools)
Read
Write
Analysis and export
Project (24 tools)
Scaffolding
Sheet management
Hierarchy inspection
Cross-sheet analysis
Annotation, export, utilities
Symbol and footprint libraries (9 tools)
Symbol
Footprint
Debugging
Drive the servers by hand with the MCP Inspector:
Contributing
Issues and pull requests are welcome. See CONTRIBUTING.md for development setup, and docs/adr-cst-substrate.md for the architecture decisions behind the byte-preserving write path.
License
GPL-3.0-or-later. Releases up to and including 0.20.1 were MIT-licensed; see NOTICE.
來源:README.md,提交 f5f82e0
工具
0版本歷史
3- v0.21.1最新Oct 20, 2026
- v0.21.0Oct 15, 2026
- v0.20.1Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分