kicad-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| kicad_new_projectB | Create a new KiCad project: .kicad_pro/.kicad_sch/.kicad_pcb. Returns paths of the created files. |
| kicad_read_fileB | Read a KiCad .kicad_sch or .kicad_pcb file and return its S-expression content. |
| kicad_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). |
| kicad_sch_add_wireC | Add a wire segment to a schematic (mm coordinates, Y axis points down). |
| kicad_sch_add_labelC | Add a net label to a schematic at the given position. |
| kicad_pcb_add_footprintC | Add a footprint to a PCB by library id (e.g. 'Resistor_SMD:R_0603_1608Metric'). |
| kicad_pcb_add_trackC | Add a polyline of track segments through points [[x,y], ...] on the PCB. |
| kicad_pcb_assign_netC | Declare or rename a net in the PCB netlist (net 0 is the unconnected net). |
| kicad_list_symbolsB | Search KiCad symbol libraries. Query matches 'Library:SymbolName' paths.
Returns up to |
| kicad_list_footprintsA | Search KiCad footprint libraries. Query matches 'Library:FootprintName'.
Returns up to |
| kicad_ercB | Run KiCad Electrical Rules Checker on a .kicad_sch file. Returns the report. |
| kicad_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). |
| kicad_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. |
| kicad_versionA | Return the installed kicad-cli version and detected file format versions. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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.