kicad-mcp-kipy
KiCad MCP server for KiCad 10 — powered by kipy, the official KiCad Python API.
Connects AI assistants (Claude, Bob, etc.) to a running KiCad 10 instance via the Model Context Protocol, enabling real-time inspection and control of schematics and PCB layouts.
Why kicad-mcp-kipy?
| kicad-mcp (Huaqiu) | kicad-mcp-kipy | |
|---|---|---|
| KiCad 10 support | ❌ (KiCad 9 JSON API) | ✅ (KiCad 10 Protobuf API) |
| macOS process detection | ❌ (Issue #3) | ✅ |
| Dependencies | 115 packages | ~40 packages |
| Python API | Custom JSON/NNG | kipy (official KiCad bindings) |
Requirements
- KiCad 10.x (macOS / Linux / Windows)
- Python 3.11+
- uv (recommended) or pip
Installation
Using uvx (recommended — no install needed)
uvx kicad-mcp-kipy
Using pip
pip install kicad-mcp-kipy
kicad-mcp-kipy
Setup
1. Enable KiCad IPC API
In KiCad's Schematic Editor or PCB Editor:
Preferences → Preferences → Scripting → Enable IPC API ✅
2. Register in your MCP client (Bob / Claude Desktop)
.bob/mcp.json (workspace-level):
{
"mcpServers": {
"kicad": {
"command": "uvx",
"args": ["kicad-mcp-kipy"]
}
}
}
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"kicad": {
"command": "uvx",
"args": ["kicad-mcp-kipy"]
}
}
}
3. Open a project in KiCad
Open your schematic or PCB file in KiCad before connecting — the IPC API is only active when an editor is open.
Available Tools
General
| Tool | Description |
|---|---|
get_kicad_version |
Get running KiCad version |
get_open_documents |
List open schematic / PCB files |
run_action |
Execute a KiCad menu action (e.g. "zoom_fit_in_window") |
Schematic
| Tool | Description |
|---|---|
schematic_get_symbols |
Get all symbols (reference, value, position) |
schematic_get_labels |
Get all net labels |
schematic_get_title_block |
Get title block info |
schematic_get_as_string |
Get schematic as KiCad S-expression text |
schematic_get_hierarchy |
Get hierarchical sheet structure |
schematic_save |
Save the schematic |
PCB
| Tool | Description |
|---|---|
pcb_get_footprints |
Get all footprints (reference, value, position, layer) |
pcb_get_tracks |
Get all tracks (start, end, layer, width) |
pcb_get_vias |
Get all vias (position, drill size) |
pcb_get_nets |
Get all nets (name, number) |
pcb_get_enabled_layers |
Get enabled layer list |
pcb_get_stackup |
Get board stackup (layer structure, thickness) |
pcb_get_title_block |
Get PCB title block info |
pcb_get_as_string |
Get PCB as KiCad S-expression text |
pcb_save |
Save the PCB |
How it works
AI Assistant (MCP Client)
↕ stdio (JSON-RPC)
kicad-mcp-kipy (MCP Server)
↕ pynng / NNG IPC socket (/tmp/kicad/api.sock)
KiCad 10 IPC API Server (built-in)
↕ C++ SDK
KiCad Schematic / PCB Editor
KiCad 10 exposes a Protobuf-based IPC API over a local NNG socket. kipy provides Python bindings for this API. This server wraps those bindings as MCP tools.
Development
git clone https://github.com/mnori0211/kicad-mcp-kipy
cd kicad-mcp-kipy
uv sync
uv run kicad-mcp-kipy
Related
- kipy (kicad-python) — Official KiCad Python API bindings
- kicad-mcp (Huaqiu) — Alternative MCP server (KiCad 9)
- Model Context Protocol
License
MIT — see LICENSE
Metadata
Release files for kicad-mcp-kipy 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| kicad_mcp_kipy-0.1.3.tar.gz | 62.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kicad_mcp_kipy-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 76.2 kB
Release files / kicad_mcp_kipy-0.1.3.tar.gz
| Download URL | kicad_mcp_kipy-0.1.3.tar.gz |
|---|---|
| Size | 62.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
80121f0e61da6005d8fb0d6cb53337379f5f597984544b0efb8d63968e19ee6a
|
|
BLAKE2b-256 checksum How to use checksums |
c88c968d2baf609cedd94628345cb6e76c4d69ed371339bc2b2eff8163199d33
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.13
|
Release files / kicad_mcp_kipy-0.1.3-py3-none-any.whl
| Download URL | kicad_mcp_kipy-0.1.3-py3-none-any.whl |
|---|---|
| Size | 13.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e718b8c362b304a523775af7af4053f9d6bf5b4db5396d5d0ddf82345c758610
|
|
BLAKE2b-256 checksum How to use checksums |
910b272e095601975e5240a488f8de6042758aaf6b30da72da7137f917b0593f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.13
|