No description
- Python 100%
| .github/workflows | ||
| docs | ||
| kicad_mcp | ||
| .env.example | ||
| .gitignore | ||
| .python-version | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
| README.zh-cn.md | ||
| uv.lock | ||
kicad-mcp
KiCad MCP integrated with the KiCad IPC API.
English | 简体中文
Features
- Schematic & PCB automation: place symbols, draw wires and buses, create labels, edit footprints, tracks and vias — all through natural language.
- Endpoint auto-discovery: on startup the server scans running KiCad processes and connects to the first reachable KiCad SDK IPC endpoint matching the editor mode (
--editor-type). - Runtime connection switching: if KiCad restarts or a tool returns
None, uselistKicadConnectionsto discover alive endpoints andswitchKicadConnectionto reconnect without restarting the server. - Graceful startup: when no KiCad endpoint is reachable yet, the server still starts and the connection tools stay available.
Usage
Run the latest release
You can run the MCP server directly without installing it using uvx:
uvx kicad-mcp --editor-type schematic
This will download and execute the latest version from PyPI in an isolated environment.
MCP client configuration
- Claude Code
{
"mcpServers": {
"Kicad-Schematic-MCP": {
"type": "stdio",
"command": "uvx",
"args": [
"kicad-mcp",
"--editor-type",
"schematic"
]
},
"Kicad-PCB-MCP": {
"type": "stdio",
"command": "uvx",
"args": [
"kicad-mcp",
"--editor-type",
"pcb"
]
}
},
"inputs": []
}
- VSCode
Add the following configuration to your MCP client:
{
"servers": {
"Kicad-Schematic-MCP": {
"type": "stdio",
"command": "uvx",
"args": [
"kicad-mcp",
"--editor-type",
"schematic"
]
},
"Kicad-PCB-MCP": {
"type": "stdio",
"command": "uvx",
"args": [
"kicad-mcp",
"--editor-type",
"pcb"
]
}
},
"inputs": []
}
- Cherry Studio
Options
--editor-type supports:
schematicpcbsymbolfootprint
See docs/connection-modes.md for the tools available in each mode and how endpoint auto-discovery, verification, and runtime switching work (listKicadConnections / switchKicadConnection).
Development
1. Clone the repository
git clone <your-repo-url>
cd kicad-mcp
2. Configure MCP client (local development)
Example configuration in VSCode:
{
"servers": {
"kicad-pcb-mcp": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"C:/code/kicad-mcp",
"run",
"kicad-mcp",
"--editor-type",
"pcb"
]
},
"kicad-schematic-mcp": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"C:/code/kicad-mcp",
"run",
"kicad-mcp",
"--editor-type",
"schematic"
]
}
}
}
3. Run locally
Install dependencies and run:
uv sync
uv run kicad-mcp --editor-type schematic
4. Iterate
Modify the code and restart your MCP client to see changes.
Notes
- Requires
uv: https://github.com/astral-sh/uv - Python 3.11+
- Ensure KiCad is running with IPC enabled
