KiCad MCP Server
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 |
|
π§© Footprints | Manage component properties, placements, and pads |
|
β‘ Tracks & Vias | List, route, resize, and remove traces and vias |
|
πΊοΈ Zones | Control copper pours, fill/unfill, and rule boundaries |
|
π Nets | Import netlists, manage classes, and trace connectivity |
|
π€ Text | Add and style free-standing board text labels and textboxes |
|
π¨ Shapes | Draw graphic segments, rects, circles, and polygons on user layers |
|
π Dimensions | Place precise dimension and measurement markings |
|
π₯ Groups | Read structural component groupings (KiCad 10+) |
|
π― Selection | Read active selection, select footprints, and invoke actions |
|
ποΈ Appearance | Adjust layer visibility, contrast modes, ratsnest lines, and flip view |
|
π¦ Exports | Export manufacturing files (Gerbers, drills, position, ODB++, PDF, STEP) |
|
πΈ Screenshots | Render visual PNG screenshots of the board or specific selection |
|
π» CLI Wrapper | Headless CLI automation for schematics, ERC, DRC, and more |
|
π 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-server2. 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.jsonmacOS/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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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