A professional Model Context Protocol server for KiCad EDA.
Project description
KiCad MCP Pro Server
AI-powered PCB and schematic design with KiCad. Works with Claude, Cursor, VS Code, Claude Code, and any MCP-compatible client.
Primary CI/CD and release automation runs in Azure DevOps. GitHub Actions in this repository are manual fallback workflows only.
Features
- Project-first workflow with
kicad_set_project(), recent project discovery, and safe path handling. - Project intent helpers with
project_set_design_intent()andproject_get_design_intent()for connector, decoupling, RF, and fab assumptions. - KiCad 10.x-first runtime with best-effort 9.x support and cross-platform CLI/library discovery.
- PCB tools for board inspection, tracks, vias, footprints, text, shapes, outline editing, and zone refill.
- Schematic tools for symbols, wires, labels, buses, no-connect markers, property updates, annotation, netlist-aware auto-layout, and IPC reload.
- Library tools for symbol search, footprint search, datasheet lookup, footprint assignment, and custom symbol generation.
- Validation tools for DRC, ERC, DFM, courtyard issues, silk overlaps, and schematic-versus-PCB footprint checks.
- Project quality gates for schematic, schematic connectivity, PCB, placement, manufacturing, and release readiness before fabrication exports.
- Export tools for Gerber, drill, BOM, PDF, netlist, STEP, render, pick-and-place, IPC-2581, SVG, and DXF.
- Signal integrity tools for impedance synthesis, differential skew checks, stackup planning, via-stub review, and decoupling heuristics.
- Power integrity tools for voltage-drop estimation, copper current checks, plane generation, and thermal via guidance.
- EMC tools for plane coverage, return-path review, via stitching, diff-pair symmetry, and bundled compliance sweeps.
- Simulation tools for SPICE operating-point, AC, transient, DC sweep, and loop-stability checks.
- MCP resources for live board/project state, quality gates, fix queues, connectivity, and placement review.
- Prompt workflows for first-board, schematic-to-PCB, manufacturing release, design review loops, and critic/fixer iterations.
- Server profiles (
full,minimal,schematic_only,pcb_only,manufacturing,high_speed,power,simulation,analysis) to reduce tool surface for clients. Legacypcbandschematicaliases remain available.
Quick Start
Installation
Option 1: uvx (recommended)
uvx kicad-mcp-pro
Option 2: pip
pip install kicad-mcp-pro
kicad-mcp-pro
Option 3: uv
uv tool install kicad-mcp-pro
VS Code Configuration
Add this to .vscode/mcp.json:
{
"servers": {
"kicad": {
"type": "stdio",
"command": "uvx",
"args": ["kicad-mcp-pro"],
"env": {
"KICAD_MCP_PROJECT_DIR": "/absolute/path/to/your/kicad-project",
"KICAD_MCP_PROFILE": "pcb_only"
}
}
}
}
Note: ${workspaceFolder} may not be expanded in some VS Code MCP setups. Use an
absolute path for KICAD_MCP_PROJECT_DIR to avoid startup errors.
Codex Configuration
Add this to ~/.codex/config.toml (or project-scoped .codex/config.toml):
[mcp_servers.kicad]
command = "uvx"
args = ["kicad-mcp-pro"]
startup_timeout_sec = 20
tool_timeout_sec = 120
[mcp_servers.kicad.env]
KICAD_MCP_PROJECT_DIR = "/absolute/path/to/your/kicad-project"
KICAD_MCP_PROFILE = "pcb_only"
Claude Desktop Configuration
Add this to your Claude Desktop config:
{
"mcpServers": {
"kicad": {
"command": "uvx",
"args": ["kicad-mcp-pro"],
"env": {
"KICAD_MCP_PROJECT_DIR": "/path/to/your/project"
}
}
}
}
VS Code / Cline
Use .vscode/mcp.json with the same server shape shown above, and keep
KICAD_MCP_PROJECT_DIR as an absolute path.
Cursor
Add a custom MCP server using uvx as the command and kicad-mcp-pro as the only argument. For remote-style usage, run kicad-mcp-pro --transport http and connect to http://127.0.0.1:3334/mcp.
Claude Code
Launch the server with uvx kicad-mcp-pro, then attach it from your MCP config. The minimal profile is a good default when you mainly want read/export workflows, while pcb_only and analysis are good focused options for board-heavy sessions.
More Clients
Copy-ready configuration examples for VS Code, GitHub Copilot in VS Code, Codex, Claude Desktop, Claude Code, Cursor, Gemini CLI, Antigravity-compatible clients, and HTTP transports are available in Client Configuration.
Prerequisites
- KiCad 9.0 or 10.0+ installed.
- Python 3.12+.
- For live IPC tools, KiCad must be running with the IPC API available.
- For HTTP transport, install the
httpextra:pip install "kicad-mcp-pro[http]". - For FreeRouting orchestration helpers, install the
freeroutingextra:pip install "kicad-mcp-pro[freerouting]". - For SPICE simulation tools, install the
simulationextra:pip install "kicad-mcp-pro[simulation]". - For Git checkpoint tools, install the
vcsextra:pip install "kicad-mcp-pro[vcs]".
Docker Limitations
- The published container image does not bundle a KiCad installation.
kicad-cli-backed export and validation tools require a KiCad installation inside the container, typically mounted at/usr/bin/kicad-cli, orKICAD_MCP_KICAD_CLIpointed to a valid binary.- Live IPC tools still require a reachable KiCad session with the IPC API enabled.
Configuration
| Variable | Description | Default |
|---|---|---|
KICAD_MCP_KICAD_CLI |
Path to kicad-cli |
Auto-detected |
KICAD_MCP_NGSPICE_CLI |
Path to ngspice |
Auto-detected |
KICAD_MCP_KICAD_SOCKET_PATH |
Optional KiCad IPC socket path | Unset |
KICAD_MCP_KICAD_TOKEN |
Optional KiCad IPC token | Unset |
KICAD_MCP_PROJECT_DIR |
Active project directory | Unset |
KICAD_MCP_PROJECT_FILE |
Explicit .kicad_pro file |
Auto-detected |
KICAD_MCP_PCB_FILE |
Explicit .kicad_pcb file |
Auto-detected |
KICAD_MCP_SCH_FILE |
Explicit .kicad_sch file |
Auto-detected |
KICAD_MCP_OUTPUT_DIR |
Export output directory | <project>/output |
KICAD_MCP_SYMBOL_LIBRARY_DIR |
KiCad symbol library root | Auto-detected |
KICAD_MCP_FOOTPRINT_LIBRARY_DIR |
KiCad footprint library root | Auto-detected |
KICAD_MCP_TRANSPORT |
stdio, http, sse, or streamable-http |
stdio |
KICAD_MCP_HOST |
HTTP bind host | 127.0.0.1 |
KICAD_MCP_PORT |
HTTP bind port | 3334 |
KICAD_MCP_MOUNT_PATH |
MCP HTTP mount path | /mcp |
KICAD_MCP_PROFILE |
Tool profile | full |
KICAD_MCP_LOG_LEVEL |
Log level | INFO |
KICAD_MCP_LOG_FORMAT |
console or json |
console |
KICAD_MCP_ENABLE_EXPERIMENTAL_TOOLS |
Enable unstable helpers | false |
KICAD_MCP_IPC_CONNECTION_TIMEOUT |
KiCad IPC timeout in seconds | 10.0 |
KICAD_MCP_CLI_TIMEOUT |
kicad-cli timeout in seconds |
120.0 |
KICAD_MCP_MAX_ITEMS_PER_RESPONSE |
Max list items returned | 200 |
KICAD_MCP_MAX_TEXT_RESPONSE_CHARS |
Max text payload length | 50000 |
Preferred profile names are full, minimal, schematic_only, pcb_only,
manufacturing, high_speed, power, simulation, and analysis. Legacy
aliases pcb and schematic still work for older clients.
Tool Reference
Project Management
kicad_set_projectkicad_get_project_infokicad_list_recent_projectskicad_scan_directorykicad_create_new_projectkicad_get_versionkicad_list_tool_categorieskicad_get_tools_in_categorykicad_helpproject_set_design_intentproject_get_design_intent
PCB
pcb_get_board_summarypcb_get_tracks(page,page_size,filter_layer,filter_net)pcb_get_viaspcb_get_footprints(page,page_size,filter_layer)pcb_get_netspcb_get_zonespcb_get_shapespcb_get_padspcb_get_layerspcb_get_stackuppcb_get_selectionpcb_get_board_as_stringpcb_get_ratsnestpcb_get_design_rulespcb_get_impedance_for_tracepcb_check_creepage_clearancepcb_add_trackpcb_add_tracks_bulkpcb_add_viapcb_add_segmentpcb_add_circlepcb_add_rectanglepcb_add_textpcb_set_board_outlinepcb_set_stackuppcb_add_blind_viapcb_add_microviapcb_auto_place_by_schematicpcb_place_decoupling_capspcb_group_by_functionpcb_align_footprintspcb_set_keepout_zonepcb_add_mounting_holespcb_add_fiducial_markspcb_add_teardropspcb_delete_itemspcb_savepcb_refill_zonespcb_highlight_netpcb_set_net_classpcb_move_footprintpcb_set_footprint_layerpcb_sync_from_schematic
Schematic
sch_get_symbolssch_get_wiressch_get_labelssch_get_net_namessch_create_sheetsch_list_sheetssch_get_sheet_infosch_add_symbolsch_add_wiresch_add_labelsch_add_global_labelsch_add_hierarchical_labelsch_add_power_symbolsch_add_bussch_add_bus_wire_entrysch_add_no_connectsch_update_propertiessch_build_circuitsch_get_pin_positionssch_route_wire_between_pinssch_get_connectivity_graphsch_trace_netsch_auto_place_symbolssch_check_power_flagssch_annotatesch_reload
sch_build_circuit can accept auto_layout=true for a readable grid placement. When a
nets list is also provided, it performs a lightweight connection-aware layout, creates
missing power symbols or labels for named nets, and generates Manhattan wire segments
from symbol pins. This is a deterministic helper, not a full KiCad-quality autorouter.
Multi-unit symbols such as dual op-amps can be placed and inspected with unit=<n>.
The MCP now validates requested units against the KiCad library and reports available
units instead of silently falling back to unit 1.
pcb_sync_from_schematic closes the first-board gap by reading schematic footprint
assignments and writing missing footprint instances into the .kicad_pcb file. It is
intended for initial board bring-up and footprint sync, not for full autorouting.
It preserves existing footprints by default, can replace wrong footprint names in place
with replace_mismatched=true, and performs a lightweight overlap-avoidance pass for
newly added footprints.
v2 also adds board bring-up helpers on top of that sync path. pcb_auto_place_by_schematic
can lay out the first board in cluster, linear, or star mode, while
pcb_group_by_function, pcb_align_footprints, and pcb_place_decoupling_caps
help refine the initial placement without opening the PCB editor. pcb_add_mounting_holes
and pcb_add_fiducial_marks append simple manufacturing footprints, pcb_set_keepout_zone
creates a real rule-area keepout on the active board, and pcb_add_teardrops adds
small copper helper zones at basic pad-to-track junctions when the board is open over IPC.
For multilayer bring-up, pcb_set_stackup stores a file-backed stackup profile and updates
the board setup block so later tools can reuse the same dielectric assumptions.
pcb_get_impedance_for_trace reads that active stackup and estimates impedance for a given
trace width on a selected copper layer, while pcb_check_creepage_clearance performs a
heuristic pad-to-pad creepage review against voltage, pollution degree, and material group.
pcb_add_blind_via and pcb_add_microvia use KiCad IPC to create layer-pair vias with
explicit start and end copper layers.
Library
lib_list_librarieslib_search_symbolslib_get_symbol_infolib_search_footprintslib_list_footprintslib_rebuild_indexlib_get_footprint_infolib_get_footprint_3d_modellib_assign_footprintlib_create_custom_symbollib_search_componentslib_get_component_detailslib_assign_lcsc_to_symbollib_get_bom_with_pricinglib_check_stock_availabilitylib_find_alternative_partslib_get_datasheet_url
Live component search now defaults to the zero-auth jlcsearch source. nexar
and digikey remain available as authenticated source options for deployments
that provide the required credentials.
Export And Validation
run_drcrun_ercschematic_quality_gateschematic_connectivity_gatevalidate_designpcb_quality_gatepcb_placement_quality_gatepcb_score_placementmanufacturing_quality_gateproject_quality_gatecheck_design_for_manufactureget_unconnected_netsget_courtyard_violationsget_silk_to_pad_violationsvalidate_footprints_vs_schematicexport_gerberexport_drillexport_bomexport_netlistexport_spice_netlistexport_pcb_pdfexport_sch_pdfexport_3d_stepexport_stepexport_3d_renderexport_pick_and_placeexport_ipc2581export_svgexport_dxfget_board_statsexport_manufacturing_package
export_manufacturing_package is now a release-only helper. It first runs the full
project_quality_gate() and hard-blocks the package when the design is still FAIL
or BLOCKED. Use the low-level export tools for debugging artifacts while iterating,
then use the manufacturing package only after the project gate is clean.
pcb_placement_quality_gate() is the blocking geometry/context gate. pcb_score_placement()
adds softer density and spread heuristics so an agent can improve layout quality before a
hard failure happens.
DFM
dfm_load_manufacturer_profiledfm_run_manufacturer_checkdfm_calculate_manufacturing_cost
DFM profiles are now bundled with the server for quick fabrication review. The
first v2 profile set includes JLCPCB (standard, advanced), PCBWay
(standard), and OSH Park (2layer). dfm_load_manufacturer_profile
stores the active selection in the project output directory so later DFM checks
can reuse the same fabricator assumptions.
Routing
route_single_trackroute_from_pad_to_padroute_export_dsnroute_import_sesroute_autoroute_freeroutingroute_set_net_class_rulesroute_differential_pairroute_tune_lengthtune_track_length(deprecated alias)tune_diff_pair_length
Routing helpers now cover three layers:
- direct IPC routing for simple single-track and pad-to-pad paths
- rule-file authoring for net class, differential pair, and length-tuning constraints
- FreeRouting orchestration around Specctra
.dsn/.sesfiles
Important limitation: KiCad 10 still does not expose a stable headless Specctra
export/import flow through kicad-cli on all installations. route_export_dsn
and route_import_ses therefore support staging existing .dsn / .ses files
and explain the remaining manual KiCad PCB Editor step when needed.
Simulation
sim_run_operating_pointsim_run_ac_analysissim_run_transientsim_run_dc_sweepsim_check_stabilitysim_add_spice_directive
Simulation tools prefer InSpice when the simulation extra is installed and
fall back to direct ngspice CLI execution when needed. sim_add_spice_directive
stores a project-local sidecar file used by future MCP simulation runs, which is
useful for reusable .param, .include, or .options lines.
Signal Integrity
si_calculate_trace_impedancesi_calculate_trace_width_for_impedancesi_check_differential_pair_skewsi_validate_length_matchingsi_generate_stackupsi_check_via_stubsi_calculate_decoupling_placement
These helpers provide fast board-level estimates for routing and review. They are intended for engineering triage and pre-layout guidance, then should be verified against your fabricator stackup and final KiCad rule setup before tape-out.
Power Integrity
pdn_calculate_voltage_droppdn_recommend_decoupling_capspdn_check_copper_weightpdn_generate_power_planethermal_calculate_via_countthermal_check_copper_pour
These tools focus on quick PDN sanity checks: whether a rail looks too resistive, whether routed copper is undersized, whether a local plane exists, and how much thermal stitching is likely needed around hotter regions.
EMC
emc_check_ground_plane_voidsemc_check_return_path_continuityemc_check_split_plane_crossingemc_check_decoupling_placementemc_check_via_stitchingemc_check_differential_pair_symmetryemc_check_high_speed_routing_rulesemc_run_full_compliance
These EMC helpers use board-state heuristics so an agent can quickly flag likely return-path, stitching, plane, and decoupling problems before a manual SI/EMI review.
Version Control
vcs_init_gitvcs_commit_checkpointvcs_list_checkpointsvcs_restore_checkpointvcs_diff_with_checkpoint
These tools scope Git actions to the active KiCad project directory, add local identity defaults when needed, and protect restores by stashing dirty project state before rolling files back to a checkpoint commit.
Workflows
The built-in MCP prompt set now also includes:
design_review_loopfix_blocking_issuesmanufacturing_release_checklist
The resource surface now exposes:
kicad://project/quality_gatekicad://project/fix_queuekicad://schematic/connectivitykicad://board/placement_quality
For regression coverage, the repository also ships a benchmark and failure corpus under
tests/fixtures/benchmark_projects/. These fixtures are used to prove that clean projects
can reach release export while known-bad projects stay hard-blocked.
Contributing
See CONTRIBUTING.md and the development docs in docs/development.
License
Released under the MIT 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 kicad_mcp_pro-2.0.1.tar.gz.
File metadata
- Download URL: kicad_mcp_pro-2.0.1.tar.gz
- Upload date:
- Size: 10.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d114e4cf5cff11b64bfb4bd323ced076f81c31c97ff2a32e8646449e7b7b6a31
|
|
| MD5 |
b4243a36089074ec0e3ddeef4c70c7d0
|
|
| BLAKE2b-256 |
0e30cdad5c471ec24a989e2952377b326461e9be5d4e1a0c6efdfee7fe8582e6
|
File details
Details for the file kicad_mcp_pro-2.0.1-py3-none-any.whl.
File metadata
- Download URL: kicad_mcp_pro-2.0.1-py3-none-any.whl
- Upload date:
- Size: 12.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c95b34a50fd21e499c7625af431173990d6831bb41c8a549a249d3e11b0831e
|
|
| MD5 |
9fd8e19029414d4a2150c23ab7093d86
|
|
| BLAKE2b-256 |
7913eecf0fca489db4d58a8d513840121da3e90b4085b0ea3f6080eb9b5dec23
|