Skip to content
Automation
Command

/pcb-from-bom

Start a PCB project from an existing LCSC BOM file (CSV with C-numbers) and a design-intent description.

From plugin
kicad-jlcpcb
262 skills1 agent2 commands1 MCP
> /plugin marketplace add BeckhamLabsLLC/kicad-jlcpcb
> /plugin install kicad-jlcpcb@beckhamlabs

Command definition

pcb-from-bom.md
name: pcb-from-bom
description: Start a PCB project from an existing LCSC BOM file (CSV with C-numbers) and a design-intent description.
argument-hint: "[path to BOM CSV] [optional: design intent notes]"
allowed-tools:
  # Each MCP tool is listed twice on purpose. A server from a project
  # .mcp.json is exposed as mcp__<server>__<tool>, but the same server
  # provided by an installed plugin is mcp__plugin_<plugin>_<server>__<tool>.
  # Listing only the short form meant this command ran with no MCP tools at
  # all for anyone who installed from the marketplace, and answered in prose.
  - Read
  - Write
  - Glob
  - Grep
  - mcp__kicad-jlcpcb__detect_kicad
  - mcp__plugin_kicad-jlcpcb_kicad-jlcpcb__detect_kicad
  - mcp__kicad-jlcpcb__create_project
  - mcp__plugin_kicad-jlcpcb_kicad-jlcpcb__create_project
  - mcp__kicad-jlcpcb__load_project
  - mcp__plugin_kicad-jlcpcb_kicad-jlcpcb__load_project
  - mcp__kicad-jlcpcb__session_resume
  - mcp__plugin_kicad-jlcpcb_kicad-jlcpcb__session_resume
  - mcp__kicad-jlcpcb__session_confirm_bom
  - mcp__plugin_kicad-jlcpcb_kicad-jlcpcb__session_confirm_bom
  - mcp__kicad-jlcpcb__lcsc_resolve_bom
  - mcp__plugin_kicad-jlcpcb_kicad-jlcpcb__lcsc_resolve_bom
  - mcp__kicad-jlcpcb__part_pin_map
  - mcp__plugin_kicad-jlcpcb_kicad-jlcpcb__part_pin_map
  - mcp__kicad-jlcpcb__pcb_generate
  - mcp__plugin_kicad-jlcpcb_kicad-jlcpcb__pcb_generate
  - mcp__kicad-jlcpcb__fetch_part_library
  - mcp__plugin_kicad-jlcpcb_kicad-jlcpcb__fetch_part_library
  - mcp__kicad-jlcpcb__sch_generate
  - mcp__plugin_kicad-jlcpcb_kicad-jlcpcb__sch_generate
  - mcp__kicad-jlcpcb__sch_run_erc
  - mcp__plugin_kicad-jlcpcb_kicad-jlcpcb__sch_run_erc
  - mcp__kicad-jlcpcb__package_for_jlcpcb
  - mcp__plugin_kicad-jlcpcb_kicad-jlcpcb__package_for_jlcpcb
  - mcp__kicad-jlcpcb__easyeda_handoff
  - mcp__plugin_kicad-jlcpcb_kicad-jlcpcb__easyeda_handoff

/pcb-from-bom

Start a KiCad project from an existing BOM CSV. Skips part sourcing and goes straight to pin-map fetch + wired `.kicad_pcb` + EasyEDA handoff.

Instructions

1. Detect KiCad, create or resume the project

Call `detect_kicad`. If the target project directory already exists, call `load_project` on it and check the returned `session` summary — if `resume_available` is true, offer the user a resume-or-restart choice (same pattern as `/pcb-new` step 2). Otherwise call `create_project`.

2. Read the BOM

Use `Read` to load the CSV. Auto-detect the column layout — common forms:

  • `Reference, Value, LCSC, Quantity`
  • `Designator, Value, LCSC Part #, Qty`
  • `Comment, Designator, Footprint, LCSC`

Convert each row into a `{lcsc, qty}` dict.

3. Resolve the BOM

Call `lcsc_resolve_bom` with the rows. Validates every C-number against the live catalog and catches any out-of-stock or discontinued parts.

4. **CHECKPOINT — present the BOM**

Same as `/pcb-new` step 5. Show the user resolved/unresolved/cost and get confirmation.

5. Interpret design intent

If the BOM file has a design-intent section (GPIO table, functional descriptions, schematic notes) or the user provided notes alongside the BOM:

a. **Read it carefully.** The design intent tells you how parts connect.

b. **Map every IC to a reasonable footprint.** KiCad stdlib names are listed in `/pcb-new` step 6. For ICs not in KiCad stdlib, pick the closest package-family footprint (SOT-23-6, QFN-24, SOIC-8, etc.) — the user can swap it in EasyEDA later.

c. **Call `part_pin_map`** for each IC whose pinout you're unsure about. It returns `{pin_name: pad_num}` so you know what the nets need to reference.

d. **Build the nets dict.** Map power rails, buses (I2C, SPI, UART, USB), and signal lines based on the design intent. Reference pins by name, not number — the plugin resolves them.

If the BOM has no design intent and the user provided no notes: warn them that you'll generate a components-only spec (no nets), and they'll have to wire things up manually in KiCad or EasyEDA.

6. Generate + hand off

Call `pcb_generate` with the spec, then `easyeda_handoff` on the result. Relay the handoff instructions to the user verbatim.

Read more
@beckhamlabsllc
Ships withkicad-jlcpcb

From "I want a board that does X" to a wired .kicad_pcb EasyEDA can auto-route and JLCPCB can build — in a single Claude Code conversation. kicad-jlcpcb is a Claude Code plugin + MCP server that automates the tedious half of going from idea to fab.

261 skill1 agent1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
26
Star history of BeckhamLabsLLC/kicad-jlcpcb on GitHub, a chart by star-history.com

Other commands on kicad-jlcpcb.

pcb-new

pcb-new

Command

Start a new PCB project from a text description. Sources parts, generates a wired .kicad_pcb, and hands off to EasyEDA for…

More commands from other plugins.

plan

plan

Command

Plan n8n Linear ticket implementation

n8n2w209k
@n8n-io@n8n-ioInstall Command
setup

setup

Command

One-time setup after installing ARIS as a Claude Code plugin — registers the Codex reviewer MCP server from the plugin directory…

aris2w18k
@wanshuiyin@wanshuiyinInstall Command
agent
Auto-invoked

agent

Command

name: sc:agent description: SC Agent — session controller that orchestrates investigation, implementation, and review category:…

@galaxy-dawn@galaxy-dawnInstall Command