kicad-mcp-server MCP Server

🚀 Meet Konnect — the next generation Konnect is this project rebuilt from scratch in Rust as a native KiCAD 10 plugin: a single binary with no runtime dependencies, built on KiCAD's official IPC…

Local serverstdioMIT

What is the kicad-mcp-server MCP Server?

kicad-mcp-server is an MCP project maintained in the mixelpixx/kicad-mcp-server repository. The maintainer describes its purpose as “🚀 Meet Konnect — the next generation Konnect is this project rebuilt from scratch in Rust as a native KiCAD 10 plugin: a single binary…”. Read the project documentation for the complete scope.

Local setup

The project provides a local client configuration using node. Follow the repository’s build and installation steps before copying it, and replace example paths with the paths on your own computer.

Configuration values

The example declares PYTHONPATH, LOG_LEVEL. Secret-looking values have been replaced with placeholders. Required and optional labels are shown only when the documentation states them.

Source

Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
list_tool_categoriesBrowse all available categories
get_category_toolsView tools in a specific category
search_toolsFind tools by keyword
create_projectInitialize new KiCAD projects
open_projectLoad existing project files
close_projectSave (optionally) and drop in-memory state
get_project_infoRetrieve project metadata
snapshot_projectSave named checkpoint snapshot
set_board_sizeConfigure PCB dimensions
add_board_outlineCreate board edge (rectangle, circle, polygon, rounded rectangle)
add_layerAdd custom layers to stack
set_active_layerSwitch working layer
get_layer_listList all board layers
get_board_infoRetrieve board properties
get_board_2d_viewGenerate board preview image
get_board_extentsGet board bounding box
add_mounting_holePlace mounting holes
add_board_textAdd text annotations
add_zoneAdd copper zone/pour with clearance settings
import_svg_logoImport SVG file as PCB silkscreen polygons
place_componentPlace single component with footprint
move_componentReposition existing component
rotate_componentRotate component by angle
delete_componentRemove component from board
edit_componentModify component properties
find_componentSearch by reference or value
get_component_propertiesQuery component details
add_component_annotationAdd annotation/comment
group_componentsGroup multiple components
replace_componentReplace with different footprint
get_component_padsGet all pad information
get_component_listList all placed components
get_pad_positionGet precise pad position
place_component_arrayCreate component grids/patterns
align_componentsAlign multiple components
duplicate_componentCopy existing component
batch_move_componentsMove many components in one transactional call
add_netCreate electrical net
route_traceRoute copper traces between XY points
route_pad_to_padRoute between pads with auto-via insertion
add_viaPlace vias for layer transitions
delete_traceRemove traces (by UUID, position, or net)
query_tracesQuery/filter traces
get_nets_listList all nets with statistics
modify_traceChange trace width, layer, or net
create_netclassDefine net class with rules
add_copper_pourCreate copper zones/pours
route_differential_pairRoute differential signals
refill_zonesRefill all copper zones
copy_routing_patternReplicate routing between component groups
set_net_colorSet or clear a net's display color override
route_arc_traceRoute a curved trace
add_gnd_stitching_viasStitch a ground plane with vias
query_zonesInspect copper zones
add_schematic_componentPlace symbols from any KiCad library
delete_schematic_componentRemove component
edit_schematic_componentEdit footprint, value, reference, label positions, and arbitrary custom properties (MPN, Manufacturer, DigiKey_PN, LCSC, Voltage, Tolerance, Dielectric, …)…
set_schematic_component_propertyAdd or update a single custom property (BOM/sourcing field) on a component
remove_schematic_component_propertyDelete a single custom property from a component
get_schematic_componentInspect every field on a component (built-in + custom) including label positions
list_schematic_componentsList all components
move_schematic_componentReposition component
rotate_schematic_componentRotate component
annotate_schematicAuto-assign reference designators
add_schematic_wireCreate wire between points
delete_schematic_wireRemove wire segment
add_no_connectMark a pin as deliberately unconnected
add_schematic_net_labelAdd net labels (VCC, GND, signals)
delete_schematic_net_labelRemove net label
connect_to_netConnect pin to named net
connect_passthroughWire all matching pins between connectors (FFC/ribbon)
get_schematic_pin_locationsGet pin locations for component
get_net_connectionsTrace net connectivity
create_schematicCreate new schematic file
get_schematic_viewRasterized schematic preview
run_ercElectrical rule check
generate_netlistGenerate netlist from schematic
sync_schematic_to_boardImport nets/pads to PCB (F8 equivalent)
backannotate_footprintsCopy footprint choices from the board back to the schematic
create_board_from_schematicCreate a board populated from the schematic
validate_schematicCheck a .kicad_sch file
validate_symbol_libraryCheck a .kicad_sym file
run_drcExecute design rule check
get_drc_violationsGet violation list by severity
export_drillDrill files
export_3d3D models (STEP, STL, VRML, OBJ)
export_netlistNetlist (KiCad, Spice, Cadstar, OrcadPCB2)
export_vrmlVRML 3D model
set_symbol_pin_typeBulk-set pin electrical types, with a dry run first
find_duplicate_symbolsFind the same part stored twice under different names
repair_flat_symbolsFix vendor symbols that KiCad tolerates but tools cannot parse
list_library_tableRead every registered library and check its URI resolves
remove_library_table_entryUnregister a library
set_library_table_uriRepoint a library that moved
edit_footprint_padModify pad properties
add_symbol_propertyAdd or update a field on a library symbol
delete_symbolRemove symbol from library
enrich_datasheetsAuto-populate datasheet URLs using LCSC part numbers
get_datasheet_urlGet LCSC datasheet URL for a component
download_jlcpcb_databaseDownload 2.5M+ parts catalog (one-time setup)
search_jlcpcb_partsSearch with parametric filters
get_jlcpcb_partDetailed part info with pricing
get_jlcpcb_database_statsDatabase statistics
suggest_jlcpcb_alternativesFind cheaper or in-stock alternatives
autorouteRun Freerouting autorouter (DSN export, route, SES import)
check_freeroutingVerify Java and Freerouting availability
check_kicad_uiCheck if KiCAD is running
launch_kicad_uiLaunch KiCAD application
get_backend_stateReport which backend (IPC or SWIG) is in use
search_parts_registrySearch the registry by name, keyword or manufacturer
get_registry_partInspect one part in detail
download_registry_partDownload its footprint, symbol or 3D model
import_eagle_projectConvert an Eagle project
import_pcbLoad an existing .kicad_pcb into the session

How to install the kicad-mcp-server MCP Server

{
  "mcpServers": {
    "kicad": {
      "command": "node",
      "args": [
        "/path/to/KiCAD-MCP-Server/dist/index.js"
      ],
      "env": {
        "PYTHONPATH": "/path/to/kicad/python",
        "LOG_LEVEL": "info"
      }
    }
  }
}

From the project documentation. Replace placeholders and example paths before connecting.

Configuration

VariableDescriptionRequired
PYTHONPATHDeclared in the maintainer’s client configuration.Check documentation
LOG_LEVELDeclared in the maintainer’s client configuration.Check documentation