Skip to main content
Glama
ProductOfAmerica

mcp-server-kicad

mcp-server-kicad

PyPI version License: MIT Tests

MCP servers for KiCad schematic, PCB, symbol, footprint, and project automation.

Servers

Server

Tools

Description

mcp-server-kicad-schematic

40

Schematic read/write, ERC analysis, hierarchical labels, and exports (PDF, SVG, DXF, netlist, BOM)

mcp-server-kicad-pcb

29

PCB read/write, DRC analysis, autorouting, and exports (Gerber, drill, 3D models, pick-and-place)

mcp-server-kicad-symbol

5

Symbol library browsing, creation, SVG export, and library upgrade

mcp-server-kicad-footprint

4

Footprint library browsing, SVG export, and library upgrade

mcp-server-kicad-project

24

Project scaffolding, hierarchical sheets, hierarchy validation, annotation, and exports

Related MCP server: easyeda-mcp

Installation

pip install mcp-server-kicad

Or run directly with uvx:

uvx --from mcp-server-kicad mcp-server-kicad-schematic
uvx --from mcp-server-kicad mcp-server-kicad-pcb
uvx --from mcp-server-kicad mcp-server-kicad-symbol
uvx --from mcp-server-kicad mcp-server-kicad-footprint
uvx --from mcp-server-kicad mcp-server-kicad-project

Claude Code Plugin

For Claude Code users, install the plugin to get MCP server configuration and schematic design skills bundled together:

claude plugin marketplace add ProductOfAmerica/mcp-server-kicad
claude plugin install kicad

The plugin automatically configures all five MCP servers and includes skills that teach layout conventions for schematic design. See skills/schematic-design/SKILL.md for details.

Configuration

Add the servers to your Claude Desktop or Claude Code MCP config. Set cwd to your KiCad project directory so the servers can auto-detect project files.

{
  "mcpServers": {
    "kicad-schematic": {
      "command": "uvx",
      "args": ["--from", "mcp-server-kicad", "mcp-server-kicad-schematic"],
      "cwd": "/path/to/your/kicad/project"
    },
    "kicad-pcb": {
      "command": "uvx",
      "args": ["--from", "mcp-server-kicad", "mcp-server-kicad-pcb"],
      "cwd": "/path/to/your/kicad/project"
    },
    "kicad-symbol": {
      "command": "uvx",
      "args": ["--from", "mcp-server-kicad", "mcp-server-kicad-symbol"],
      "cwd": "/path/to/your/kicad/project"
    },
    "kicad-footprint": {
      "command": "uvx",
      "args": ["--from", "mcp-server-kicad", "mcp-server-kicad-footprint"],
      "cwd": "/path/to/your/kicad/project"
    },
    "kicad-project": {
      "command": "uvx",
      "args": ["--from", "mcp-server-kicad", "mcp-server-kicad-project"],
      "cwd": "/path/to/your/kicad/project"
    }
  }
}

Project Path Resolution

The servers resolve file paths in this order:

  1. Auto-detect: Scans the current working directory for a .kicad_pro file and derives schematic, PCB, symbol library, and footprint library paths from it.

  2. Environment variables: KICAD_SCH_PATH, KICAD_PCB_PATH, KICAD_SYM_LIB, KICAD_FP_LIB, and KICAD_OUTPUT_DIR override auto-detected values.

  3. Tool parameters: Every tool accepts an explicit path parameter that takes highest priority.

Environment Variables

Variable

Description

KICAD_SCH_PATH

Path to .kicad_sch schematic file

KICAD_PCB_PATH

Path to .kicad_pcb PCB file

KICAD_SYM_LIB

Path to .kicad_sym symbol library file

KICAD_FP_LIB

Path to .pretty footprint library directory

KICAD_OUTPUT_DIR

Output directory for exports and reports

Available Tools

Schematic Tools (40 tools)

Read Tools

Tool

Description

get_schematic_summary

Get item counts for a schematic sheet

list_schematic_components

List all components (symbols) on a schematic sheet

list_schematic_labels

List all net labels on a schematic sheet

list_schematic_wires

List all wires on a schematic sheet

list_schematic_global_labels

List all global labels on a schematic sheet

list_schematic_hierarchical_labels

List all hierarchical labels on a schematic sheet

list_schematic_sheets

List all hierarchical sheet blocks on a schematic sheet

list_schematic_junctions

List all junctions on a schematic sheet

list_schematic_no_connects

List all no-connect flags on a schematic sheet

list_schematic_bus_entries

List all bus entries on a schematic sheet

get_symbol_pins

Get pin info for a symbol in the schematic's lib_symbols

get_pin_positions

Get absolute pin positions for a placed component (accounts for rotation/mirror)

get_net_connections

Get all connections for a named net (multi-hop BFS wire tracing)

list_unconnected_pins

List unconnected pins from ERC data

Write Tools

Tool

Description

place_component

Place a component in the schematic

remove_component

Remove a component by reference designator

add_wires

Add one or more wires between points (auto-creates junctions on T-connections)

add_label

Add a net label at a position

add_junctions

Add one or more junction dots

add_lib_symbol

Load a symbol definition from a .kicad_sym library into the schematic

move_component

Move a placed component to a new position

set_component_property

Set any property (Value, Reference, Footprint, etc.) on a placed component

set_page_size

Set the schematic page size

add_global_label

Add a global net label visible across all sheets

add_hierarchical_label

Add a hierarchical label for sheet-to-sheet connections

remove_hierarchical_label

Remove a hierarchical label by name or UUID

modify_hierarchical_label

Modify text, shape, or position of a hierarchical label

add_power_symbol

Place a power symbol (VCC, GND, +3V3, etc.) with auto PWR_FLAG

