mixelpixx/kicad-pcb
| "route traces", "PCB", "place footprints", "copper pour", "board outline", "differential pair", "board setup", "track width", "via", "zone", "design rules", "stackup", "silkscreen".
npx skills add https://github.com/mixelpixx/Konnect --skill kicad-pcb
This skill guides Claude to perform PCB layout using Konnect MCP tools.
ALL modifications go through MCP tools — never edit .kicad_pcb files directly.
PCB layout operations require KiCAD to be running with the board file open. The IPC
connection communicates with the running KiCAD instance in real-time.
If connection fails:
Before any PCB work, load the required toolsets:
load_toolset('pcb_board') # board outline, layers, setup, stackup
load_toolset('pcb_components') # place, move, rotate, align footprints
load_toolset('pcb_routing') # traces, vias, differential pairs
Zones (pcb_board: add_zone; pcb_routing: add_copper_pour), component/net queries (pcb_components: find_component, get_component_list; pcb_board: get_board_info), and bulk placement (pcb_components: place_component_array, align_components, duplicate_component) are already covered by the toolsets loaded above.
Load additional toolsets as needed:
load_toolset('config') # design rule storage: add_design_rule, list_design_rules
load_toolset('verification') # run_drc, set_design_rules, get_design_rules, check_clearance
Always call get_active_toolsets() first to see what is already loaded.
Follow this sequence for a clean PCB workflow:
set_board_size or draw Edge.Cuts geometrysave_projectDo NOT add copper pours before routing is complete — they interfere with interactive routing.
| Tool | Use Case |
|---------------------------|---------------------------------------------|
| place_component | Position a single footprint at x,y |
| move_component | Relocate an existing footprint |
| rotate_component | Rotate footprint (0/90/180/270) |
| align_components | Align multiple components (top/bottom/left/right/center) |
| place_component_array | Grid placement for repeated elements |
| Tool | Use Case |
|---------------------------|---------------------------------------------|
| route_pad_to_pad | Direct connection, auto L-bend routing |
| route_trace | Manual segment-by-segment routing |
| route_differential_pair | Matched-length USB/LVDS/Ethernet pairs |
| add_via | Layer transition |
| create_netclass | Define width/clearance rules for net groups |
The primary routing tool. Automatically creates an L-shaped trace between two pads.
route_pad_to_pad(from_reference, from_pad, to_reference, to_pad, width, layer)
For manual control over trace path. Specify waypoints.
route_trace(net_name, points, width, layer)
For high-speed differential signals (USB, HDMI, Ethernet, LVDS).
route_differential_pair(net_positive, net_negative, width, spacing)
Define routing rules for groups of nets:
create_netclass(name, track_width, clearance, via_drill, via_diameter)
Common netclass configurations:
Zone tools live in the pcb_board toolset.
Creates a copper pour area (polygon fill).
add_zone(net_name, layer, outline_points, priority)
Must call refill_zones after any change that affects copper pour:
Zones do not auto-update — stale fills cause DRC errors.
| Layer | Name | Purpose |
|----------|----------|--------------------------------------|
| F.Cu | Front Copper | Top copper traces and pads |
| B.Cu | Back Copper | Bottom copper traces and pads |
| F.SilkS | Front Silk | Top silkscreen (text, outlines)|
| B.SilkS | Back Silk | Bottom silkscreen |
| F.Mask | Front Mask | Top solder mask openings |
| B.Mask | Back Mask | Bottom solder mask openings |
| Edge.Cuts| Board Outline | Physical board boundary |
| F.Fab | Front Fab | Top fabrication drawing |
| B.Fab | Back Fab | Bottom fabrication drawing |
| F.CrtYd | Front Courtyard| Top component clearance area |
| B.CrtYd | Back Courtyard | Bottom component clearance area|
| In1.Cu | Inner 1 | Internal copper layer 1 |
| In2.Cu | Inner 2 | Internal copper layer 2 |
After completing layout:
run_drc()
Common DRC errors and fixes:
refill_zonesrun_drc() and resolve all errorssave_project after major operationsget_active_toolsets() and load what you need10. Copper pour last — add zones only after routing is substantially complete
Take mixelpixx/kicad-pcb from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.