KiCadSAFE
🔌 MCP server for KiCad EDA - Analyze schematics & PCBs, trace pin-level connections, automate design editing. Works with any MCP-compatible AI tool
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
A Model Context Protocol (MCP) server for KiCad 9.0+ that lets AI assistants analyze schematics, inspect PCBs, trace connections, validate designs, and generate embedded code.
Features
- Schematic Analysis - Components, nets, symbols, hierarchical sheets
- PCB Analysis - Footprints, tracks, routing quality, signal/power integrity via pcbnew API
- Netlist Tracing - 100% accurate pin-level connection tracking
- Design Validation - ERC/DRC via kicad-cli (headless, CI friendly)
- Pin Analysis - Pin function detection, conflict analysis, pinmux config
- Code Generation - Device tree (.dts) and hardware test code generation
- Project Management - Create KiCad projects from templates
- Parts Registry - Search 21,000+ verified parts on an open, no-login registry (PartReel by default,
PARTS_REGISTRY_URLto change) and download footprints/symbols/3D into the project; downloads are host-allowlisted, extension-checked and size-capped
Requirements
- KiCad 8.0+ (9.0 or 10.0 recommended)
kicad-cliin PATH (included with KiCad)
Installation
Recommended: Install into KiCad Python (Full PCB Analysis)
KiCad ships with its own Python that includes the pcbnew module. Installing into this Python gives you full PCB analysis capabilities (precise track lengths, via statistics, signal integrity, power integrity).
Step 1: Find your KiCad Python path:
Step 2: Install the package into KiCad Python:
# Windows example (KiCad 10.0) "C:\Program Files\KiCad\10.0\bin\python.exe" -m pip install fastmcp "C:\Program Files\KiCad\10.0\bin\python.exe" -m pip install -e . # macOS example /Applications/KiCad/KiCad.app/Contents/Frameworks/python3
8f49b21dcffcOBSERVED · 2026-10-07Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.
claude mcp add kicad-mcp-server -- uvx kicad-mcp-server
{
"mcpServers": {
"kicad-mcp-server": {
"command": "uvx",
"args": [
"kicad-mcp-server"
]
}
}
}Exposed tools (47)
39 read · 8 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
add_component_from_library | write | Add a component from KiCad |
add_global_label | write | Add a global label on a component pin (project-wide connection). |
add_hierarchical_label | write | Add a hierarchical label on a component pin (cross-sheet connection). |
add_label | write | Add a local label (text label) to the schematic. |
add_wire | write | Add a wire (connection line) to the schematic. |
analyze_hierarchical_nets | read | Analyze all nets in hierarchical schematic design. |
analyze_pcb_nets | read | Analyze nets in a KiCad PCB file. |
analyze_pcb_power_integrity | read | Analyze power integrity: copper zones, power net routing, GND coverage. |
analyze_pcb_signal_integrity | read | Analyze signal integrity: diff pair matching, RF traces, critical nets. |
analyze_pin_functions | read | Analyze pin functions and detect conflicts. |
create_kicad_project | write | Create a new KiCad project. |
detect_pin_conflicts | read | Detect pins with conflicting electrical connections. |
download_registry_part | read | Download a registry part |
export_drc_report | read | Export DRC report to file. |
export_erc_report | read | Export ERC report to file. |
export_gerber | read | Export a PCB to Gerber + drill files for fabrication via kicad-cli. |
export_pcb_3d | read | Export the PCB as a STEP 3D model for mechanical CAD handoff. |
export_schematic_svg | read | Export schematic pages to SVG images. |
extract_gpio_config | read | Extract GPIO pin configurations from schematic. |
extract_i2c_devices | read | Extract I2C bus and device configurations. |
extract_pinmux_config | read | Extract pin multiplexing configuration for MCUs. |
extract_power_domains | read | Extract power domain and regulator configurations. |
extract_spi_devices | read | Extract SPI bus and device configurations. |
find_tracks_by_net | read | Find track segments belonging to a specific net. |
generate_device_tree | read | Generate device tree source (.dts) file from schematic. |
generate_netlist | read | Generate KiCad netlist from schematic file. |
get_drc_violations | read | Get filtered DRC violations from PCB. |
get_erc_violations | read | Get filtered ERC violations from schematic. |
get_netlist_components | read | Get all components from netlist with their network connections. |
get_netlist_nets | read | Get all nets from netlist file. |
get_pcb_statistics | read | Get statistics about a KiCad PCB design. |
get_registry_part | read | Get the full registry record for one part. |
get_schematic_info | read | Get general information about a schematic file. |
get_symbol_details | read | Get detailed information about a specific symbol/component. |
list_pcb_footprints | read | List all footprints in a KiCad PCB file. |
list_schematic_components | read | List all components in a KiCad schematic file. |
list_schematic_nets | read | List all nets in a KiCad schematic. |
render_pcb | read | Render a 3D view of the PCB to a PNG image. |
run_drc | write | Run Design Rules Check (DRC) on PCB. |
run_erc | write | Run Electrical Rules Check (ERC) on schematic. |
search_components_by_type | read | Search for components by type (OLED, sensor, display, etc.). |
search_parts_registry | read | Search an open registry of 21,000+ verified KiCad parts (no login). |
search_symbols | read | Search for symbols/components matching a pattern. |
setup_pcb_layout | read | Initialize an empty PCB with the specified board outline dimensions. |
trace_hierarchical_connection | read | Trace component connections across hierarchical schematics. |
trace_netlist_connection | read | Trace component connections using netlist file (most accurate). |
validate_pin_configuration | read | Validate pin configuration conflicts for device tree generation. |
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- declared (4 observation(s))
- Shell
- none-observed
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (5)
pytest, pytest-asyncio, pytest-cov, black, ruff, mypy, sphinx, sphinx-rtd-theme
mcp, fastmcp, kicad-skip, pydantic, python-dotenv, jinja2
# Add to ~/.bashrc or ~/.zshrc
# Install KiCad or add to PATH
Gates applied: no_behavioural_pass, no_license.
8f49b21dcffcfull audit observations/trust-audit/mcp-server/seeed-studio__kicad-3.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-07 | 8f49b21dcffc | SAFE | B | 89 | first audit |
Questions
What is the KiCad MCP server?
🔌 MCP server for KiCad EDA - Analyze schematics & PCBs, trace pin-level connections, automate design editing. Works with any MCP-compatible AI tool
What tools does KiCad expose?
47 in total: 39 read-only, 8 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is KiCad safe to connect to an agent?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.
What credentials does KiCad need?
No credential environment variables were found in its source, so it appears to need none.
How does KiCad run?
It speaks stdio, so it runs as a local process your client starts. It is published on PyPI as kicad-mcp-server.
How current is this page?
The grade is for one exact copy of the source (8f49b21dcffc), read on 2026-10-07. The repository is watched and re-audited when it changes.