Skip to main content

MCP servers for KiCad schematic, PCB, and export automation

Project description

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

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_server_kicad-0.9.0.tar.gz (287.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_server_kicad-0.9.0-py3-none-any.whl (73.6 kB view details)

Uploaded Python 3

File details

Details for the file mcp_server_kicad-0.9.0.tar.gz.

File metadata

  • Download URL: mcp_server_kicad-0.9.0.tar.gz
  • Upload date:
  • Size: 287.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcp_server_kicad-0.9.0.tar.gz
Algorithm Hash digest
SHA256 89c08b15cf13fe8ca63cfe8470ff0f0af16e473a0bbabedcdffb84a1a49cf9c0
MD5 6586ada95d286e75a463bda7c53fedd7
BLAKE2b-256 8284188573e1522ca511c39e2938dafb5ad2b42e2384e999e8f9b61a5f7860b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_server_kicad-0.9.0.tar.gz:

Publisher: release.yml on ProductOfAmerica/mcp-server-kicad

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcp_server_kicad-0.9.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_server_kicad-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 02bb3c9c0b875c9042be8862de5f6eb03ba12411ed07fdc43a9a11621eefd9b2
MD5 7d0414f63061ebc0de319821d1a36c5f
BLAKE2b-256 1177b9e284eacb6213819cecd944dff4092792a1dc9b066565b5ffb73707daa1

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_server_kicad-0.9.0-py3-none-any.whl:

Publisher: release.yml on ProductOfAmerica/mcp-server-kicad

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page