Skip to main content
Glama
mnori0211

kicad-mcp-kipy

by mnori0211

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)

Related MCP server: KiCad MCP Server

Requirements

  • KiCad 10.x (macOS / Linux / Windows)

  • Python 3.11+

  • uv (recommended) or pip

Installation

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

License

MIT — see LICENSE

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    An MCP server that enables AI assistants to analyze schematics, inspect PCBs, trace connections, validate designs, and generate embedded code for KiCad projects.
    39
    125
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server providing full control over KiCad 10, enabling PCB editing, schematic editing, design data, and production output via natural language.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that gives AI agents end-to-end control of KiCad 9+ for rule checks, manufacturing exports, production-readiness certification, and live PCB editor control.
    MIT