Skip to main content
Glama
brovk2008
by brovk2008

KiCad MCP Server πŸ”ŒπŸ“

License: MIT Python: 3.10+ KiCad: 9.0+

An implementation of the Model Context Protocol (MCP) server for KiCad 9.0+, enabling Large Language Models (LLMs) like Claude to inspect, edit, analyze, and render PCB layouts in real-time.

It leverages the official kicad-python API to communicate with running KiCad instances over local Unix domain sockets or Windows named pipes.


πŸš€ Key Features

This server exposes 14 specialized modules providing comprehensive control over the board layout:

Module

Description

Key Tools

πŸŽ›οΈ Board

Inspect/update PCB configurations, units, and canvas settings

get_board_info, get_board_stackup, set_active_layer, undo_transaction

🧩 Footprints

Manage component properties, placements, and pads

get_footprints, move_footprint, set_footprint_property, delete_footprints

⚑ Tracks & Vias

List, route, resize, and remove traces and vias

get_tracks, create_track, get_vias, create_via, delete_tracks_in_rect

πŸ—ΊοΈ Zones

Control copper pours, fill/unfill, and rule boundaries

get_zones, create_zone, refill_zones

🌐 Nets

Import netlists, manage classes, and trace connectivity

get_nets, get_net_classes, import_netlist

πŸ”€ Text

Add and style free-standing board text labels and textboxes

get_text, create_text, create_textbox, delete_text

🎨 Shapes

Draw graphic segments, rects, circles, and polygons on user layers

get_shapes, create_shape

πŸ“ Dimensions

Place precise dimension and measurement markings

get_dimensions, create_dimension

πŸ‘₯ Groups

Read structural component groupings (KiCad 10+)

get_groups

🎯 Selection

Read active selection, select footprints, and invoke actions

get_selection, select_footprints, run_action

πŸ‘οΈ Appearance

Adjust layer visibility, contrast modes, ratsnest lines, and flip view

get_editor_appearance, set_board_flip, set_inactive_layer_display

πŸ“¦ Exports

Export manufacturing files (Gerbers, drills, position, ODB++, PDF, STEP)

export_gerbers, export_drill, export_position, export_3d, export_pdf

πŸ“Έ Screenshots

Render visual PNG screenshots of the board or specific selection

get_board_screenshot, get_selection_screenshot

πŸ’» CLI Wrapper

Headless CLI automation for schematics, ERC, DRC, and more

run_kicad_cli, run_erc, run_drc, export_schematic_pdf, export_schematic_netlist


πŸ“‹ Prerequisites

  1. KiCad 9.0 or higher must be installed and running.

  2. Enable the IPC API inside KiCad:

    • Go to Preferences βž” Preferences...

    • Navigate to Plugins

    • Check the Enable KiCad IPC API box.

  3. Python 3.10+ (tested on Python 3.10 through 3.14).


βš™οΈ Installation & Setup

We recommend using uv for fast and isolated environment setup.

1. Clone the Repository

git clone https://github.com/brovk2008/Kicad-MCP-server.git
cd Kicad-MCP-server

2. Set Up the Virtual Environment

# Using uv (recommended)
uv venv
uv pip install -e .

# Or using standard pip
python -m venv .venv
source .venv/bin/activate  # Or `.venv\Scripts\activate` on Windows
pip install -e .

Note: The project automatically applies a dynamic Protobuf descriptor pool patch to ensure compatibility with kicad-python 0.7.1 on Python 3.14.


πŸ› οΈ MCP Configuration

To use this server with Claude Desktop, add the configuration snippet below to your Claude configuration file:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json

Configuration Snippet

{
  "mcpServers": {
    "kicad-mcp": {
      "command": "uv",
      "args": [
        "run",
        "--package",
        "kicad-mcp",
        "kicad-mcp"
      ],
      "cwd": "C:/Users/techp/Downloads/more projects/Kicad mcp",
      "env": {
        "KICAD_API_SOCKET": "ipc:///tmp/kicad/api.sock"
      }
    }
  }
}

(Adjust the cwd directory to point to your local installation path. For Windows, the socket path defaults to ipc://%TEMP%\\kicad\\api.sock if not explicitly set).


πŸ§ͺ Running Tests

A test suite is included to verify unit conversions, coordinate mappings, and error wrappers:

# Activate your virtual environment and run:
pytest tests/unit/

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/brovk2008/Kicad-MCP-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server