Skip to main content

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

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)

Source distribution for kicad-mcp-kipy 0.1.3
File Size Uploaded
kicad_mcp_kipy-0.1.3.tar.gz 62.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kicad-mcp-kipy 0.1.3
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page