Skip to main content
Glama
antonmadto

kicad-mcp

by antonmadto

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
KICAD_MCP_CLI_PATHNooverride for the kicad-cli executable; auto-discovered per platform
KICAD_MCP_CLI_TIMEOUTNoseconds for kicad-cli subprocess calls120
KICAD_MCP_IPC_TIMEOUTNoseconds for IPC calls10
KICAD_MCP_SEARCH_PATHSNoos.pathsep-separated project roots (also the file-access confinement boundary)~/Documents/KiCad,~/KiCad
KICAD_MCP_FREEROUTING_JARNoFreerouting jar for autoroute (Phase 6)
KICAD_MCP_ALLOW_SCHEMATIC_WRITENo1 to enable experimental schematic writes0

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_server_statusA

Report kicad-mcp backend availability, capabilities, and KiCad version.

Use this first to see what is possible in the current environment: headless analysis/export (kicad-cli), schematic reads (S-expr), and live board editing (IPC, needs a running KiCad).

list_projectsA

List KiCad projects discoverable under the configured search paths.

get_project_infoB

Info for a project (.kicad_pro path or its directory): associated files.

create_projectB

Create a new, minimal KiCad project under directory (within roots).

get_board_infoB

Summarize a board: copper layers, thickness, nets, footprints, extents.

get_board_stackupB

Ordered physical stackup (dielectric + copper layers with thickness).

list_schematic_componentsB

List schematic components (reference, value, lib_id, footprint).

list_schematic_netsB

List nets with their fan-out (node count), from the exported netlist.

trace_netB

Show every pin (ref + pin number/function) connected to a given net.

run_ercB

Run Electrical Rules Check on the schematic; return normalized findings.

run_drcC

Run Design Rules Check on the board; return normalized findings.

export_gerbersC

Plot gerbers + drill files for the board into a directory.

export_bomB

Export the schematic Bill of Materials as CSV.

export_netlistC

Export the schematic netlist (KiCad s-expression format).

export_stepC

Export a STEP 3D model of the board.

render_boardA

Render a 3D PNG of the board from a side (top/bottom/left/right/front/back).

export_fab_packageC

Bundle a complete fab package (gerbers + drill + BOM + CPL) into a zip.

review_designA

Audit a board against the full Hartley/Phil's Lab rule catalog.

Returns findings grouped by severity with rule IDs, one-line physics rationales, and citations, plus a markdown summary.

review_topicB

Audit one rule family: stackup, grounding, return_path, decoupling, dfm.

set_design_contextC

Provide facts the files cannot contain (rise times, clocks, target impedances, connector-facing nets, fab house) to sharpen the review.

get_live_board_statusA

Status of the board open in the running KiCad (via IPC): item counts, layers, KiCad version. Requires the GUI with the API enabled.

list_live_footprintsA

List footprints on the live board with position/rotation/layer.

move_footprintB

Move a footprint to (x, y) in mm on the live board. Single undo step.

rotate_footprintB

Set a footprint's rotation in degrees on the live board. Single undo step.

duplicate_footprintA

Copy a placed footprint to a new reference + position (KiCad 9 IPC cannot place from a library, so cloning an on-board part is the supported 'add a part'). Give x_mm/y_mm for an absolute spot, else it offsets.

get_netclassesA

List netclasses on the live board with their track/clearance/via/diff- pair constraints and member nets.

add_zoneB

Add a copper zone on a layer from a polygon of [x, y] mm points, optionally assigned to a net (e.g. GND). Single undo step.

refill_zonesA

Refill all copper zones on the live board.

save_boardA

Save the live board to disk — required before render_board / run_drc can see live edits (they read the file).

route_traceA

Route a trace along [x, y] mm waypoints on a layer, optionally on a net. Multi-segment, single undo step.

add_viaB

Add a via at (x, y) mm. Defaults to the standard 0.7/0.3 mm geometry.

route_differential_pairA

Route a differential pair: P and N run parallel to the centerline waypoints, offset by (width+gap)/2 each side. Single undo step.

set_symbol_propertyA

[EXPERIMENTAL] Set a property (Value, Footprint, ...) on an existing schematic symbol. Requires KICAD_MCP_ALLOW_SCHEMATIC_WRITE=1 and the file closed in KiCad. Returns the post-edit ERC report.

duplicate_symbolA

[EXPERIMENTAL] Clone a placed symbol with a new reference, offset by (dx, dy) mm. Fresh UUIDs; the new part's pins start unconnected. Requires KICAD_MCP_ALLOW_SCHEMATIC_WRITE=1 and the file closed in KiCad.

search_symbolsB

Search installed KiCad symbol libraries; returns Lib:Symbol ids.

search_footprintsA

Search installed KiCad footprint libraries; returns Lib:Footprint ids.

search_jlcpcb_partsA

Search a local JLCPCB parts DB by MPN/description. Needs KICAD_MCP_JLCPCB_DB set to a jlcparts-style SQLite database.

get_task_statusC

Poll a background task (autoroute, batch export). Returns the result once status is 'done'.

list_tasksA

List background tasks and their statuses (newest first).

cleanup_tasksA

Drop finished background tasks from the queue.

export_fab_package_asyncA

Start a fab-package export in the background; poll it with get_task_status. Use for large boards that may exceed the request timeout.

autoroute_boardA

Autoroute a Specctra .dsn with Freerouting (background task → task_id). Needs KICAD_MCP_FREEROUTING_JAR and Java. Note: KiCad 9 cannot export DSN headlessly, so export the .dsn from the KiCad GUI first.

get_review_historyA

Show past review/DRC runs for a project (counts over time). Filter by kind: 'review' or 'drc'.

list_tool_categoriesA

List tool categories with a description and tool count. Start here to navigate the tool surface.

get_category_toolsB

List the tools in a category with their one-line descriptions.

search_toolsB

Search tools by name or description substring.

execute_toolB

Dispatch to any tool by name with an arguments object. Convenience for tools reached via the categories above.

Prompts

Interactive templates invoked by user choice

NameDescription
review_boardGuided full design review of a KiCad board using the review engine.
plan_stackupInterview + recommend a stackup following the Hartley/Phil rules.
debug_emiHartley-style EMI diagnostic tree.
prepare_fabPre-release DFM checklist before generating fab outputs.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/antonmadto/kicad-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server