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.
README
KiCad MCP Server ππ
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
- KiCad 9.0 or higher must be installed and running.
- Enable the IPC API inside KiCad:
- Go to Preferences β Preferences...
- Navigate to Plugins
- Check the Enable KiCad IPC API box.
- 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
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.