KiCad Tools
PYPI · MCP-SERVER-KICAD · SCANNED AUG 18
Byte-preserving KiCad automation: 100+ tools for schematics, PCB layout, ERC, DRC, exports
Available components
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
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
claude mcp add productofamerica-mcp-server-kicad -- uvx mcp-server-kicad
codex mcp add productofamerica-mcp-server-kicad -- uvx mcp-server-kicad
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"productofamerica-mcp-server-kicad": {
"type": "local",
"command": [
"uvx",
"mcp-server-kicad"
],
"enabled": true
}
}
} openclaw mcp add productofamerica-mcp-server-kicad --command uvx --arg mcp-server-kicad
mcp_servers:
productofamerica-mcp-server-kicad:
command: "uvx"
args: ["mcp-server-kicad"] {
"mcpServers": {
"productofamerica-mcp-server-kicad": {
"command": "uvx",
"args": [
"mcp-server-kicad"
]
}
}
} 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.
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 |
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.
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.
| Name | Type | Req | Description |
|---|---|---|---|
| clearance | number | – | – |
| corners | array | yes | – |
| layer | string | yes | – |
| min_thickness | number | – | – |
| net_name | string | yes | – |
| pcb_path | string | – | – |
| priority | integer | – | – |
| thermal_bridge_width | number | – | – |
| thermal_gap | number | – | – |
| thermal_relief | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| clearance_mm | number | yes | – |
| corners | integer | yes | – |
| layer | string | yes | – |
| net | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| rotation | integer | – | – |
| schematic_path | string | – | – |
| shape | string | – | – |
| text | string | yes | – |
| x | number | yes | – |
| y | number | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| rotation | integer | – | – |
| schematic_path | string | – | – |
| shape | string | yes | – |
| text | string | yes | – |
| x | number | yes | – |
| y | number | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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)
| Name | Type | Req | Description |
|---|---|---|---|
| parent_schematic_path | string | yes | – |
| pins | array | yes | – |
| project_path | string | – | – |
| sheet_file | string | yes | – |
| sheet_name | string | yes | – |
| x | number | – | – |
| y | number | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| points | array | yes | – |
| schematic_path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| corners | array | yes | – |
| layers | – | – | – |
| no_copper_pour | boolean | – | – |
| no_footprints | boolean | – | – |
| no_pads | boolean | – | – |
| no_tracks | boolean | – | – |
| no_vias | boolean | – | – |
| pcb_path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| corners | integer | yes | – |
| layers | array | yes | – |
| restrictions | object | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| rotation | integer | – | – |
| schematic_path | string | – | – |
| text | string | yes | – |
| x | number | yes | – |
| y | number | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| schematic_path | string | – | – |
| symbol_lib_path | string | yes | – |
| symbol_name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| layer | string | – | – |
| pcb_path | string | – | – |
| width | number | – | – |
| x1 | number | yes | – |
| x2 | number | yes | – |
| y1 | number | yes | – |
| y2 | number | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| layer | string | – | – |
| pcb_path | string | – | – |
| rotation | number | – | – |
| text | string | yes | – |
| x | number | yes | – |
| y | number | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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)
| Name | Type | Req | Description |
|---|---|---|---|
| lib_id | string | yes | – |
| project_path | string | – | – |
| reference | string | yes | – |
| rotation | integer | – | – |
| schematic_path | string | – | – |
| symbol_lib_path | string | – | – |
| x | number | yes | – |
| y | number | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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)
| Name | Type | Req | Description |
|---|---|---|---|
| connection_type | string | yes | – |
| pin_name | string | yes | – |
| schematic_path | string | – | – |
| sheet_uuid | string | yes | – |
| side | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| datasheet | string | – | – |
| footprint | string | – | – |
| in_bom | boolean | – | – |
| is_power | boolean | – | – |
| name | string | yes | – |
| on_board | boolean | – | – |
| pin_names_offset | number | – | – |
| pins | array | yes | – |
| rectangles | – | – | – |
| reference_prefix | string | – | – |
| symbol_lib_path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| rotation | integer | – | – |
| schematic_path | string | – | – |
| text | string | yes | – |
| x | number | yes | – |
| y | number | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| cols | integer | – | – |
| net_name | – | – | – |
| pad_number | string | – | – |
| pcb_path | string | – | – |
| reference | string | yes | – |
| rows | integer | – | – |
| spacing | number | – | – |
| via_drill | number | – | – |
| via_size | number | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| center | object | yes | – |
| net | string | yes | – |
| pad | string | yes | – |
| reference | string | yes | – |
| vias_added | integer | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| layer | string | – | – |
| net | integer | – | – |
| pcb_path | string | – | – |
| width | number | – | – |
| x1 | number | yes | – |
| x2 | number | yes | – |
| y1 | number | yes | – |
| y2 | number | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| drill | number | – | – |
| layers | – | – | – |
| net | integer | – | – |
| pcb_path | string | – | – |
| size | number | – | – |
| x | number | yes | – |
| y | number | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| schematic_path | string | – | – |
| wires | array | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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)
| Name | Type | Req | Description |
|---|---|---|---|
| project_path | string | – | – |
| schematic_path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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)
| Name | Type | Req | Description |
|---|---|---|---|
| ground_net | string | yes | – |
| lib_id | string | yes | – |
| power_net | string | yes | – |
| project_path | string | – | – |
| reference | string | yes | – |
| rotation | integer | – | – |
| schematic_path | string | – | – |
| symbol_lib_path | string | – | – |
| value | string | yes | – |
| x | number | yes | – |
| y | number | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| max_passes | integer | – | – |
| num_threads | integer | – | – |
| output_dir | string | – | – |
| pcb_path | string | – | – |
| timeout | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| drc_unconnected | – | – | – |
| drc_violations | – | – | – |
| keepouts_promoted | integer | – | – |
| routed_path | string | yes | – |
| text_fields_fixed | integer | yes | – |
| traces_added | integer | yes | – |
| vias_added | integer | yes | – |
| warnings | array | – | – |
No examples provided.
check_placement Check one proposed footprint position ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| pcb_path | string | – | – |
| reference | string | yes | – |
| x | number | yes | – |
| y | number | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| board_edge_checked | boolean | yes | – |
| keepout_violations | array | yes | – |
| outside_board_edge | boolean | yes | – |
| status | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| pin1 | string | yes | – |
| pin2 | string | yes | – |
| ref1 | string | yes | – |
| ref2 | string | yes | – |
| schematic_path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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)
| Name | Type | Req | Description |
|---|---|---|---|
| directory | string | yes | – |
| name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| schematic_path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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
| Name | Type | Req | Description |
|---|---|---|---|
| directory | string | yes | – |
| entries | array | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| symbol_lib_path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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)
| Name | Type | Req | Description |
|---|---|---|---|
| new_file_name | string | – | – |
| new_sheet_name | string | yes | – |
| project_path | string | – | – |
| schematic_path | string | – | – |
| sheet_uuid | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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)
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | – |
| height | integer | – | – |
| output_dir | string | – | – |
| pcb_path | string | – | – |
| quality | string | – | – |
| side | string | – | – |
| width | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | yes | – |
| height | – | – | – |
| path | string | yes | – |
| side | – | – | – |
| size_bytes | integer | yes | – |
| 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.
| Name | Type | Req | Description |
|---|---|---|---|
| output_dir | string | – | – |
| schematic_path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| component_count | integer | yes | – |
| format | string | yes | – |
| note | – | – | – |
| path | string | yes | – |
| size_bytes | integer | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| footprint_path | string | yes | – |
| output_dir | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | yes | – |
| files | array | yes | – |
| format | string | yes | – |
| path | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| include_drill | boolean | – | – |
| layers | – | – | – |
| output_dir | string | – | – |
| pcb_path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | yes | – |
| drill_count | integer | – | – |
| drill_files | array | – | – |
| files | array | yes | – |
| format | string | yes | – |
| layer | – | – | – |
| note | – | – | – |
| path | string | yes | – |
| size_bytes | – | – | – |
No examples provided.
export_hierarchical_netlist Export a netlist with sheet paths for the whole hierarchy ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| output_dir | string | – | – |
| schematic_path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| component_count | integer | yes | – |
| components | array | yes | – |
| net_count | integer | yes | – |
| nets | array | yes | – |
| output_path | string | yes | – |
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"
| Name | Type | Req | Description |
|---|---|---|---|
| compress | boolean | – | – |
| output | string | – | – |
| pcb_path | string | – | – |
| precision | integer | – | – |
| units | string | – | – |
| version | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | yes | – |
| note | – | – | – |
| path | string | yes | – |
| size_bytes | integer | yes | – |
No examples provided.
export_netlist Export a netlist for one schematic ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | – |
| output_dir | string | – | – |
| schematic_path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | yes | – |
| note | – | – | – |
| path | string | yes | – |
| size_bytes | integer | yes | – |
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)
| Name | Type | Req | Description |
|---|---|---|---|
| exclude_refdes | boolean | – | – |
| exclude_value | boolean | – | – |
| format | string | – | – |
| include_border_title | boolean | – | – |
| layers | – | – | – |
| output_dir | string | – | – |
| output_units | string | – | – |
| pcb_path | string | – | – |
| use_contours | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | yes | – |
| layers | array | yes | – |
| note | – | – | – |
| path | string | yes | – |
| size_bytes | integer | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| output_dir | string | – | – |
| pcb_path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| component_count | integer | yes | – |
| format | string | yes | – |
| note | – | – | – |
| path | string | yes | – |
| size_bytes | integer | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | – |
| output_dir | string | – | – |
| schematic_path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | yes | – |
| files | array | yes | – |
| format | string | yes | – |
| path | string | yes | – |
| 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.
| Name | Type | Req | Description |
|---|---|---|---|
| output_dir | string | – | – |
| symbol_lib_path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | yes | – |
| files | array | yes | – |
| format | string | yes | – |
| path | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| pcb_path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | – |
| warnings | array | – | – |
| zones_filled | integer | yes | – |
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)
| Name | Type | Req | Description |
|---|---|---|---|
| output_path | string | – | – |
| schematic_path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| pcb_path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_footprint_bounds Outline bounds of a footprint placed on the board ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| pcb_path | string | – | – |
| reference | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| courtyard | – | yes | – |
| layer | string | yes | – |
| position | object | yes | – |
| reference | string | yes | – |
| rotation | number | yes | – |
No examples provided.
get_footprint_info Footprint details from a .kicad_mod file ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| footprint_path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_footprint_pads Pads of a footprint placed on the board ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| pcb_path | string | – | – |
| reference | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| label_text | string | yes | – |
| schematic_path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| connections | array | yes | – |
| label_count | integer | yes | – |
| net | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| reference | string | yes | – |
| schematic_path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| schematic_path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| components | integer | yes | – |
| global_labels | integer | yes | – |
| hierarchical_labels | integer | yes | – |
| junctions | integer | yes | – |
| labels | integer | yes | – |
| no_connects | integer | yes | – |
| page_height_mm | number | yes | – |
| page_size | string | yes | – |
| page_width_mm | number | yes | – |
| sheets | integer | yes | – |
| wires | integer | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| schematic_path | string | – | – |
| sheet_uuid | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| component_count | – | – | – |
| file_name | string | yes | – |
| height | number | yes | – |
| hierarchical_label_count | – | – | – |
| label_count | – | – | – |
| pins | array | yes | – |
| sheet_name | string | yes | – |
| uuid | string | yes | – |
| width | number | yes | – |
| x | number | yes | – |
| y | number | yes | – |
No examples provided.