KiCad MCP Server

KiCad MCP Server

Enables LLMs to inspect, edit, analyze, and render PCB layouts in real-time using the KiCad IPC API, providing tools for board configuration, footprints, tracks, zones, nets, text, shapes, dimensions, exports, screenshots, and CLI automation.

Category
Visit Server

README

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.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured