kicad-mcp
Provides tools for creating and editing KiCad projects, including schematics and PCBs, adding symbols, wires, labels, footprints, tracks, assigning nets, running ERC/DRC checks, and exporting to formats like PDF, SVG, netlist, BOM, STEP, DXF, gerbers, and drill files via kicad-cli.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@kicad-mcp create a new KiCad project with a resistor and run ERC"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
kicad-mcp
MCP stdio server for creating and editing KiCad projects — schematics,
PCBs, ERC/DRC checks, and exports — driven by kicad-cli.
Tools
tool | purpose |
| scaffold |
| read a |
| place a symbol by library id (e.g. |
| add a wire segment (mm coordinates, Y down) |
| add a net label |
| place a footprint by library id |
| add a polyline of track segments |
| declare/rename a net in the netlist |
| search symbol libraries |
| search footprint libraries |
| run the checkers, return reports |
| pdf / svg / netlist / bom / step / dxf / gerbers / drill |
| kicad-cli version + detected file-format versions |
Related MCP server: kicad-mcp
Requirements
Python ≥ 3.10, uv
KiCad with
kicad-clionPATH(calibrated against KiCad 10.x)KiCad standard symbol/footprint libraries at
/usr/share/kicad/(override via~/.kicad-mcp.json, see_settings())
Install
uv sync # or: uv venv && uv pip install -e .Run
Add to your MCP client config (e.g. Claude Code / any MCP host):
{
"mcpServers": {
"kicad": {
"command": "uv",
"args": ["run", "--project", "/path/to/kicad-mcp", "kicad-mcp"]
}
}
}Smoke test
bun smoke.mjs # or: node smoke.mjsDrives the server over raw stdio MCP: creates a project, places a resistor
(schematic + PCB), wires/labels, runs ERC + DRC, and exports netlist, SVG,
gerbers, and drill files. Prints SMOKE: N/N passed.
License
MIT
Available Tools
14 toolskicad_drcKicad DrcA
Run KiCad Design Rules Checker on a .kicad_pcb file. Returns the report. schematic_parity additionally checks the board against the sibling .kicad_sch (footprint <-> symbol agreement).
Inputs: pcb (required), outdir, schematic_parity. Returns: result
kicad_ercKicad ErcB
Run KiCad Electrical Rules Checker on a .kicad_sch file. Returns the report.
Inputs: schematic (required), outdir. Returns: result
kicad_exportKicad ExportA
Export a KiCad file via kicad-cli. For .kicad_sch: target in {pdf, svg, netlist (kicadxml), bom}. For .kicad_pcb: target in {gerbers, drill, pdf, svg, step, dxf}. layers: optional comma-separated layer list for pcb svg/gerbers (e.g. 'F.Cu,F.SilkS,Edge.Cuts'; gerbers defaults to the standard fab stack). pcb svg uses --mode-single --fit-page-to-board --exclude-drawing-sheet. gerbers/drill write files into outdir (directory); other targets write into outdir. Returns the export command result.
Inputs: path (required), target (required), layers, outdir. Returns: result
kicad_list_footprintsKicad List FootprintsA
Search KiCad footprint libraries. Query matches 'Library:FootprintName'.
Returns up to limit lib_ids.
Inputs: limit, query. Returns: result
kicad_list_symbolsKicad List SymbolsB
Search KiCad symbol libraries. Query matches 'Library:SymbolName' paths.
Returns up to limit lib_ids.
Inputs: limit, query. Returns: result
kicad_new_projectKicad New ProjectB
Create a new KiCad project: .kicad_pro/.kicad_sch/.kicad_pcb. Returns paths of the created files.
Inputs: name (required), directory. Returns: result
kicad_pcb_add_footprintKicad Pcb Add FootprintC
Add a footprint to a PCB by library id (e.g. 'Resistor_SMD:R_0603_1608Metric').
Inputs: path (required), lib_id (required), reference (required), x, +4 more. Returns: result
kicad_pcb_add_trackKicad Pcb Add TrackC
Add a polyline of track segments through points [[x,y], ...] on the PCB.
Inputs: path (required), points (required), net, layer, +1 more. Returns: result
kicad_pcb_assign_netKicad Pcb Assign NetC
Declare or rename a net in the PCB netlist (net 0 is the unconnected net).
Inputs: path (required), net_name (required), net_number (required). Returns: result
kicad_read_fileKicad Read FileB
Read a KiCad .kicad_sch or .kicad_pcb file and return its S-expression content.
Inputs: path (required). Returns: result
kicad_sch_add_labelKicad Sch Add LabelC
Add a net label to a schematic at the given position.
Inputs: x (required), y (required), path (required), text (required). Returns: result
kicad_sch_add_symbolKicad Sch Add SymbolB
Add a symbol instance to a schematic by library id (e.g. 'Device:R'). x/y are schematic mm coordinates (KiCad Y axis points down).
Inputs: path (required), lib_id (required), reference (required), x, +3 more. Returns: result
kicad_sch_add_wireKicad Sch Add WireC
Add a wire segment to a schematic (mm coordinates, Y axis points down).
Inputs: x1 (required), x2 (required), y1 (required), y2 (required), +1 more. Returns: result
kicad_versionKicad VersionA
Return the installed kicad-cli version and detected file format versions.
Inputs: no named parameters. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 14 tools
Tools are cleanly partitioned by domain (sch_* vs pcb_*) and action (add_wire vs add_track, drc vs erc, list_symbols vs list_footprints). No two tools overlap in purpose; an agent can pick the right tool from the name and description alone.
Every tool uses a predictable kicad_ prefix with a consistent verb_noun or domain_action snake_case pattern (kicad_new_project, kicad_sch_add_symbol, kicad_pcb_assign_net). The sch/pcb segments reinforce a coherent scheme.
14 tools is well within the ideal 3-15 range and each earns its place covering setup, editing, validation, library search, and export. Nothing feels redundant or padded.
Covers project creation, reading, adding schematic/PCB elements, DRC/ERC, library lookup, and export, but offers only additive edits with no move/delete/update operations for placed symbols, wires, tracks, or footprints. There is also no write-back tool, so modifying an existing design is a dead end beyond raw read_file, which limits iteration workflows.
Related MCP Connectors
Design, route, check, review and export manufacturable PCBs from plain language; KiCad import.
EasyGerber brings AI printed circuit board (PCB) design, layout, and routing to MCP-compatible assistants. Describe a circuit or start from firmware pin assignments, search published electronic components, and build schematics using catalog parts with their footprints and available 3D models. Create and revise boards, generate layouts with automatic component placement and routing, inspect previews, and check saved layouts for blocking design issues. Export manufacturing ZIPs containing Gerber and drill files, a bill of materials, and component placement data, or download an editable EasyGerber (.egb) file. Start without signing up. Your agent uses one private board reference to create and continue a board, including catalog access, edits, layout, checks, previews, and exports, without a separate guest setup step or token to manage. To keep the board in your account or work with permitted saved personal or organization boards, complete EasyGerber sign-in and OAuth consent, then resume the same task. Account permissions, plan limits, and generation billing apply; support depends on your MCP client and installed integration.
Turn datasheets into source-backed JSON contracts, pinout matrices, and KiCad CAD for AI agents.
Design and revise PCBs from plain language, track jobs, and retrieve design artifacts.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables natural language interaction with KiCad projects, schematics, and PCBs, supporting project management, design rule checking, netlist extraction, and datasheet RAG search.3MIT
- AlicenseNot gradedqualityDmaintenanceEnables natural language control of KiCad PCB design software through Claude Desktop, automating project creation, design rule checks, component management, export, and cost estimation.25 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with KiCAD for PCB design automation. Users can design PCBs using natural language, including component placement, routing, checks, and export.60 npmMIT
- AlicenseBqualityCmaintenanceEnables AI assistants to interact with KiCAD for PCB design automation, including schematic editing, component placement, routing, DRC/ERC, and export.10038 npm2MIT