@fingerskier/pi-skidl

extension

SKiDL circuit-design MCP plugin for Pi with a self-bootstrapping Python server

by · v2026.5.12 · published 2mo ago

$ pi install npm:@fingerskier/pi-skidl
downloads/mo
90
stars
last push
open issues

Signals

license: MITtestspi manifest: missinginstall size: —deps: 0peer deps: 0

Download trend

No downloads in the last 12 weeks.

README

skidl-claude-plugin

MCP server for designing electronic schematics and PCB layouts using SKiDL — a Python library for programmatic circuit design.

Features

  • Circuit Management — Create, switch between, and manage multiple circuit designs
  • Component Library — Search and add parts from your local KiCad libraries
  • Wiring — Create nets, buses, and connect component pins
  • Schematic Generation — Export SVG schematics and KiCad .kicad_sch files
  • Netlist Export — Generate KiCad-compatible netlists for PCB layout in PCBNEW
  • Validation — Run electrical rules checks (ERC), verify connections and footprints
  • BOM Generation — Bill of materials in JSON or CSV format
  • Code Export — Export circuits as standalone SKiDL Python scripts
  • 16 Design Templates — Prompt templates for common circuits (voltage dividers, amplifiers, filters, MCU designs, motor drivers, USB interfaces, and more)

Prerequisites

  • Python 3.10+
  • KiCad installed (for component libraries)

Installation

pip install -e .

Usage

As an MCP server (stdio)

skidl-mcp

With Claude Code

Add to your Claude Code MCP configuration (~/.claude/claude_desktop_config.json):

{
  "mcpServers": {
    "skidl": {
      "command": "skidl-mcp"
    }
  }
}

Then ask Claude to design circuits:

"Design a voltage divider that converts 12V to 3.3V" "Create an ATmega328P circuit with UART and I2C headers" "Build an LED driver for 4 blue LEDs on a 5V supply"

MCP Tools

Circuit Management

ToolDescription
create_circuitCreate a new circuit and set it as active
list_circuitsList all circuits in the session
switch_circuitSwitch the active circuit
delete_circuitDelete a circuit
get_circuit_infoGet full details of a circuit

Parts

ToolDescription
add_partAdd a component from a KiCad library
search_partsSearch KiCad libraries for components
list_partsList all parts in a circuit
remove_partRemove a part by reference designator
get_part_infoGet pin details and connections for a part

Nets & Wiring

ToolDescription
create_netCreate a named net
connectConnect a pin to a net
connect_pinsConnect two pins directly
list_netsList all nets and connections
create_busCreate a multi-wire bus
add_power_netsAdd standard power nets (VCC, GND, etc.)

Generation & Export

ToolDescription
generate_netlistKiCad-compatible netlist for PCBNEW
generate_svgSVG schematic diagram
generate_bomBill of materials (JSON or CSV)
generate_kicad_schematicKiCad .kicad_sch file
export_pythonStandalone SKiDL Python code

Validation

ToolDescription
run_ercElectrical rules check
check_connectionsFind unconnected pins
validate_footprintsVerify all parts have footprints

Design Templates

Use these prompts to guide circuit design:

CategoryTemplates
Analogdesign_voltage_divider, design_amplifier, design_filter, design_oscillator
Powerdesign_power_supply, design_led_circuit, design_battery_charger
Digitaldesign_microcontroller, design_logic_level_shifter, design_i2c_bus, design_spi_bus
Interfacedesign_sensor_interface, design_motor_driver, design_uart_interface, design_usb_interface
RFdesign_antenna_matching

Development

pip install -e ".[dev]"
pytest

License

MIT