Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

KiCad Tools

PYPI · MCP-SERVER-KICAD · SCANNED AUG 18

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

Available components

+18 this week 69 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • 2 of 30 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 2 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability69
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 14242 tokens (~130/item across 109 items; 109 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
  • Stability check failed: the tool surface changed between 0.13.0 and 0.20.1: 0 tool removals, 7 breaking changes, 0 additions. See how to fix → Fail
Tool Coverage71
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

pypi · mcp-server-kicad

# add to Claude Code
claude mcp add productofamerica-mcp-server-kicad -- uvx mcp-server-kicad
# add to Codex CLI
codex mcp add productofamerica-mcp-server-kicad -- uvx mcp-server-kicad
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "productofamerica-mcp-server-kicad": {
      "type": "local",
      "command": [
        "uvx",
        "mcp-server-kicad"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add productofamerica-mcp-server-kicad --command uvx --arg mcp-server-kicad
# ~/.hermes/config.yaml
mcp_servers:
  productofamerica-mcp-server-kicad:
    command: "uvx"
    args: ["mcp-server-kicad"]
// mcp.json
{
  "mcpServers": {
    "productofamerica-mcp-server-kicad": {
      "command": "uvx",
      "args": [
        "mcp-server-kicad"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 17 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20.

  • 16 Aug 26 +16
    • Malware scan: unverified → pass security
  • 15 Aug 26 0
    • Malware scan: unverified → pass security
    • Package version: 0.19.2 → 0.20.1 functional
    • Package version: 0.19.2 → 0.20.0 functional
    • Package version: 0.19.2 → 0.19.4 functional
    • Package version: 0.19.2 → 0.19.3 functional
  • 14 Aug 26 −15
    • Malware scan: pass → unverified security
    • Stability: fail → unverified security
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • First check of Schema quality: unverified functional
    • Package version: 0.17.3 → 0.19.2 functional
    • Package version: 0.17.3 → 0.19.1 functional
    • Package version: 0.17.3 → 0.18.0 functional
  • 13 Aug 26 +1
    • Stability: fail → unverified security
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • First check of Schema quality: unverified functional
    • Package version: 0.17.1 → 0.17.3 functional
    • Package version: 0.17.1 → 0.17.2 functional
  • 12 Aug 26 +15
    • Stability: 0.03 → fail security
    • Malware scan: unverified → pass security
    • Package version: 0.13.4 → 0.17.1 functional
    • Package version: 0.13.4 → 0.17.0 functional
    • Package version: 0.13.4 → 0.16.0 functional
    • Package version: 0.13.4 → 0.15.0 functional
    • Package version: 0.13.4 → 0.14.0 functional
  • 11 Aug 26 0
    • Schema quality: 109 → 121 functional
    • Stability: unverified → 0.03 functional
    • Package version: 0.13.0 → 0.13.4 functional
    • Package version: 0.13.0 → 0.13.3 functional
    • Package version: 0.13.0 → 0.13.1 functional
  • 10 Aug 26 51

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 18 Aug 2026 · Analysed pypi/mcp-server-kicad@0.20.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi
Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build
Dependencies 30 packages
Packages resolved 30
Stale 1
No linked repository 1
Tree resolution Complete
MCP tools · 109 exposed · ~13,808 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
add_copper_zone ~276

Create an unfilled copper zone: a ground plane, power plane, or any filled copper pour. Call fill_zones afterward to compute the fills. Args: net_name: Name of the net to assign to this zone (e.g. "GND") layer: Copper layer (e.g. "F.Cu", "B.Cu") corners: List of {x, y} dicts defining the zone polygon (min 3) clearance: Zone clearance in mm min_thickness: Minimum copper thickness in mm thermal_relief: Use thermal relief pads (True) or solid connection (False) thermal_gap: Thermal relief gap in mm thermal_bridge_width: Thermal relief bridge width in mm priority: Zone fill priority (higher fills first) pcb_path: Path to .kicad_pcb file. Optional; omit to use the configured default.

NameTypeReqDescription
clearancenumber
cornersarrayyes
layerstringyes
min_thicknessnumber
net_namestringyes
pcb_pathstring
priorityinteger
thermal_bridge_widthnumber
thermal_gapnumber
thermal_reliefboolean
NameTypeReqDescription
clearance_mmnumberyes
cornersintegeryes
layerstringyes
netstringyes

No examples provided.

add_global_label ~159

Add a global net label (visible across all sheets). Args: text: Net name (e.g. "VCC", "SDA") x: X position y: Y position rotation: Degrees (0=right, 90=up, 180=left, 270=down) shape: Label shape: input, output, bidirectional, tri_state, passive schematic_path: Path to .kicad_sch file. Optional; omit to use the configured default.

NameTypeReqDescription
rotationinteger
schematic_pathstring
shapestring
textstringyes
xnumberyes
ynumberyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_hierarchical_label ~151

Add a hierarchical label to a sub-sheet schematic. Args: text: Label name (must match parent sheet pin name) shape: Direction — input, output, bidirectional, tri_state, passive x: X position in mm y: Y position in mm rotation: Degrees (0, 90, 180, 270) schematic_path: Path to .kicad_sch file. Optional; omit to use the configured default.

NameTypeReqDescription
rotationinteger
schematic_pathstring
shapestringyes
textstringyes
xnumberyes
ynumberyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_hierarchical_sheet ~245

Add a hierarchical sheet to a parent schematic with matching labels in the child. Creates the sheet block in the parent and corresponding hierarchical labels in the child schematic. The child schematic must already exist (create it with create_schematic first). Args: parent_schematic_path: Path to parent .kicad_sch sheet_name: Display name for the sheet sheet_file: Path to child .kicad_sch (must exist) pins: List of dicts with 'name' (str) and 'direction' (str) keys. Direction: input, output, bidirectional, tri_state, passive. x: X position of sheet block (default 25.4) y: Y position of sheet block (default 25.4) project_path: Path to .kicad_pro file (for sub-sheet instance tracking)

NameTypeReqDescription
parent_schematic_pathstringyes
pinsarrayyes
project_pathstring
sheet_filestringyes
sheet_namestringyes
xnumber
ynumber
NameTypeReqDescription
resultstringyes

No examples provided.

add_junctions ~79

Add multiple junctions. Each point dict has keys: x, y. Args: points: List of junction positions [{x, y}, ...] schematic_path: Path to .kicad_sch file. Optional; omit to use the configured default.

NameTypeReqDescription
pointsarrayyes
schematic_pathstring
NameTypeReqDescription
resultstringyes

No examples provided.

add_keepout_zone ~221

Create a keep-out zone that restricts placement of specified items. Args: corners: List of {x, y} dicts defining the zone polygon (min 3) layers: Layers to apply keep-out to (default: ["F.Cu", "B.Cu"]) no_tracks: Restrict tracks in this zone no_vias: Restrict vias in this zone no_pads: Restrict pads in this zone no_copper_pour: Restrict copper pour in this zone no_footprints: Restrict footprints in this zone pcb_path: Path to .kicad_pcb file. Optional; omit to use the configured default.

NameTypeReqDescription
cornersarrayyes
layers
no_copper_pourboolean
no_footprintsboolean
no_padsboolean
no_tracksboolean
no_viasboolean
pcb_pathstring
NameTypeReqDescription
cornersintegeryes
layersarrayyes
restrictionsobjectyes

No examples provided.

add_label ~132

Add a net label at a position. Args: text: Net name (e.g. "VIN_PROT", "5V_REL") x: X position y: Y position rotation: Degrees (0=right, 90=up, 180=left, 270=down) schematic_path: Path to .kicad_sch file. Optional; omit to use the configured default.

NameTypeReqDescription
rotationinteger
schematic_pathstring
textstringyes
xnumberyes
ynumberyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_lib_symbol ~113

Load a symbol definition from a .kicad_sym library into the schematic. Args: symbol_lib_path: Path to .kicad_sym file. Optional; omit to use the configured default. symbol_name: Symbol name (e.g. "LM7805") schematic_path: Path to .kicad_sch file. Optional; omit to use the configured default.

NameTypeReqDescription
schematic_pathstring
symbol_lib_pathstringyes
symbol_namestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_pcb_line ~161

Add a graphic line to the PCB (edge cuts, silkscreen, etc.). Args: x1: Start X y1: Start Y x2: End X y2: End Y layer: Layer (e.g. "Edge.Cuts", "F.SilkS") width: Line width in mm pcb_path: Path to .kicad_pcb file. Optional; omit to use the configured default.

NameTypeReqDescription
layerstring
pcb_pathstring
widthnumber
x1numberyes
x2numberyes
y1numberyes
y2numberyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_pcb_text ~143

Add text to the PCB (silkscreen, fab layer, etc.). Args: text: Text content x: X position y: Y position layer: Layer (e.g. "F.SilkS", "B.SilkS", "F.Fab") rotation: Rotation in degrees pcb_path: Path to .kicad_pcb file. Optional; omit to use the configured default.

NameTypeReqDescription
layerstring
pcb_pathstring
rotationnumber
textstringyes
xnumberyes
ynumberyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_power_symbol ~259

Place a power symbol (VCC, GND, +3V3, etc.). Uses place_component internally. Power symbols are regular symbols from the 'power' library with isPower=True. Automatically places a PWR_FLAG at the same position so the net satisfies ERC (power pin driven). Args: lib_id: Library ID (e.g. "power:VCC", "power:GND") reference: Reference (e.g. "#PWR01") x: X position y: Y position rotation: Rotation in degrees symbol_lib_path: Path to power symbol .kicad_sym if not in schematic. Optional; omit to use the configured default. schematic_path: Path to .kicad_sch file. Optional; omit to use the configured default. project_path: Path to .kicad_pro file (for sub-sheet instance tracking)

NameTypeReqDescription
lib_idstringyes
project_pathstring
referencestringyes
rotationinteger
schematic_pathstring
symbol_lib_pathstring
xnumberyes
ynumberyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_sheet_pin ~140

Add a pin to an existing hierarchical sheet block. Args: sheet_uuid: UUID of the sheet pin_name: Pin name (should match a hierarchical label in the child schematic) connection_type: input, output, bidirectional, tri_state, passive schematic_path: Path to parent .kicad_sch. Optional; omit to use the configured default. side: Which sheet edge to place pin on (left or right)

NameTypeReqDescription
connection_typestringyes
pin_namestringyes
schematic_pathstring
sheet_uuidstringyes
sidestring
NameTypeReqDescription
resultstringyes

No examples provided.

add_symbol ~524

Add a new symbol definition to a .kicad_sym library. Creates a complete symbol with pins and body graphics. If the library file does not exist it will be created. Args: name: Symbol name (e.g. "MP4572GQB-P", "TLV75733PDBVR") pins: Pin definitions — list of dicts, each with keys: number (str): pin number, e.g. "1" name (str): pin name, e.g. "VIN" ("~" for unnamed) type (str): electrical type — "input", "output", "bidirectional", "passive", "power_in", "power_out", "tri_state", "open_collector", "open_emitter", "unconnected", "free" x (float): X position in mm (default 0) y (float): Y position in mm (default 0) rotation (float): angle 0/90/180/270 (default 0) length (float): pin length in mm (default 2.54) reference_prefix: Reference prefix e.g. "U", "R", "C" (default "U") is_power: True for power symbols (default False) pin_names_offset: Pin name label offset in mm (default 0.508) in_bom: Include in BOM (default True) on_board: Place on board (default True) footprint: Default footprint e.g. "Package_SO:SOIC-8" (default "") datasheet: Datasheet URL (default "~") rectangles: Optional body rectangle(s) — list of dicts with keys: x1, y1, x2, y2 (float): corner coordinates in mm fill (str): "none", "background", or "outline" (default "background") If omitted, a rectangle is auto-computed from pin positions. symbol_lib_path: Path to .kicad_sym file. Optional; omit to use the configured default.

NameTypeReqDescription
datasheetstring
footprintstring
in_bomboolean
is_powerboolean
namestringyes
on_boardboolean
pin_names_offsetnumber
pinsarrayyes
rectangles
reference_prefixstring
symbol_lib_pathstring
NameTypeReqDescription
resultstringyes

No examples provided.

add_text ~102

Add a text annotation to the schematic. Args: text: Text content x: X position y: Y position rotation: Rotation in degrees schematic_path: Path to .kicad_sch file. Optional; omit to use the configured default.

NameTypeReqDescription
rotationinteger
schematic_pathstring
textstringyes
xnumberyes
ynumberyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_thermal_vias ~228

Add a grid of thermal vias under a footprint pad. Args: reference: Footprint reference (e.g. "U1", "R1") pad_number: Pad number to center vias on. If empty, auto-selects largest SMD pad. rows: Number of rows in the via grid cols: Number of columns in the via grid spacing: Spacing between vias in mm via_size: Via annular ring diameter in mm via_drill: Via drill diameter in mm net_name: Net to assign to vias. If None, auto-detect from pad. pcb_path: Path to .kicad_pcb file. Optional; omit to use the configured default.

NameTypeReqDescription
colsinteger
net_name
pad_numberstring
pcb_pathstring
referencestringyes
rowsinteger
spacingnumber
via_drillnumber
via_sizenumber
NameTypeReqDescription
centerobjectyes
netstringyes
padstringyes
referencestringyes
vias_addedintegeryes

No examples provided.

add_trace ~163

Add a trace segment between two points. Args: x1: Start X y1: Start Y x2: End X y2: End Y width: Trace width in mm layer: Copper layer (e.g. "F.Cu", "B.Cu") net: Net number pcb_path: Path to .kicad_pcb file. Optional; omit to use the configured default.

NameTypeReqDescription
layerstring
netinteger
pcb_pathstring
widthnumber
x1numberyes
x2numberyes
y1numberyes
y2numberyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_via ~142

Add a via at a position. Args: x: X position y: Y position size: Via pad size in mm drill: Drill diameter in mm net: Net number layers: Via layers (default: ["F.Cu", "B.Cu"]) pcb_path: Path to .kicad_pcb file. Optional; omit to use the configured default.

NameTypeReqDescription
drillnumber
layers
netinteger
pcb_pathstring
sizenumber
xnumberyes
ynumberyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_wires ~95

Add multiple wires at once. Each wire dict has keys: x1, y1, x2, y2. Args: wires: List of wire defs [{x1, y1, x2, y2}, ...] schematic_path: Path to .kicad_sch file. Optional; omit to use the configured default.

NameTypeReqDescription
schematic_pathstring
wiresarrayyes
NameTypeReqDescription
resultstringyes

No examples provided.

annotate_schematic ~122

Auto-assign reference designators to unannotated components. Finds components with '?' in their reference (e.g. R?, U?) and assigns sequential numbers, respecting existing references in the schematic and across the hierarchy when project_path is provided. Args: schematic_path: Path to .kicad_sch file. Optional; omit to use the configured default. project_path: Path to .kicad_pro file (scans hierarchy for existing refs)

NameTypeReqDescription
project_pathstring
schematic_pathstring
NameTypeReqDescription
resultstringyes

No examples provided.

auto_place_decoupling_cap ~318

Place a decoupling capacitor and wire it to power/ground nets. Places the cap, wires pin 1 (top) to power_net and pin 2 (bottom) to ground_net via stub wires + labels. Args: lib_id: Cap symbol (e.g. "Device:C") reference: Reference (e.g. "C5") value: Cap value (e.g. "100nF") x: X position y: Y position power_net: Label for pin 1 (e.g. "VCC", "+3V3") ground_net: Label for pin 2 (e.g. "GND", "PGND") rotation: Rotation in degrees (default 0) symbol_lib_path: Path to .kicad_sym if using custom lib. Optional; omit to use the configured default. schematic_path: Path to .kicad_sch file. Optional; omit to use the configured default. project_path: Path to .kicad_pro file (for sub-sheet instance tracking)

NameTypeReqDescription
ground_netstringyes
lib_idstringyes
power_netstringyes
project_pathstring
referencestringyes
rotationinteger
schematic_pathstring
symbol_lib_pathstring
valuestringyes
xnumberyes
ynumberyes
NameTypeReqDescription
resultstringyes

No examples provided.

autoroute_pcb ~280

Autoroute PCB traces using the Freerouting autorouter. Exports the board to Specctra DSN format, runs Freerouting for automated trace routing, and imports the results into a new PCB file. The original board is never modified. Requires Java 17+ and KiCad's pcbnew Python bindings, whose major version has to match the board's format era. On first run, the Freerouting JAR is auto-downloaded (~20MB). Args: pcb_path: Path to .kicad_pcb file. Optional; omit to use the configured default. max_passes: Maximum autorouter optimization passes num_threads: Thread count for routing. Defaults to 1 because freerouting prints "Multi-threaded route optimization is broken and it is known to generate clearance violations" on every run. Raise it only if you are willing to DRC the result carefully. timeout: Max seconds to wait for routing (default: 600) output_dir: Directory for output files (default: same as PCB). Optional; omit to use the configured default.

NameTypeReqDescription
max_passesinteger
num_threadsinteger
output_dirstring
pcb_pathstring
timeoutinteger
NameTypeReqDescription
drc_unconnected
drc_violations
keepouts_promotedinteger
routed_pathstringyes
text_fields_fixedintegeryes
traces_addedintegeryes
vias_addedintegeryes
warningsarray

No examples provided.

check_placement ~168

Check if placing/moving a footprint to (x, y) would violate constraints. Both checks are on the footprint's origin point, not its courtyard, so a footprint whose body overlaps a keep-out while its origin does not still reports ok. That is also why there is no rotation parameter: rotating about the origin cannot move the origin, so an angle could not change either answer. Args: reference: Footprint reference designator x: Proposed X position y: Proposed Y position pcb_path: Path to .kicad_pcb file. Optional; omit to use the configured default.

NameTypeReqDescription
pcb_pathstring
referencestringyes
xnumberyes
ynumberyes
NameTypeReqDescription
board_edge_checkedbooleanyes
keepout_violationsarrayyes
outside_board_edgebooleanyes
statusstringyes

No examples provided.

connect_pins ~153

Connect two component pins with Manhattan (L-shaped) wire routing. Combines get_pin_positions + coordinate math + add_wires into one call. Args: ref1: First component reference (e.g. "U1") pin1: First pin name or number ref2: Second component reference (e.g. "C3") pin2: Second pin name or number schematic_path: Path to .kicad_sch file. Optional; omit to use the configured default.

NameTypeReqDescription
pin1stringyes
pin2stringyes
ref1stringyes
ref2stringyes
schematic_pathstring
NameTypeReqDescription
resultstringyes

No examples provided.

create_project ~75

Create a KiCad 9 project (.kicad_pro + .kicad_prl + .kicad_sch). Args: directory: Directory to create the project in (created if missing) name: Project name (used for filenames)

NameTypeReqDescription
directorystringyes
namestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

create_schematic ~56

Create a valid empty KiCad 9 schematic file. Args: schematic_path: Path for the new .kicad_sch file. Optional; omit to use the configured default.

NameTypeReqDescription
schematic_pathstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

create_sym_lib_table ~87

Create a sym-lib-table file in the given directory. Each entry dict needs 'name' and 'uri' keys. Overwrites existing sym-lib-table if present. Args: directory: Directory to write sym-lib-table in entries: List of dicts with 'name' and 'uri' keys

NameTypeReqDescription
directorystringyes
entriesarrayyes
NameTypeReqDescription
resultstringyes

No examples provided.

create_symbol_library ~57

Create a valid empty KiCad 9 symbol library. Args: symbol_lib_path: Path for the new .kicad_sym file. Optional; omit to use the configured default.

NameTypeReqDescription
symbol_lib_pathstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

duplicate_sheet ~144

Duplicate a hierarchical sheet, copying the child file with new UUIDs. Args: sheet_uuid: UUID of the sheet to duplicate new_sheet_name: Display name for the new sheet schematic_path: Path to parent .kicad_sch. Optional; omit to use the configured default. project_path: Path to .kicad_pro (for hierarchy metadata) new_file_name: Name for the copied file (auto-generated if empty)

NameTypeReqDescription
new_file_namestring
new_sheet_namestringyes
project_pathstring
schematic_pathstring
sheet_uuidstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

export_3d ~215

Export PCB 3D model or render 3D view to image. `render` fills width, height and side; the mesh formats leave them unset. Args: format: Output format - "step", "stl", "glb", or "render" (PNG image) pcb_path: Path to .kicad_pcb file. Optional; omit to use the configured default. output_dir: Output directory. Optional; omit to use the configured default. width: Image width in pixels (render only) height: Image height in pixels (render only) side: View side: top, bottom, left, right, front, back (render only) quality: Render quality: basic, high (render only)

NameTypeReqDescription
formatstring
heightinteger
output_dirstring
pcb_pathstring
qualitystring
sidestring
widthinteger
NameTypeReqDescription
formatstringyes
height
pathstringyes
side
size_bytesintegeryes
width

No examples provided.

export_bom ~77

Export Bill of Materials (BOM) as CSV. Args: schematic_path: Path to .kicad_sch file. Optional; omit to use the configured default. output_dir: Output directory. Optional; omit to use the configured default.

NameTypeReqDescription
output_dirstring
schematic_pathstring
NameTypeReqDescription
component_countintegeryes
formatstringyes
note
pathstringyes
size_bytesintegeryes

No examples provided.

export_footprint_svg ~81

Export footprint to SVG. Args: footprint_path: Path to a .kicad_mod file, or a .pretty library directory. Optional; omit to use the configured default. output_dir: Output directory. Optional; omit to use the configured default.

NameTypeReqDescription
footprint_pathstringyes
output_dirstring
NameTypeReqDescription
countintegeryes
filesarrayyes
formatstringyes
pathstringyes

No examples provided.

export_gerbers ~186

Export Gerber files for manufacturing. When layers contains exactly one layer, exports a single Gerber file: path names it, and size_bytes and layer are filled. Otherwise exports all layers (or the specified subset) plus optional drill files, and path names the output directory. files and count are filled either way. Args: pcb_path: Path to .kicad_pcb file. Optional; omit to use the configured default. output_dir: Output directory for gerber files. Optional; omit to use the configured default. include_drill: Also export drill files (default: True, ignored in single-layer mode) layers: Optional list of layer names. Single layer = single file output.

NameTypeReqDescription
include_drillboolean
layers
output_dirstring
pcb_pathstring
NameTypeReqDescription
countintegeryes
drill_countinteger
drill_filesarray
filesarrayyes
formatstringyes
layer
note
pathstringyes
size_bytes

No examples provided.

export_hierarchical_netlist ~117

Export a netlist from the root schematic, including hierarchy info. Runs kicad-cli to generate a netlist and returns parsed component/net data with sheet path information for each component. Args: schematic_path: Path to root .kicad_sch file. Optional; omit to use the configured default. output_dir: Directory for netlist output (defaults to schematic directory). Optional; omit to use the configured default.

NameTypeReqDescription
output_dirstring
schematic_pathstring
NameTypeReqDescription
component_countintegeryes
componentsarrayyes
net_countintegeryes
netsarrayyes
output_pathstringyes

No examples provided.

export_ipc2581 ~144

Export PCB in IPC-2581 format for manufacturing data exchange. Args: pcb_path: Path to .kicad_pcb file. Optional; omit to use the configured default. output: Output file path precision: Numeric precision (default: 3) compress: Compress output file version: IPC-2581 version (default: "C") units: Output units - "mm" or "in"

NameTypeReqDescription
compressboolean
outputstring
pcb_pathstring
precisioninteger
unitsstring
versionstring
NameTypeReqDescription
formatstringyes
note
pathstringyes
size_bytesintegeryes

No examples provided.

export_netlist ~95

Export a schematic netlist. Args: schematic_path: Path to .kicad_sch file. Optional; omit to use the configured default. output_dir: Output directory. Optional; omit to use the configured default. format: Netlist format. spice and spicemodel produce simulator input.

NameTypeReqDescription
formatstring
output_dirstring
schematic_pathstring
NameTypeReqDescription
formatstringyes
note
pathstringyes
size_bytesintegeryes

No examples provided.

export_pcb ~246

Export PCB to PDF, SVG, or DXF format. Args: format: Output format - "pdf", "svg", or "dxf" pcb_path: Path to .kicad_pcb file. Optional; omit to use the configured default. output_dir: Directory for output files. Optional; omit to use the configured default. layers: Optional list of layer names to include (required for DXF) output_units: DXF output units - "in" or "mm" (DXF only) exclude_refdes: Exclude reference designators (DXF only) exclude_value: Exclude component values (DXF only) use_contours: Use board outline contours (DXF only) include_border_title: Include border and title block (DXF only)

NameTypeReqDescription
exclude_refdesboolean
exclude_valueboolean
formatstring
include_border_titleboolean
layers
output_dirstring
output_unitsstring
pcb_pathstring
use_contoursboolean
NameTypeReqDescription
formatstringyes
layersarrayyes
note
pathstringyes
size_bytesintegeryes

No examples provided.

export_positions ~74

Export component position file (pick and place). Args: pcb_path: Path to .kicad_pcb file. Optional; omit to use the configured default. output_dir: Output directory. Optional; omit to use the configured default.

NameTypeReqDescription
output_dirstring
pcb_pathstring
NameTypeReqDescription
component_countintegeryes
formatstringyes
note
pathstringyes
size_bytesintegeryes

No examples provided.

export_schematic ~144

Export schematic to PDF, SVG, or DXF format. pdf and dxf produce one file, so path names it and size_bytes is filled. svg produces one file per sheet, so path names the directory. files and count are filled either way. Args: format: Output format - "pdf", "svg", or "dxf" schematic_path: Path to .kicad_sch file. Optional; omit to use the configured default. output_dir: Directory for output files. Optional; omit to use the configured default.

NameTypeReqDescription
formatstring
output_dirstring
schematic_pathstring
NameTypeReqDescription
countintegeryes
filesarrayyes
formatstringyes
pathstringyes
size_bytes

No examples provided.

export_symbol_svg ~74

Export symbol library to SVG images. Args: symbol_lib_path: Path to .kicad_sym file. Optional; omit to use the configured default. output_dir: Output directory. Optional; omit to use the configured default.

NameTypeReqDescription
output_dirstring
symbol_lib_pathstring
NameTypeReqDescription
countintegeryes
filesarrayyes
formatstringyes
pathstringyes

No examples provided.

fill_zones ~148

Fill all copper zones on the board using pcbnew's zone filler. pcbnew computes the fill; this server writes it. The board is handed to pcbnew read-only and the computed polygons come back as data, so the file that reaches the disk is the original with its zones' fills replaced and every other byte untouched. Nothing else about it changes: not its format version, not its layer names, not the constructs pcbnew does not model. Requires KiCad's pcbnew Python bindings to be installed. Args: pcb_path: Path to .kicad_pcb file. Optional; omit to use the configured default.

NameTypeReqDescription
pcb_pathstring
NameTypeReqDescription
statusstringyes
warningsarray
zones_filledintegeryes

No examples provided.

flatten_hierarchy ~104

Flatten a hierarchical schematic into a single sheet. Merges all child sheet content into one schematic with offset positions. Creates a new file — does NOT modify the original hierarchy. Args: schematic_path: Path to root .kicad_sch file. Optional; omit to use the configured default. output_path: Path for flattened output (defaults to *_flat.kicad_sch)

NameTypeReqDescription
output_pathstring
schematic_pathstring
NameTypeReqDescription
resultstringyes

No examples provided.

get_board_info ~57

Get board summary: footprint count, trace count, net count, thickness. Args: pcb_path: Path to .kicad_pcb file. Optional; omit to use the configured default.

NameTypeReqDescription
pcb_pathstring
NameTypeReqDescription
resultstringyes

No examples provided.

get_footprint_bounds ~71

Get the board-coordinate bounding box of a placed footprint. Args: reference: Footprint reference designator pcb_path: Path to .kicad_pcb file. Optional; omit to use the configured default.

NameTypeReqDescription
pcb_pathstring
referencestringyes
NameTypeReqDescription
courtyardyes
layerstringyes
positionobjectyes
referencestringyes
rotationnumberyes

No examples provided.

get_footprint_info ~58

Get pad and outline details for a footprint .kicad_mod file. Args: footprint_path: Path to .kicad_mod file. Optional; omit to use the configured default.

NameTypeReqDescription
footprint_pathstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

get_footprint_pads ~81

Get pad info for a placed footprint on the PCB. Args: reference: Footprint reference (e.g. "R1", "U1") pcb_path: Path to .kicad_pcb file. Optional; omit to use the configured default.

NameTypeReqDescription
pcb_pathstring
referencestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

get_net_connections ~102

Find all component pins connected to a net label. Scans labels matching the text, traces wires from label positions, and identifies component pins at wire endpoints. Args: label_text: Net name to search for (e.g. "VCC", "GND") schematic_path: Path to .kicad_sch file. Optional; omit to use the configured default.

NameTypeReqDescription
label_textstringyes
schematic_pathstring
NameTypeReqDescription
connectionsarrayyes
label_countintegeryes
netstringyes

No examples provided.

get_pin_positions ~81

Get absolute pin positions for a placed component (accounts for rotation/mirror). Args: reference: Component reference (e.g. "U1", "R1") schematic_path: Path to .kicad_sch file. Optional; omit to use the configured default.

NameTypeReqDescription
referencestringyes
schematic_pathstring
NameTypeReqDescription
resultstringyes

No examples provided.

get_schematic_summary ~51

Get schematic page info and item counts. Args: schematic_path: Path to .kicad_sch file. Optional; omit to use the configured default.

NameTypeReqDescription
schematic_pathstring
NameTypeReqDescription
componentsintegeryes
global_labelsintegeryes
hierarchical_labelsintegeryes
junctionsintegeryes
labelsintegeryes
no_connectsintegeryes
page_height_mmnumberyes
page_sizestringyes
page_width_mmnumberyes
sheetsintegeryes
wiresintegeryes

No examples provided.

get_sheet_info ~72

Get detailed info about a hierarchical sheet including pin/label matching. Args: sheet_uuid: UUID of the sheet schematic_path: Path to parent .kicad_sch. Optional; omit to use the configured default.

NameTypeReqDescription
schematic_pathstring
sheet_uuidstringyes
NameTypeReqDescription
component_count
file_namestringyes
heightnumberyes
hierarchical_label_count
label_count
pinsarrayyes
sheet_namestringyes
uuidstringyes
widthnumberyes
xnumberyes
ynumberyes

No examples provided.