MCP.Market

KiCad Tools MCP server

by ProductOfAmerica·io.github.ProductOfAmerica/mcp-server-kicad·v0.21.1·16 stars

Byte-preserving KiCad automation: 100+ tools for schematics, PCB layout, ERC, DRC, exports

A92/100grade A
What users say
No reviews yet
Be the first
Safety scan
A92/100

full report

Adoption
Growing

16 stars437 downloads/wk

Reviews

Write one

Nobody has reviewed KiCad Tools yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

KiCad Tools tools (100, 24 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • add_copper_zonewrite action

    Create an unfilled copper zone: a ground plane, power plane, or any filled copper pour. Call fill_zones afterward to compute the fills.

  • add_global_label

    Add a global net label (visible across all sheets).

  • add_hierarchical_label

    Add a hierarchical label to a sub-sheet schematic.

  • add_hierarchical_sheet

    Add a hierarchical sheet to a parent schematic with matching labels in the child.

  • add_junctions

    Add multiple junctions, as KiCad's junction tool places them. Each point dict has keys: x, y.

  • add_keepout_zonewrite action

    Create a keep-out zone that restricts placement of specified items.

  • add_label

    Add a net label at a position.

  • add_lib_symbol

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

  • add_pcb_line

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

  • add_pcb_text

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

  • add_power_symbol

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

  • add_sheet_pin

    Add a pin to an existing hierarchical sheet block.

  • add_text

    Add a text annotation to the schematic.

  • add_thermal_vias

    Add a grid of thermal vias under a footprint pad.

  • add_trace

    Add a trace segment between two points.

  • add_via

    Add a via at a position.

  • add_wires

    Add multiple wires at once, as KiCad's wire tool adds them. Each wire dict has keys: x1, y1, x2, y2.

  • annotate_schematic

    Auto-assign reference designators to unannotated components.

  • auto_place_decoupling_cap

    Place a decoupling capacitor and wire it to power/ground nets.

  • autoroute_pcb

    Autoroute PCB traces using the Freerouting autorouter.

  • check_placement

    Check if placing/moving a footprint to (x, y) would violate constraints.

  • connect_pins

    Connect two component pins with Manhattan (L-shaped) wire routing.

  • create_projectwrite action

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

  • create_schematicwrite action

    Create a valid empty KiCad 9 schematic file.

  • create_sym_lib_tablewrite action

    Create a sym-lib-table file in the given directory.

  • create_symbol_librarywrite action

    Create a valid empty KiCad 9 symbol library.

  • duplicate_sheet

    Duplicate a hierarchical sheet, copying the child file with new UUIDs.

  • export_3d

    Export PCB 3D model or render 3D view to image.

  • export_footprint_svg

    Export footprint to SVG.

  • export_gerbers

    Export Gerber files for manufacturing.

  • export_hierarchical_netlist

    Export a netlist from the root schematic, including hierarchy info.

  • export_ipc2581

    Export PCB in IPC-2581 format for manufacturing data exchange.

  • export_pcb

    Export PCB to PDF, SVG, or DXF format.

  • export_positions

    Export component position file (pick and place) as CSV, in millimetres (mm).

  • fill_zones

    Fill all copper zones on the board using pcbnew's zone filler.

  • flatten_hierarchy

    Flatten a hierarchical schematic into a single sheet whose netlist is the hierarchy's.

  • get_board_info

    Get board summary: footprint count, trace count, net count, thickness. The net count includes the unconnected net, as KiCad's own count does.

  • get_footprint_bounds

    Get the board-coordinate bounding box of a placed footprint.

  • get_footprint_info

    Get pad and outline details for a footprint .kicad_mod file.

  • get_footprint_pads

    Get pad info for a placed footprint on the PCB.

  • get_net_connections

    Find all component pins connected to a net label.

  • get_pin_positions

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

  • get_schematic_summary

    Get schematic page info and item counts.

  • get_sheet_info

    Get detailed info about a hierarchical sheet including pin/label matching.

  • get_symbol_instances

    List all symbol instances from a root schematic's symbolInstances table.

  • get_symbol_pins

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

  • get_version

    Get KiCad version information including build details and library versions.

  • is_root_schematic

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

  • list_cross_sheet_nets

    List all nets that cross sheet boundaries (hierarchical pins and global labels).

  • list_hierarchy

    List the full sheet hierarchy starting from a root schematic.

  • list_lib_footprints

    List all footprints in a .pretty library directory.

  • list_pcb_footprints

    List all footprints on the PCB.

  • list_pcb_graphic_items

    List all graphic items (lines, text, etc.) on the PCB.

  • list_pcb_layers

    List all layers defined in the PCB stackup: copper, silkscreen, soldermask, solder paste, courtyard, fabrication, and the board outline.

  • list_pcb_nets

    List all named nets on the PCB.

  • list_pcb_traces

    List all trace segments and vias on the PCB.

  • list_pcb_zones

    List all zones (copper and keepout) on the PCB.

  • list_schematic_bus_entries

    List all bus entries in the schematic.

  • list_schematic_components

    List all placed components in the schematic.

  • list_schematic_global_labels

    List all global labels in the schematic.

  • list_schematic_hierarchical_labels

    List all hierarchical labels in the schematic.

  • list_schematic_junctions

    List all junctions in the schematic.

  • list_schematic_labels

    List all net labels in the schematic.

  • list_schematic_no_connects

    List all no-connect flags in the schematic.

  • list_schematic_sheets

    List all hierarchical sheets in the schematic.

  • list_schematic_wires

    List all wire segments in the schematic.

  • list_unconnected_pins

    List unconnected pins by running ERC and filtering results.

  • modify_hierarchical_label

    Modify an existing hierarchical label.

  • modify_hierarchical_sheet

    Modify properties of an existing hierarchical sheet block.

  • move_component

    Move a placed component, turn it, or both.

  • move_footprint
  • move_hierarchical_sheet

    Move a hierarchical sheet block to a new position, including all pins.

  • no_connect_pin

    Place a no-connect flag on a component pin.

  • place_component

    Place a schematic symbol: resistor, capacitor, inductor, diode, LED, transistor, crystal, switch, connector, or an IC such as a microcontroller or regulator chip. Any lib_id in a library works.

  • place_footprint
  • remove_componentwrite action

    Remove a component by reference designator.

  • remove_dangling_trackswrite action

    Detect and remove trace segments with unconnected endpoints.

  • remove_footprintwrite action

    Remove a footprint by reference designator.

  • remove_hierarchical_labelwrite action

    Remove a hierarchical label by name or UUID.

  • remove_hierarchical_sheetwrite action

    Remove a hierarchical sheet block from a parent schematic.

  • remove_junctionwrite action

    Remove a junction at the given coordinates, as KiCad's delete removes one.

  • remove_labelwrite action

    Remove net label(s) or global label(s) by text, optionally filtered by position.

  • remove_no_connectwrite action

    Remove no-connect flag(s) from a component pin.

  • remove_sheet_pinwrite action

    Remove a pin from a hierarchical sheet block.

  • remove_textwrite action

    Remove text annotation(s) by content, optionally filtered by position.

  • remove_traceswrite action

    Remove trace segments matching the given filters. Does not remove vias. At least one filter (net_name, layer, or bounding box) is required.

  • remove_wirewrite action

    Remove a wire segment by its endpoint coordinates.

  • reorder_sheet_pageswrite action

    Put hierarchical sheets in the page order given: sheets listed come first, in that order, then the others in the order they have now.

  • run_drcwrite action

    Run Design Rules Check (DRC) on a PCB.

  • run_jobsetwrite action

    Run a KiCad jobset file: every output it defines.

  • set_component_property

    Set any property on a placed component, or rename it. Creates the property if it is missing.

  • set_net_classwrite action

    Create or update a net class with design rules and assign nets.

  • set_page_size

    Set the schematic page/sheet size.

  • set_trace_width

    Change the width of existing traces matching the given filters. At least one filter (net_name, layer, or bounding box) is required.

  • trace_hierarchical_net

    Trace a net across the hierarchy, following hierarchical pins and labels.

  • update_pcb_from_schematicwrite action
  • upgrade_footprint_lib

    Upgrade a footprint library to current KiCad format.

  • validate_board

    Validate all footprint placements against keep-out zones and board edge.

  • validate_hierarchy
  • wire_pins_to_netwrite action

    Put each listed pin on the net named label_text, or refuse and write nothing.

Public scan report

scanner v0.1.10 · 2026-11-03 · same rubric, same numbers if you re-run it

no findings
  • Code scan26 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 5 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 92/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How KiCad Tools compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
92/100
higher than 95% of 48,255 servers
Tools
100
the typical server has 7
Tools that change things
24%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
16
more than 90% of 28,688 servers
Downloads a week
437
more than 86% of 12,191 servers with a package

What its tools let an agent do: 53 read · 21 create · 12 change · 12 delete · 2 run or deploy

Release history: 3 versions in the registry since 2026-08-15, latest 2026-10-20, typically one every 61 days.

Install KiCad Tools in Claude Code, Cursor or VS Code

claude mcp add mcp-server-kicad -- uvx mcp-server-kicad
Add to Cursor

What the publisher says

From the KiCad Tools repository's README, as published. We do not edit it. Read it on GitHub

<!-- mcp-name: io.github.ProductOfAmerica/mcp-server-kicad -->

mcp-server-kicad

Let an AI assistant edit real KiCad projects without corrupting them.

109 MCP tools covering schematic capture, PCB layout, symbol and footprint libraries, ERC and DRC, and manufacturing exports. No screenshots, no copy-paste, no hand-edited s-expressions: the model calls tools, KiCad files change on disk.

Quick start • What you get • Configuration • Tool reference • Requirements • Contributing

What it looks like

"Add a 100 nF decoupling cap on U1's VCC pin, then check ERC."

  get_pin_positions            locate U1's VCC and GND pins
  auto_place_decoupling_cap    place C3, wire it, drop the junctions
  run_erc                      report what the change broke

"Now push the netlist to the board and route it."

  update_pcb_from_schematic    sync footprints and pad nets onto the PCB
  autoroute_pcb                route with Freerouting
  run_drc                      clearance, width, and unconnected checks

Every tool works on the real file. Writes go through a byte-preserving substrate, so bytes you did not ask to change reach the disk unchanged, and an edit that cannot be done correctly is refused with the file intact. That now covers every board and schematic this server writes. The two library upgrades are the only tools that let KiCad do the writing, and they say so on themselves.

Quick start

Claude Code

Install the plugin. It wires up the server and ships the design skills with it:

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

Claude Desktop

Download kicad-.mcpb from the [latest release][latest] and install it from Settings, then Extensions. Claude Desktop fetches Python and the package itself, so KiCad is the only thing you need installed first.

Fill in the schematic, board, and export paths it asks for. Unlike the Claude Code plugin, Desktop does not run from your project directory, so nothing is auto-detected. Leave the kicad-cli field blank unless KiCad lives somewhere unusual; stock installs are found on their own, on every platform. The design skills are Claude Code only.

[latest]: https://github.com/ProductOfAmerica/mcp-server-kicad/releases/latest

Everything else

pip install mcp-server-kicad

Then point your MCP client at the unified server and set cwd to a KiCad project directory so paths resolve themselves:

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

That single entry registers all 109 tools. Prefer to split them across five smaller servers? See Configuration.

What you get

Five tool servers

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

KiCad Tools: common questions

Is KiCad Tools MCP server safe?
Yes, by our scan: it is graded A (92/100). Read the KiCad Tools safety report
How do I install KiCad Tools?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does KiCad Tools need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is KiCad Tools maintained?
The last commit was 6 days ago (2026-10-29). The latest release is v0.21.1.
How does KiCad Tools compare with other MCP servers?
safety score 92/100 (higher than 95% of 48,255 servers); tools 100 (the typical server has 7); tools that change things 24% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.