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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kicad_mcp_kipy-0.1.3.tar.gz (62.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kicad_mcp_kipy-0.1.3-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file kicad_mcp_kipy-0.1.3.tar.gz.

File metadata

  • Download URL: kicad_mcp_kipy-0.1.3.tar.gz
  • Upload date:
  • Size: 62.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.13

File hashes

Hashes for kicad_mcp_kipy-0.1.3.tar.gz
Algorithm Hash digest
SHA256 80121f0e61da6005d8fb0d6cb53337379f5f597984544b0efb8d63968e19ee6a
MD5 9e15933cd21a5c5831a71654f37c06a4
BLAKE2b-256 c88c968d2baf609cedd94628345cb6e76c4d69ed371339bc2b2eff8163199d33

See more details on using hashes here.

File details

Details for the file kicad_mcp_kipy-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: kicad_mcp_kipy-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 13.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.13

File hashes

Hashes for kicad_mcp_kipy-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e718b8c362b304a523775af7af4053f9d6bf5b4db5396d5d0ddf82345c758610
MD5 5c5fe6516a66ab310578af541083e718
BLAKE2b-256 910b272e095601975e5240a488f8de6042758aaf6b30da72da7137f917b0593f

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page