kicad-copilot
AI-powered MCP server for KiCad that enables creating and modifying schematics, searching components, managing hierarchical projects, generating PCB placement, routing boards locally, and creating copper pours through natural language.
README
KiCad Copilot
AI-powered MCP server for KiCad. Create and modify schematics from natural language, search real components, work with hierarchical projects, generate PCB placement, route boards locally, and create simple copper pours directly through an AI agent.
KiCad Copilot is the KiCad counterpart to EasyEDA Copilot. It provides the same core circuit-generation and PCB automation capabilities—and goes further with file-oriented hierarchical projects, recoverable checkpoints, native kicad-cli integration, and fully local PCB routing.
Recommended companion: kicad-happy complements KiCad Copilot with independent design review, datasheet-backed analysis, SPICE simulation, EMC pre-compliance, BOM sourcing, and manufacturing checks. Use KiCad Copilot to build and modify the design, then use kicad-happy to analyze and review it.
<p align="center"> <a href="https://github.com/biosshot/kicad-copilot/releases/latest"> <img src="https://img.shields.io/github/v/release/biosshot/kicad-copilot?label=release" alt="Latest release"> </a> <a href="https://www.npmjs.com/package/kicad-copilot-mcp"> <img src="https://img.shields.io/npm/v/kicad-copilot-mcp" alt="npm package"> </a> <a href="https://github.com/biosshot/kicad-copilot/blob/main/LICENSE"> <img src="https://img.shields.io/badge/license-MIT-blue" alt="License"> </a> <a href="https://discord.gg/AXCGjTDYkq"> <img src="https://img.shields.io/badge/Discord-7289DA?logo=discord&logoColor=white" alt="Discord"> </a> </p>
What it does
KiCad Copilot gives AI agents a high-level, file-oriented interface to KiCad:
- Generate and modify schematics: add, remove, replace, and connect real components without editing every KiCad object individually.
- Rebuild schematic blocks: reorganize selected components while preserving their electrical connections.
- Search components and reusable blocks: resolve components by MPN or part UUID and insert proven functional circuits.
- Work with KiCad projects: inspect project trees and create projects, standalone schematics, hierarchical sheets, and PCB files.
- Preserve recoverable checkpoints: save, list, and restore exact versions of individual KiCad files.
- Synchronize schematic and PCB: explicitly import schematic changes into the associated board.
- Generate PCB placement: describe board constraints in a compact JavaScript DSL, review PNG/SVG previews, and apply the approved result.
- Route locally: use the bundled WASM router without sending routing work to an external service.
- Create copper pours: add simple full-board zones with optional stitching vias.
- Use native KiCad tooling: discover
kicad-clifor ERC, DRC, previews, exports, manufacturing files, and other native operations.
KiCad Copilot works directly with saved .kicad_pro, .kicad_sch, and .kicad_pcb files. It does not require KiCad IPC or a plugin installed inside KiCad.
Examples
These projects were generated and iterated through KiCad Copilot. The complete KiCad source files are available in the examples directory.
ATmega328P development board
A hierarchical ATmega328P design with the MCU core, clock, reset, decoupling, USB-UART power, Nano-compatible headers, and debug connections split across functional sheets.
<table> <tr> <td align="center" width="50%"><a href="docs/media/examples/atmega328p/overview.png"><img src="docs/media/examples/atmega328p/overview.png" alt="ATmega328P project overview" width="100%"></a><br><sub>Project overview</sub></td> <td align="center" width="50%"><a href="docs/media/examples/atmega328p/usb-uart-power.png"><img src="docs/media/examples/atmega328p/usb-uart-power.png" alt="ATmega328P USB-UART and power sheet" width="100%"></a><br><sub>USB-UART and power</sub></td> </tr> <tr> <td align="center" width="50%"><a href="docs/media/examples/atmega328p/mcu-core.png"><img src="docs/media/examples/atmega328p/mcu-core.png" alt="ATmega328P MCU core sheet" width="100%"></a><br><sub>MCU core</sub></td> <td align="center" width="50%"><a href="docs/media/examples/atmega328p/nano-headers-debug.png"><img src="docs/media/examples/atmega328p/nano-headers-debug.png" alt="ATmega328P Nano headers and debug sheet" width="100%"></a><br><sub>Nano headers and debug</sub></td> </tr> </table>
Download the ATmega328P project
Geiger high-voltage supply
A larger multi-sheet design covering power input, 3.3 V regulation, the high-voltage generator, flyback stage, feedback, detector, controller, and user interface.
<table> <tr> <td align="center" width="50%"><a href="docs/media/examples/geiger-hv/overview.png"><img src="docs/media/examples/geiger-hv/overview.png" alt="Geiger HV project overview" width="100%"></a><br><sub>Project overview</sub></td> <td align="center" width="50%"><a href="docs/media/examples/geiger-hv/power.png"><img src="docs/media/examples/geiger-hv/power.png" alt="Geiger HV power input sheet" width="100%"></a><br><sub>Power input</sub></td> </tr> <tr> <td align="center" width="50%"><a href="docs/media/examples/geiger-hv/high-voltage.png"><img src="docs/media/examples/geiger-hv/high-voltage.png" alt="Geiger high-voltage generator sheet" width="100%"></a><br><sub>High-voltage generator</sub></td> <td align="center" width="50%"><a href="docs/media/examples/geiger-hv/detector.png"><img src="docs/media/examples/geiger-hv/detector.png" alt="Geiger detector sheet" width="100%"></a><br><sub>Detector</sub></td> </tr> <tr> <td align="center" width="50%"><a href="docs/media/examples/geiger-hv/controller-ui.png"><img src="docs/media/examples/geiger-hv/controller-ui.png" alt="Geiger controller UI sheet" width="100%"></a><br><sub>Controller UI</sub></td> <td align="center" width="50%"><a href="docs/media/examples/geiger-hv/power-3v3.png"><img src="docs/media/examples/geiger-hv/power-3v3.png" alt="Geiger 3.3 V power sheet" width="100%"></a><br><sub>3.3 V power</sub></td> </tr> <tr> <td align="center" width="50%"><a href="docs/media/examples/geiger-hv/hv-flyback.png"><img src="docs/media/examples/geiger-hv/hv-flyback.png" alt="Geiger HV flyback sheet" width="100%"></a><br><sub>HV flyback</sub></td> <td align="center" width="50%"><a href="docs/media/examples/geiger-hv/hv-feedback.png"><img src="docs/media/examples/geiger-hv/hv-feedback.png" alt="Geiger HV feedback sheet" width="100%"></a><br><sub>HV feedback</sub></td> </tr> <tr> <td align="center" colspan="2"><a href="docs/media/examples/geiger-hv/user-interface.png"><img src="docs/media/examples/geiger-hv/user-interface.png" alt="Geiger user interface sheet" width="50%"></a><br><sub>User interface</sub></td> </tr> </table>
Download the Geiger high-voltage project
RP2350 development board
A hierarchical RP2350 design with power, clock, flash, USB/debug, GPIO headers, and an AI-generated PCB placement. The example includes the placement DSL and an editable KiCad board.
<table> <tr> <td align="center" width="50%"><a href="docs/media/examples/rp2350/overview.png"><img src="docs/media/examples/rp2350/overview.png" alt="RP2350 project overview" width="100%"></a><br><sub>Project overview</sub></td> <td align="center" width="50%"><a href="docs/media/examples/rp2350/power.png"><img src="docs/media/examples/rp2350/power.png" alt="RP2350 power sheet" width="100%"></a><br><sub>Power</sub></td> </tr> <tr> <td align="center" width="50%"><a href="docs/media/examples/rp2350/rp2350-clock.png"><img src="docs/media/examples/rp2350/rp2350-clock.png" alt="RP2350 and clock sheet" width="100%"></a><br><sub>RP2350 and clock</sub></td> <td align="center" width="50%"><a href="docs/media/examples/rp2350/flash.png"><img src="docs/media/examples/rp2350/flash.png" alt="RP2350 flash sheet" width="100%"></a><br><sub>Flash</sub></td> </tr> <tr> <td align="center" width="50%"><a href="docs/media/examples/rp2350/usb-debug.png"><img src="docs/media/examples/rp2350/usb-debug.png" alt="RP2350 USB and debug sheet" width="100%"></a><br><sub>USB and debug</sub></td> <td align="center" width="50%"><a href="docs/media/examples/rp2350/gpio-headers.png"><img src="docs/media/examples/rp2350/gpio-headers.png" alt="RP2350 GPIO headers sheet" width="100%"></a><br><sub>GPIO headers</sub></td> </tr> </table>
<p align="center"> <img src="docs/media/examples/rp2350-pcb.png" alt="3D render of the RP2350 PCB placement generated with KiCad Copilot" width="90%"> <br><sub>KiCad 3D render of the generated PCB placement</sub> </p>
Installation
Add the MCP server to your AI agent.
Codex:
codex mcp add kicad-copilot -- npx -y kicad-copilot-mcp
Claude Code:
claude mcp add kicad-copilot -- npx -y kicad-copilot-mcp
Generic MCP configuration:
{
"mcpServers": {
"kicad-copilot": {
"command": "npx",
"args": ["-y", "kicad-copilot-mcp"]
}
}
}
Restart the MCP client after adding the server. KiCad Copilot includes local workflow documentation for the agent; tool descriptions expose its installed path automatically.
Requirements
- Node.js 20 or newer
- KiCad 9 or 10
- Python 3 only if EasyEDA2KiCad is not already available
KiCad Copilot searches for kicad-cli in PATH and standard KiCad installation locations, preferring KiCad 10 when multiple supported versions are installed. Set KICAD_CLI_PATH when the executable is stored elsewhere.
The first real-component conversion uses an existing EasyEDA2KiCad installation or installs it automatically into a managed local virtual environment.
Schematic workflow
Ask the agent to inspect a KiCad project or give it the path to a target .kicad_sch file. A typical request can be as simple as:
Open D:\Projects\sensor\sensor.kicad_pro and add a 3.3 V regulator block to the Power sheet.
The agent can inspect the project tree, read the target sheet as compact component/net JSON, find exact components, assemble the requested change, and validate the saved result through KiCad.
Hierarchical projects remain file-oriented: each physical schematic sheet is modified through its own .kicad_sch path, while project-wide context is used where the operation requires the complete signal map.
File synchronization
KiCad Copilot changes files on disk. KiCad does not reliably merge those changes with newer unsaved edits in an already open editor.
Before a write:
- Save intentional changes in KiCad.
- Avoid keeping the only copy of newer work in the editor buffer.
After a write:
- Reload, revert, or reopen the document in KiCad.
- Do not overwrite the updated file with an older editor buffer.
PCB workflow
PCB placement and routing use an explicit review flow:
- Import schematic changes into the target
.kicad_pcbfile. - Describe the outline, holes, constraints, regions, and important components in the placement DSL.
- Generate a mechanical preview without modifying the PCB.
- Review the returned PNG or SVG preview.
- Generate and approve the complete placement.
- Apply the stored placement to the PCB.
- Route the remaining connections locally.
- Inspect the result and run final KiCad DRC.
Placement previews are never applied automatically. The agent receives a layout_id only for an explicitly generated result and uses it to assemble the intended board after review.
Routing, pours, and placement are separate operations. This keeps schematic-to-PCB synchronization explicit and makes it possible to clear or rebuild routing without deleting placed components.
KiCad CLI
get_project_info reports the discovered kicad-cli path and version. Agents should use the native CLI whenever KiCad already provides the operation, including:
- schematic ERC and PCB DRC;
- schematic and PCB PDF/SVG exports;
- 3D PCB renders;
- Gerber and drill generation;
- BOM, position, STEP, STL, GLB, and VRML exports;
- project jobsets and format upgrades.
See KiCad CLI workflow for ready-to-use commands.
Compatibility
| KiCad version | Status |
|---|---|
| KiCad 10 | Supported |
| KiCad 9 | Supported |
Other major versions are rejected because their file formats and CLI behavior are not covered by the current implementation.
Documentation
- AI agent instructions
- Circuit creation and modification
- Projects and hierarchical sheets
- Checkpoints
- PCB workflow
- PCB placement rules
- Placement DSL
- KiCad CLI
- Troubleshooting
Development
git clone https://github.com/biosshot/kicad-copilot.git
cd kicad-copilot
npm install
npm run check
npm start
Run the MCP Inspector with:
npm run inspect
The repository also contains focused schematic, PCB, and routing test scripts for development against disposable files.
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。