Skip to main content
Glama
lucatib

kicad-mcp

by lucatib

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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
kicad_statusA

Report the KiCad environment: install, versions, live connection, and which capabilities are available. Call this first when anything behaves unexpectedly.

get_board_summaryA

Summarise the board open in KiCad: name, layer count, item counts, title block, and origin. A cheap orientation call before more specific queries.

list_footprintsA

List footprints on the open board. Filter with glob patterns on reference (e.g. 'R*') or value (e.g. '10k'). Positions are millimetres.

get_footprintA

Full detail for one footprint on the open board, including every pad with its net, position, and layer.

list_netsB

List nets on the open board, optionally filtered by a glob pattern on the net name.

get_layersA

List the board's enabled, visible, and active layers with their names.

get_stackupA

The board's physical stackup: layer order, materials, and thicknesses.

get_selectionA

What the user currently has selected in the KiCad GUI. Use this to act on 'the thing I'm looking at'.

list_tracks_viasA

List tracks and vias on the open board, optionally filtered by net name.

list_zonesB

List copper zones on the open board with their nets and layers.

open_schematicA

Open a .kicad_sch file and summarise it: title block, counts, and child sheets. Works with KiCad closed - schematic access is file-based because KiCad 10 has no schematic IPC API.

list_schematic_symbolsA

List symbols placed in a .kicad_sch file, with reference, value, lib_id, position and footprint. Filter with glob patterns.

find_project_filesB

List KiCad project files in a directory: schematics, boards, and project files.

schematic_netlistA

Export and parse a schematic's netlist via kicad-cli: every component and every net with its connected pins. The most complete view of schematic connectivity available in KiCad 10.

run_ercA

Run Electrical Rules Check on a schematic via kicad-cli and return the report. A non-zero violation count is a result, not a failure.

run_drcA

Run Design Rules Check on a .kicad_pcb file via kicad-cli and return the report.

export_bomB

Export a Bill of Materials from a schematic to CSV via kicad-cli.

export_schematicB

Plot a schematic to pdf, svg, dxf, ps, or hpgl via kicad-cli.

list_symbol_librariesA

List the symbol libraries available, resolving KiCad's global and project sym-lib-tables.

search_symbolsA

Search symbol libraries by name substring, e.g. 'ESP32-S3' or 'LM358'. Returns lib_ids usable with get_symbol_pins and create_pinout_schematic.

get_symbol_pinsB

Every pin of a library symbol: number, name, electrical type, and position. Use this to learn a part's pinout before wiring it.

create_pinout_schematicA

Create a .kicad_sch from a firmware pinout by importing a symbol from a KiCad library.

assignments maps pin names or numbers to net names, e.g. {"IO4": "LED_STATUS", "GPIO_8": "SPI_MOSI"}. Matching ignores case, underscores and hyphens, so IO4/GPIO_4/io4 all work. Assigned pins get a wire and a net label; power pins get power symbols and PWR_FLAG automatically. The file is written directly and does not need KiCad running.

run_kicad_scriptA

Execute Python with the KiCad API pre-imported. Use this for anything the curated tools do not cover.

Available names: kicad (live KiCad client), board (open board, or None), kipy, pcbnew, and sexpr for KiCad file parsing. Print output is captured; assign to result to return a value.

This runs arbitrary local code with your privileges. Do not import kipy.schematic - it is broken in kipy 0.7.1 and KiCad 10 has no schematic API anyway.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

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/lucatib/kicad-mcp'

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