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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kicad_mcp_kipy-0.1.1.tar.gz.
File metadata
- Download URL: kicad_mcp_kipy-0.1.1.tar.gz
- Upload date:
- Size: 60.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f68525f49516bbbf8d3edf10541eaf54fdfc0050593afd1656978b0ce197df8c
|
|
| MD5 |
21b02b196c1e1312559a4e076edaaf91
|
|
| BLAKE2b-256 |
2db6f07f7e959dffa58797b0c4307ca31a416374532a5bc1b35e80d8bed48d85
|
File details
Details for the file kicad_mcp_kipy-0.1.1-py3-none-any.whl.
File metadata
- Download URL: kicad_mcp_kipy-0.1.1-py3-none-any.whl
- Upload date:
- Size: 10.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc0c7f8875e7b2092084ec0ab4070f44b572dafe2479de6c91ea8b5eb1baaa57
|
|
| MD5 |
e2bfe15c800cfac578cfc74b435f78c5
|
|
| BLAKE2b-256 |
e7a69e6eb481606bff5495d5207434e270a2b19e9ea81b49b7bf60f93aa38a6f
|