Skip to main content

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 41 Schematic read/write, ERC analysis, hierarchical labels, and exports (PDF, SVG, DXF, netlist, BOM)
mcp-server-kicad-pcb 30 PCB read/write, netlist import, 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 (41 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 (idempotent)
remove_no_connect Remove no-connect flag(s) from a pin
remove_label Remove a net label or global 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 (30 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
update_pcb_from_schematic Import/sync the schematic netlist onto the board (footprints + pad nets)
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 or 10.x -- required for CLI-based tools (ERC, DRC, exports). CI runs the full suite against KiCad 9 on Linux and KiCad 10 on macOS. The read/write tools produce KiCad 9 file formats, which both versions open; reading files that KiCad 10 itself has saved is not yet supported (#9). kicad-cli is found on PATH, or inside /Applications/KiCad/KiCad.app on macOS, where the installer does not add it to PATH. Set KICAD_CLI_PATH to the executable if it lives anywhere else. These tools are always registered; without kicad-cli they fail with a message naming KICAD_CLI_PATH rather than disappearing from the tool list.
  • The schematic and PCB read/write tools use kiutils for file parsing and do not require a KiCad installation.

Finding your KiCad install

Everything else in the KiCad tree is located relative to kicad-cli, the same way KiCad itself does it, so a stock install on any platform needs no configuration. The stock symbol libraries and the bundled Python that provides pcbnew are both found automatically.

Override any of it if your install is unusual:

Variable Overrides
KICAD_CLI_PATH the kicad-cli executable, and with it everything derived from its location
KICAD_SYMBOL_DIR the directory holding the stock .kicad_sym libraries
KICAD_PYTHON the interpreter used for pcbnew (fill_zones, autoroute_pcb)

Windows and OneDrive: if your Documents folder is redirected to OneDrive, kicad-cli can die at startup with an access violation (exit 3221225477) because it cannot create its KiCad subfolder there. Every invocation fails, including kicad-cli --version. Point KiCad's own KICAD_DOCUMENTS_HOME at a non-synced directory to fix it.

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

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.10.0.tar.gz (235.5 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.10.0-py3-none-any.whl (81.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcp_server_kicad-0.10.0.tar.gz
  • Upload date:
  • Size: 235.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mcp_server_kicad-0.10.0.tar.gz
Algorithm Hash digest
SHA256 371e915b938411c45c18802bc7b2451c81a410773bc1d751bc68db485f97272a
MD5 7ab848979819e3cc9d70d22992f581f2
BLAKE2b-256 59d7a3dc103b740610ea26eedf8733ccbc424780cf5cac40315d7552f75957e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_server_kicad-0.10.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.10.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_server_kicad-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5486a3949487d5bdf5ded40d5d7ee6abe29e4f1090b315f6425f2d122a431a76
MD5 67218ee4c086fb59f2a328142011d6d5
BLAKE2b-256 7056cb6d379ce10be94f9c4d6563dffb4794e9cc67d675327871476202b17736

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_server_kicad-0.10.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