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.0.tar.gz (60.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.0-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: kicad_mcp_kipy-0.1.0.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

Hashes for kicad_mcp_kipy-0.1.0.tar.gz
Algorithm Hash digest
SHA256 14ff169b395b83dbe24904c52464985753b502eae55c7978832fcd6f068f4561
MD5 f8578ad5dca70d7f11de5948314d4733
BLAKE2b-256 6ecf240977342c3db90eaf77525c4290550df63e019ec2db0e2cd2a533044e9f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: kicad_mcp_kipy-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.7 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 578617976e2bc8f0fe4d5b64b3e1865488d8f9597d6e96c16ca29a7104967b9e
MD5 625b469375bddb15e84e5eb8bd5550a9
BLAKE2b-256 9892dfac041dda01e3a59a9064a339e1b2ea749889632570b83928cc947fa452

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

This release

0.1.0 This release

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