From kicad
Use when designing an electronic circuit from requirements, choosing topology or regulator type, selecting component values, planning protection circuits, or deciding what goes on a board before schematic capture begins. Also use when the user asks "what components do I need" or "how should I power this."
How this skill is triggered — by the user, by Claude, or both
Slash command
/kicad:circuit-designThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<CRITICAL-RULE>
EVERY KiCad operation has a corresponding MCP tool. Do NOT claim a tool does not exist without first listing all available tools. Key tools that MUST be used instead of file writes:
add_symbol — create custom symbol definitions in .kicad_sym filescreate_symbol_library — create new .kicad_sym library filescreate_schematic — create new .kicad_sch filescreate_project — create new .kicad_pro project files
If you find yourself thinking "there's no MCP tool for this," you are
wrong. Check the tool list again.
Design the circuit completely — every component, every value, every rating — before opening the schematic editor. This skill produces a component list and block diagram that feeds directly into the schematic-design skill.
When this skill activates, print exactly:
Using circuit-design to design the circuit before schematic capture.
Then, if the user has not already described what they want, ask exactly:
What circuit are we designing? I need:
- Function — what does it do?
- Input power — voltage range, AC/DC
- Output requirements — voltages, currents, signals
- Environment — indoor/outdoor, temperature, enclosure
- Specific parts — any components you already want to use?
Or if you have a BOM already, I can run validation-only mode.
Do not list what you found in the project. Do not suggest example circuits or subsystems. Wait for the user's answer before proceeding to the Process checklist.
If the user already described the circuit (in the same message that invoked this skill, or in prior conversation), skip the question and proceed directly to step 1 of the Process.
| Need | First choice | When to upgrade |
|---|---|---|
| Fixed step-down, <500mA | LDO (e.g., AMS1117, LM1117) | Dropout < 1V, low noise needed |
| Fixed step-down, 0.5–3A | Buck converter (e.g., LM2596, MP1584) | Efficiency matters, dropout > 1V |
| Step-down, >3A | Synchronous buck (e.g., TPS54360) | High current, tight regulation |
| Step-up | Boost converter (e.g., MT3608, TPS61040) | Vout > Vin required |
| Negative voltage | Inverting buck-boost or charge pump | Analog circuits needing -V |
| Isolation | Flyback with optocoupler | Safety, galvanic isolation |
| Relay/solenoid drive | N-ch MOSFET low-side switch | Inductive load, >50mA |
| Motor (brushed DC) | H-bridge driver IC | Bidirectional control needed |
| LED constant current | Linear CC driver or buck CC | String voltage determines choice |
| Signal level shift | BSS138 MOSFET level shifter | Bidirectional, I2C/SPI |
| ADC input | Voltage divider + buffer opamp | High-impedance source |
These are starting points. Always verify against the specific requirements — an LDO is wrong if the dropout is too high even if current is <500mA.
Every board needs protection. Select from these standard patterns:
Input protection (power entry):
Reverse polarity protection:
ESD protection (connectors):
Inductive load protection:
Voltage rating: Derate to 60–80% of rated voltage. A 16V cap on a 12V rail, not a 16V cap on a 15V rail.
Current rating: Derate to 70–80%. A 2A fuse for 1.2A continuous.
Capacitor values from datasheets: For regulators, the datasheet specifies input and output capacitor values and ESR requirements. Use those values, not arbitrary ones. If the datasheet says 22uF low-ESR on the output, use 22uF low-ESR.
Resistor values from datasheets: Feedback dividers, current-sense resistors, and timing resistors are calculated from datasheet formulas. Show the formula and calculation for each.
Preferred values: Use E12 or E24 series values (1.0, 1.2, 1.5, 1.8, 2.2, 2.7, 3.3, 3.9, 4.7, 5.6, 6.8, 8.2). Do not specify values like 2.35k — round to nearest preferred value (2.2k or 2.4k) and recalculate to verify the result is within tolerance.
Packages: Default to 0805 for resistors and capacitors unless space-constrained (then 0603). Use through-hole for prototyping if the user requests it.
Before finalizing the BOM, you MUST confirm each component has BOTH a symbol and a footprint in KiCad's libraries. This is blocking — do not proceed until every row is verified.
For each component:
list_lib_symbols on the expected library — confirm the
exact symbol name existslist_lib_footprints on the expected footprint library —
confirm the footprint existsadd_symbollib_id and footprint in the BOMCommon symbol libraries:
Regulator_Linear.kicad_sym — LDOs, linear regulatorsRegulator_Switching.kicad_sym — buck, boost, flyback controllersDevice.kicad_sym — R, C, L, D, LED, fuse, ferrite beadTransistor_FET.kicad_sym — MOSFETsTransistor_BJT.kicad_sym — BJTsConnector_Generic.kicad_sym — pin headers, screw terminalsRelay.kicad_sym — relaysDiode.kicad_sym — diodes, TVS, Zener, Schottkypower.kicad_sym — VCC, GND, +3V3, +5V, etc.If an exact part is not in the library:
add_symbol: For ICs and complex parts,
use the add_symbol MCP tool to create a custom symbol in a
project-local .kicad_sym library. NEVER write .kicad_sym files
with the Write or Edit tools — always use add_symbol.These are the kicad MCP tools you should be using during circuit design:
Library browsing (verify parts exist):
list_lib_symbols — list symbols in a .kicad_sym libraryget_symbol_info — get pin names, types, and properties for a symbolCustom symbol creation (when parts aren't in built-in libs):
create_symbol_library — create a new .kicad_sym library fileadd_symbol — define a custom symbol with pins, footprint, datasheetProject setup:
create_project — create a new KiCad project (.kicad_pro)create_schematic — create a new schematic sheetcreate_sym_lib_table — register symbol libraries with the projectFootprint verification:
list_lib_footprints — list footprints in a .pretty directoryget_footprint_info — check pad dimensions and pin mappingVisual verification (optional):
export_symbol_svg — export symbol library to SVG for visual reviewexport_footprint_svg — export footprint library to SVG for visual reviewLibrary maintenance:
upgrade_symbol_lib — upgrade symbol library to current KiCad formatupgrade_footprint_lib — upgrade footprint library to current formatspecs/bom.md)Write the validated BOM to specs/bom.md in the KiCad project
directory (the directory containing the .kicad_pro file).
# BOM: [Project Name]
## Constraints
- Input: [voltage range]
- Board size: [dimensions] (if known, else "TBD")
- Layers: [count] (default: 2)
- IPC class: [1/2/3] (default: 2)
- Manufacturer min trace: [width] (default: 0.15mm)
- Thermal: [ambient temp, enclosure, airflow] (if known)
- EMI/EMC: [requirements] (if any)
## Block Diagram
[stage names and interfaces between them]
## Components
| Ref | lib_id (verified) | Value | Rating | Package | Stage | Footprint (verified) | Notes |
|-----|-------------------|-------|--------|---------|-------|---------------------|-------|
| F1 | Device:Fuse | 2A | 32V | 1206 | Input protection | Fuse_1206 | Slow-blow |
| ...
The lib_id and Footprint columns contain identifiers that were
resolved against actual KiCad libraries via MCP tool calls, not
guessed from training data.
Every component must appear in this table before the next phase begins. This includes:
After writing specs/bom.md, dispatch the BOM reviewer subagent:
Agent(
prompt="<contents of agents/bom-reviewer.md>\n\nBOM path: <project_dir>/specs/bom.md",
subagent_type="general-purpose"
)
Fix any issues reported by the reviewer, update specs/bom.md, and
re-dispatch until the reviewer returns APPROVED.
User rejection handling: If the user rejects the BOM or requests changes, fix the specific issues and re-run the BOM reviewer on the updated artifact. Do not restart from scratch unless the user asks.
When the user provides their own component list or BOM, skip topology and component selection but still validate everything:
list_lib_symbols to resolve the exact lib_id and
list_lib_footprints to resolve the footprint.specs/bom.md in the standard artifact format.The user's BOM is accepted, then audited. Validation-only mode skips decisions but does NOT skip verification.
| Thought | Reality |
|---|---|
| "This symbol name is probably right" | Call list_lib_symbols. "Probably" caused the Q_PMOS_GSD failure. |
| "Standard 100nF decoupling is fine for this IC" | Read the datasheet. The IC specifies what it needs. |
| "I know this footprint exists" | Call list_lib_footprints. Verify, don't assume. |
| "The rating is close enough" | Show the derating math. 60-80% of rated voltage, 70-80% of rated current. |
IMPORTANT: Use TodoWrite to create todos for EACH checklist item below.
list_lib_symbolslist_lib_footprintsspecs/bom.md artifactThe BOM artifact is the input to the schematic-plan skill. Before handing off, verify:
specs/bom.md exists and BOM reviewer returned APPROVEDlist_lib_symbolslist_lib_footprintsnpx claudepluginhub productofamerica/mcp-server-kicadAutomates KiCad to EasyEDA to JLCPCB PCB workflow: project setup, LCSC part sourcing, pin-map fetching, fully-wired .kicad_pcb generation via pcbnew, and EasyEDA handoff for routing and ordering.
Edits and creates KiCad 6+ schematic (.kicad_sch) files: modify values, add/remove components, update connections, and generate schematic content from specs or ASCII diagrams.
Generates BOM/CPL for JLCPCB assembly, manages ordering workflow, and checks design rules for prototype and production PCBs.