MCP servers for KiCad schematic, PCB, and export automation
Project description
mcp-server-kicad
MCP servers for KiCad schematic, PCB, symbol, footprint, and project automation.
Servers
| Server | Tools | Description |
|---|---|---|
mcp-server-kicad-schematic |
29 | Schematic read/write, ERC analysis, and schematic exports (PDF, SVG, DXF, netlist, BOM) |
mcp-server-kicad-pcb |
19 | PCB read/write, DRC analysis, and PCB exports (Gerber, drill, 3D models, pick-and-place) |
mcp-server-kicad-symbol |
4 | Symbol library browsing, SVG export, and library upgrade |
mcp-server-kicad-footprint |
4 | Footprint library browsing, SVG export, and library upgrade |
mcp-server-kicad-project |
7 | Project scaffolding, hierarchical sheets, jobset execution, and version info |
Installation
pip install mcp-server-kicad
Or run directly with uvx:
uvx --from mcp-server-kicad mcp-server-kicad-schematic
uvx --from mcp-server-kicad mcp-server-kicad-pcb
uvx --from mcp-server-kicad mcp-server-kicad-symbol
uvx --from mcp-server-kicad mcp-server-kicad-footprint
uvx --from mcp-server-kicad mcp-server-kicad-project
Claude Code Plugin
For Claude Code users, install the plugin to get MCP server configuration and schematic design skills bundled together:
claude plugin marketplace add ProductOfAmerica/mcp-server-kicad
claude plugin install kicad
The plugin automatically configures all five MCP servers and includes skills that teach layout conventions for schematic design. See skills/schematic-design/SKILL.md for details.
Configuration
Add the servers to your Claude Desktop or Claude Code MCP config. Set cwd to your KiCad project directory so the servers can auto-detect project files.
{
"mcpServers": {
"kicad-schematic": {
"command": "uvx",
"args": ["--from", "mcp-server-kicad", "mcp-server-kicad-schematic"],
"cwd": "/path/to/your/kicad/project"
},
"kicad-pcb": {
"command": "uvx",
"args": ["--from", "mcp-server-kicad", "mcp-server-kicad-pcb"],
"cwd": "/path/to/your/kicad/project"
},
"kicad-symbol": {
"command": "uvx",
"args": ["--from", "mcp-server-kicad", "mcp-server-kicad-symbol"],
"cwd": "/path/to/your/kicad/project"
},
"kicad-footprint": {
"command": "uvx",
"args": ["--from", "mcp-server-kicad", "mcp-server-kicad-footprint"],
"cwd": "/path/to/your/kicad/project"
},
"kicad-project": {
"command": "uvx",
"args": ["--from", "mcp-server-kicad", "mcp-server-kicad-project"],
"cwd": "/path/to/your/kicad/project"
}
}
}
Project Path Resolution
The servers resolve file paths in this order:
- Auto-detect: Scans the current working directory for a
.kicad_profile and derives schematic, PCB, symbol library, and footprint library paths from it. - Environment variables:
KICAD_SCH_PATH,KICAD_PCB_PATH,KICAD_SYM_LIB,KICAD_FP_LIB, andKICAD_OUTPUT_DIRoverride auto-detected values. - Tool parameters: Every tool accepts an explicit path parameter that takes highest priority.
Environment Variables
| Variable | Description |
|---|---|
KICAD_SCH_PATH |
Path to .kicad_sch schematic file |
KICAD_PCB_PATH |
Path to .kicad_pcb PCB file |
KICAD_SYM_LIB |
Path to .kicad_sym symbol library file |
KICAD_FP_LIB |
Path to .pretty footprint library directory |
KICAD_OUTPUT_DIR |
Output directory for exports and reports |
Available Tools
Schematic Tools (27 tools)
Read Tools
| Tool | Description |
|---|---|
list_schematic_items |
List schematic items by type (components, labels, wires, global_labels, summary) |
get_symbol_pins |
Get pin info for a symbol in the schematic's lib_symbols |
get_pin_positions |
Get absolute pin positions for a placed component (accounts for rotation/mirror) |
get_net_connections |
Get all connections for a named net |
list_unconnected_pins |
List unconnected pins from ERC data |
Write Tools
| Tool | Description |
|---|---|
place_component |
Place a component in the schematic |
remove_component |
Remove a component by reference designator |
add_wires |
Add one or more wires between points |
add_label |
Add a net label at a position |
add_junctions |
Add one or more junction dots |
add_lib_symbol |
Load a symbol definition from a .kicad_sym library into the schematic |
move_component |
Move a placed component to a new position |
set_component_property |
Set any property (Value, Reference, Footprint, etc.) on a placed component |
add_global_label |
Add a global net label visible across all sheets |
add_power_symbol |
Place a power symbol (VCC, GND, +3V3, etc.) with auto PWR_FLAG |
add_text |
Add a text annotation to the schematic |
wire_pins_to_net |
Wire one or more pins to a named net |
auto_place_decoupling_cap |
Automatically place a decoupling capacitor near an IC |
connect_pins |
Wire two component pins together |
no_connect_pin |
Place a no-connect flag on an unused pin |
remove_label |
Remove a net label |
remove_wire |
Remove a wire segment |
remove_junction |
Remove a junction dot |
ERC Analysis
| Tool | Description |
|---|---|
run_erc |
Run Electrical Rules Check (ERC) on a schematic |
Schematic Export Tools
| Tool | Description |
|---|---|
export_schematic |
Export schematic to PDF, SVG, or DXF format |
export_netlist |
Export schematic netlist |
export_bom |
Export Bill of Materials (BOM) as CSV |
PCB Tools (16 tools)
Read Tools
| Tool | Description |
|---|---|
list_pcb_items |
List PCB items by type (footprints, traces, nets, zones, layers, graphic_items) |
get_board_info |
Get board summary: footprint count, trace count, net count, thickness |
get_footprint_pads |
Get pad info for a placed footprint on the PCB |
Write Tools
| Tool | Description |
|---|---|
place_footprint |
Place a footprint on the PCB |
move_footprint |
Move a footprint to a new position |
remove_footprint |
Remove a footprint by reference designator |
add_trace |
Add a trace segment between two points |
add_via |
Add a via at a position |
add_pcb_text |
Add text to the PCB (silkscreen, fab layer, etc.) |
add_pcb_line |
Add a graphic line to the PCB (edge cuts, silkscreen, etc.) |
DRC Analysis
| Tool | Description |
|---|---|
run_drc |
Run Design Rules Check (DRC) on a PCB |
PCB Export Tools
| Tool | Description |
|---|---|
export_pcb |
Export PCB layers to PDF, SVG, or DXF |
export_gerbers |
Export Gerber files (all layers or specific layer list) |
export_3d |
Export PCB 3D model (STEP/STL/GLB) or render 3D view to PNG |
export_positions |
Export component position file (pick and place) |
export_ipc2581 |
Export PCB in IPC-2581 format for manufacturing data exchange |
Symbol Tools (5 tools)
| Tool | Description |
|---|---|
list_lib_symbols |
List all symbols in a .kicad_sym library file |
get_symbol_info |
Get detailed pin and property info for a symbol in a library |
add_symbol |
Add a new symbol to a .kicad_sym library |
export_symbol_svg |
Export symbol library to SVG images |
upgrade_symbol_lib |
Upgrade a symbol library to current KiCad format |
Footprint Tools (4 tools)
| Tool | Description |
|---|---|
list_lib_footprints |
List all footprints in a .pretty library directory |
get_footprint_info |
Get pad and outline details for a footprint .kicad_mod file |
export_footprint_svg |
Export footprint to SVG |
upgrade_footprint_lib |
Upgrade a footprint library to current KiCad format |
Project Tools (7 tools)
| Tool | Description |
|---|---|
create_project |
Create a KiCad 9 project (.kicad_pro + .kicad_prl + .kicad_sch) |
create_schematic |
Create a blank schematic file |
create_symbol_library |
Create a blank symbol library file |
create_sym_lib_table |
Create a sym-lib-table file |
add_hierarchical_sheet |
Add a hierarchical sheet to a parent schematic |
run_jobset |
Run a KiCad jobset file |
get_version |
Get KiCad version information |
System Requirements
- Python 3.10+
- KiCad 9.x -- required for CLI-based tools (ERC, DRC, exports). The
kicad-clibinary must be onPATH. - The schematic and PCB read/write tools use kiutils for file parsing and do not require a KiCad installation.
Debugging
Use the MCP Inspector to test and debug the servers interactively:
npx @modelcontextprotocol/inspector mcp-server-kicad
Contributing
See CONTRIBUTING.md for development setup and guidelines.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_server_kicad-0.5.7.tar.gz.
File metadata
- Download URL: mcp_server_kicad-0.5.7.tar.gz
- Upload date:
- Size: 149.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17daa8099fa476ac76575bf272508bb398ea3a742e1676ad12015fe116316872
|
|
| MD5 |
776a369946e6edffe1f264e21d247242
|
|
| BLAKE2b-256 |
241d92ffeade27486b4c0eaa5a92d7456c6831b9927de33b6d87f64af574a90c
|
Provenance
The following attestation bundles were made for mcp_server_kicad-0.5.7.tar.gz:
Publisher:
release.yml on ProductOfAmerica/mcp-server-kicad
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_server_kicad-0.5.7.tar.gz -
Subject digest:
17daa8099fa476ac76575bf272508bb398ea3a742e1676ad12015fe116316872 - Sigstore transparency entry: 1079206470
- Sigstore integration time:
-
Permalink:
ProductOfAmerica/mcp-server-kicad@12ee7c607055292bc9c2f233f72280030f20a38d -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ProductOfAmerica
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@12ee7c607055292bc9c2f233f72280030f20a38d -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file mcp_server_kicad-0.5.7-py3-none-any.whl.
File metadata
- Download URL: mcp_server_kicad-0.5.7-py3-none-any.whl
- Upload date:
- Size: 38.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
408438c8be6b879f129dd55e0ac5c2bd03a732b225eca8bfcad813a80fb4306b
|
|
| MD5 |
b94efbc3142701e12b6b957fbafee13f
|
|
| BLAKE2b-256 |
7243214ce84454952f9b41a9eeb31c8b29cf6355d68768c1f84fd826c7ccb7a8
|
Provenance
The following attestation bundles were made for mcp_server_kicad-0.5.7-py3-none-any.whl:
Publisher:
release.yml on ProductOfAmerica/mcp-server-kicad
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_server_kicad-0.5.7-py3-none-any.whl -
Subject digest:
408438c8be6b879f129dd55e0ac5c2bd03a732b225eca8bfcad813a80fb4306b - Sigstore transparency entry: 1079206519
- Sigstore integration time:
-
Permalink:
ProductOfAmerica/mcp-server-kicad@12ee7c607055292bc9c2f233f72280030f20a38d -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ProductOfAmerica
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@12ee7c607055292bc9c2f233f72280030f20a38d -
Trigger Event:
workflow_dispatch
-
Statement type: