KiCad Schematics
Design KiCad schematics by talking to Claude.
Connector by unmateria · GitHub account verified by the MCP Registry
Install
Works with Claude Desktop. Read the repository before you give any tool access to your data.
MCP bundle (.mcpb): open it with Claude Desktop.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 13 read · 14 write · 1 delete · 5 not yet classified
- Secrets
- None asked for
- Install scripts
- Not scanned yet
- Runs as
- Downloaded binary
Tools by what they do 33
Read from the source code; the running server may list different tools.
Read 13 · Look things up without changing anything.
check_component_existencecluster_componentsdesign_guidefind_partget_connectivity_summaryget_design_contextget_output_dirget_project_infokicad_workflow_helplayout_metricslist_symbol_librarieslist_templates
Show 1 more tools
read_schematic
Write 14 · Create, change, send or run things.
add_labeladd_power_railadd_symboladd_wireapply_templatebatch_schematicconnect_pinscreate_schematicimport_partmodify_pcb_layoutno_connectregister_library
Show 2 more tools
set_output_dirsymbol_pins
Delete 1 · Delete, drop, revoke or wipe things.
disconnect_pin
Not yet classified 5 · We could not tell from the name and description.
compile_schematicconnect_netlistexport_schematic_imagejunctionvalidate_design
Network hosts it talks to 1
github.com· found in install command
Tools (33)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
add_labelNet label. Two labels with the same name are electrically connected — use instead of long wires for distant pins.
add_power_railPlace a power symbol (power:GND, power:VCC, power:+5V…) directly on a target pin in one call. Auto-generates the #PWR reference; no wire needed.
add_symbolPlace a component on the schematic. Returns pin positions for the placed instance — use those coords with connect_pins, never compute pin coords manually. For multi-unit ICs (NE5532, LM358…) call once per unit with the same reference.
add_wireManual wire from (x,y) to (x2,y2). Prefer connect_pins when both endpoints are pin positions.
apply_templateStamp a canonical sub-circuit template (see list_templates) into the schematic at (anchor_x, anchor_y). Pin_map ties role-qualified template pins to external net names so the surrounding circuit picks them up by label. Auto-allocates references unless ref_map is supplied.
batch_schematicRun multiple actions atomically in one file write. Stops on the first error. Use for adding many symbols at once or scripted setups.
check_component_existenceSearch for a component in the installed and imported KiCad libraries. Query format: 'LibName:PartName' (e.g. 'Device:R') or keyword. Tells you WHETHER a symbol exists; call symbol_pins to see what its pins are called, and find_part when it does not exist here.
cluster_componentsRead-only — list functional clusters detected in the current schematic (decoupling caps near IC, I²C pull-ups, LC filters, crystal+load caps, voltage dividers, op-amp feedback, header neighbours). Useful to understand which symbols the compiler wires from closed-form geometry.
compile_schematicTHE way to build a schematic. Pass the whole design as one declarative source — either inline in `design` (no files needed) or as `design_path` — and get back a complete .kicad_sch with placement, wiring, power symbols, no_connects, ERC and a rendered preview. Prefer this over add_symbol/connect_pins/connect_netlist for anything you are creating: those are single-step editors that DO NOT run text placement, wire welding or netlist verification, so schematics built with them come out with overlapping text and can carry undetected shorts. Read design_guide FIRST. To change anything, edit the sou…
connect_netlistRoute a complete netlist in one call — replaces many individual connect_pins calls. Each connection item has two fields: {"net": "VCC", "pins": ["U1.VCC", "R1.1", "C1.+"]} net — net name (used as label text) pins — pin refs in REF.PIN format (at least 2) The server routes wires between pins using an A* grid router that avoids symbol bodies. Returns full pin positions after routing — no need to call read_schematic separately. Strategy options: auto (default) — A* routing; falls back to net labels when routing fails or route > 150 mm wire — A* only; warns about failures but does …
connect_pinsDraw an L-shaped wire between two pins (REF.pin → REF.pin). Smart routing avoids crossing other symbol bodies. Use add_label or connect_netlist instead for distant pins.
create_schematicCreate an empty .kicad_sch file at schematic_path. Always the first call.
design_guideRead-only, and the FIRST thing to call before writing a design: a complete worked example you can copy, the full .design.json syntax (what the fields are called and how nets and placement are expressed), and the human-schematic conventions — signal flow, power rails, decoupling spacing in grid cells, wire-vs-label criteria, and the iteration protocol.
disconnect_pinRemove all wires and no_connect markers touching a pin endpoint. Use to undo a bad connection before re-routing.
export_schematic_imageExport a .kicad_sch schematic for visual review and download. Format options: svg (default) — vector SVG + inline PNG preview. pdf — PDF via kicad-cli. MCP resource URI only (no inline preview). After calling this tool, read each kicad:// resource URI and call present_files to offer the user download buttons.
Show 18 more tools
find_partFind a component across every source at once: the KiCad libraries installed here, the parts already imported, and the external libraries (CERN, JLCPCB, Digi-Key, Espressif, SparkFun, LCSC/EasyEDA). Returns ranked candidates with what each one provides (symbol, footprint, 3D model), its licence, and a ref to hand to import_part. Use this when check_component_existence comes back empty. A candidate marked ALREADY INSTALLED needs no import — use its lib_id straight away.
get_connectivity_summaryConnectivity audit: total pins, connected, unconnected, no_connect, near-misses, multi-unit gaps, full net list. Faster than ERC.
get_design_contextReturns full spatial + connectivity + direction context for a schematic in one call. Includes all component positions, all pin directions (→N/S/E/W), full netlist, and geometric problems (wrong-direction wires, crossings, near-misses). Use this before routing to understand the complete picture without multiple round trips.
get_output_dirReturn the current output directory where the MCP server writes generated files (schematics, images, exports). Also lists the 5 most recent files in that directory.
get_project_infoReturn server configuration: working directory, output_dir, log file path, kicad-cli path, symbol/footprint library paths. Use this to find the correct absolute path for schematic files.
import_partInstall a candidate from find_part into the MCP_Imported library and register it with KiCad, so compile_schematic and the KiCad GUI can both use it. The part is verified before anything is written: it must parse, KiCad must read it back, and it must place in a schematic with its pins resolved. A part that fails is NOT installed. Returns the lib_id to use, the verification report, and pictures of the symbol and footprint — look at them.
junctionSolder dot at a T-intersection of three or more wires. Required for KiCad to treat the T as connected.
kicad_workflow_helpRead once at the start of a session. Returns the recommended workflow: write a .design.json source → compile_schematic → inspect PNG/ERC → iterate on the source.
layout_metricsRead-only — compute layout-quality metrics (bend count, crossings, wires-through-symbol, total wire length, density). Use to track regression vs baseline after editing a design source.
list_symbol_librariesBrowse KiCad global symbol libraries. Without lib_name: lists all library names (optionally filtered). With lib_name: lists symbols inside that library (e.g. lib_name='Device', filter='LED' → returns 'Device:LED', 'Device:LED_ALT', etc.).
list_templatesList the canonical sub-circuit templates available (op-amp non-inverting, voltage divider, MCU minimal, LM7805 regulator, I²C pull-ups). Each entry includes the external pins that the surrounding circuit must wire.
modify_pcb_layoutModify a KiCad PCB file (.kicad_pcb). Action 'move_footprint': requires reference, x, y, angle. Action 'define_edge_cuts': requires x, y (top-left corner), width, height.
no_connectMark a pin as intentionally unconnected so ERC stops complaining. Provide either from=REF.pin or explicit x,y.
read_schematicList placed symbols, their pin positions, and connectivity status. Use before connect_pins so you know exact pin coordinates.
register_libraryAdd a library entry to a sym-lib-table or fp-lib-table. import_part already registers what it installs; this is for libraries you got some other way.
set_output_dirChange the output directory where generated files are written. Creates the directory if it does not exist and persists the setting to config.ini so it survives server restarts. Takes effect immediately without restarting.
symbol_pinsList the real pins of a library symbol: number, name, electrical type and which side it points to. Call this BEFORE writing nets in a .design.json source — KiCad's pin names are often not the datasheet's (NE555P has THRES and ~{RST}, not THR and RESET), and guessing costs a compile cycle each time.
validate_designRun ERC on a schematic and/or DRC on a PCB. Violations are classified as [MCP BUG] (internal error) or [FIXABLE] (LLM can resolve).
Signals
- Stars
- 3
- Forks
- 0
- Open issues
- 0
- Last commit
- Aug 10, 2026 (2 months ago)
- Last release
- Aug 10, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.unmateria/mcp-kicad- Version
- 0.2.7
- Auth
- No auth
- License
- License unknown
- Repository
- github.com/unmateria/MCP-Kicad
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from unmateria
Cite this page
KiCad Schematics MCP server. Agent Mart. https://agentmart.dev/connectors/unmateria-mcp-kicad (last updated 2026-10-24)