add_text

Add a text annotation to the schematic

wire_pins_to_net

Wire one or more pins to a named net

auto_place_decoupling_cap

Automatically place a decoupling capacitor near an IC

connect_pins

Wire two component pins together

no_connect_pin

Place a no-connect flag on an unused pin

remove_label

Remove a net label

remove_wire

Remove a wire segment

remove_junction

Remove a junction dot

ERC Analysis

Tool

Description

run_erc

Run Electrical Rules Check (ERC) on a schematic (supports project_path for hierarchy)

Schematic Export Tools

Tool

Description

export_schematic

Export schematic to PDF, SVG, or DXF format

export_netlist

Export schematic netlist

export_bom

Export Bill of Materials (BOM) as CSV

PCB Tools (29 tools)

Read Tools

Tool

Description

list_pcb_footprints

List all footprints on the PCB

list_pcb_traces

List all traces on the PCB

list_pcb_nets

List all nets on the PCB

list_pcb_zones

List all zones on the PCB

list_pcb_layers

List all layers on the PCB

list_pcb_graphic_items

List all graphic items on the PCB

get_board_info

Get board summary: footprint count, trace count, net count, thickness

get_footprint_pads

Get pad info for a placed footprint on the PCB

Write Tools

Tool

Description

place_footprint

Place a footprint on the PCB

move_footprint

Move a footprint to a new position

remove_footprint

Remove a footprint by reference designator

add_trace

Add a trace segment between two points

add_via

Add a via at a position

add_pcb_text

Add text to the PCB (silkscreen, fab layer, etc.)

add_pcb_line

Add a graphic line to the PCB (edge cuts, silkscreen, etc.)

add_copper_zone

Create an unfilled copper zone

fill_zones

Fill all copper zones on the board

set_trace_width

Change the width of existing traces

remove_traces

Remove trace segments matching filters

add_thermal_vias

Add a grid of thermal vias under a footprint pad

set_net_class

Create or update a net class with design rules

remove_dangling_tracks

Detect and remove trace segments with unconnected endpoints

DRC Analysis

Tool

Description

run_drc

Run Design Rules Check (DRC) on a PCB

PCB Export Tools

Tool

Description

export_pcb

Export PCB layers to PDF, SVG, or DXF

export_gerbers

Export Gerber files (all layers or specific layer list)

export_3d

Export PCB 3D model (STEP/STL/GLB) or render 3D view to PNG

export_positions

Export component position file (pick and place)

export_ipc2581

Export PCB in IPC-2581 format for manufacturing data exchange

autoroute_pcb

Autoroute PCB traces using the Freerouting autorouter

Symbol Tools (5 tools)

Tool

Description

list_lib_symbols

List all symbols in a .kicad_sym library file

get_symbol_info

Get detailed pin and property info for a symbol in a library

add_symbol

Add a new symbol to a .kicad_sym library

export_symbol_svg

Export symbol library to SVG images

upgrade_symbol_lib

Upgrade a symbol library to current KiCad format

Footprint Tools (4 tools)

Tool

Description

list_lib_footprints

List all footprints in a .pretty library directory

get_footprint_info

Get pad and outline details for a footprint .kicad_mod file

export_footprint_svg

Export footprint to SVG

upgrade_footprint_lib

Upgrade a footprint library to current KiCad format

Project Tools (24 tools)

Scaffolding

Tool

Description

create_project

Create a KiCad 9 project (.kicad_pro + .kicad_prl + .kicad_sch)

create_schematic

Create a blank schematic file

create_symbol_library

Create a blank symbol library file

create_sym_lib_table

Create a sym-lib-table file

Sheet Management

Tool

Description

add_hierarchical_sheet

Add a hierarchical sheet with matching labels in the child

remove_hierarchical_sheet

Remove a hierarchical sheet block from a parent

modify_hierarchical_sheet

Modify sheet name, file, width, or height

add_sheet_pin

Add a pin to an existing hierarchical sheet block

remove_sheet_pin

Remove a pin from a hierarchical sheet block

move_hierarchical_sheet

Move a sheet block to a new position (including pins)

duplicate_sheet

Duplicate a sheet, copying the child file with new UUIDs

reorder_sheet_pages

Reorder sheets by specifying desired UUID order

Hierarchy Inspection

Tool

Description

is_root_schematic

Check if a schematic is the root or a sub-sheet

list_hierarchy

List the full sheet hierarchy tree from root

get_sheet_info

Get sheet details with pin/label matching status

validate_hierarchy

Check for orphaned labels/pins, direction mismatches, duplicate refs

Cross-Sheet Analysis

Tool

Description

trace_hierarchical_net

Trace a net across the hierarchy through pins and labels

list_cross_sheet_nets

List all nets crossing sheet boundaries

get_symbol_instances

List symbol instances from root schematic

Annotation

Tool

Description

annotate_schematic

Auto-assign reference designators respecting hierarchy

Export & Utilities

Tool

Description

export_hierarchical_netlist

Export netlist with hierarchy info (requires kicad-cli)

flatten_hierarchy

Flatten a hierarchical schematic into a single sheet

run_jobset

Run a KiCad jobset file

get_version

Get KiCad version information

System Requirements

  • Python 3.10+

  • KiCad 9.x -- required for CLI-based tools (ERC, DRC, exports). The kicad-cli binary must be on PATH.

  • The schematic and PCB read/write tools use kiutils for file parsing and do not require a KiCad installation.

Debugging

Use the MCP Inspector to test and debug the servers interactively:

npx @modelcontextprotocol/inspector mcp-server-kicad

Contributing

See CONTRIBUTING.md for development setup and guidelines.

License

MIT

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
50Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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

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