Skip to content

MCP tools

Generated from the code

This page is written from wholeboard/mcp.py each time the site is built. To change it, change the code.

python -m wholeboard.mcp serves these tools over stdio (newline-delimited JSON-RPC; protocol versions 2025-06-18, 2025-03-26, 2024-11-05). See Use the checks from other agents.

simulate

Simulate the circuit with ngspice: supply currents, rail voltages, oscillator frequencies, and problems such as a regulator over its limit, a part over its voltage or power rating, or an LED over its current. Models come from the parts' values and LCSC data.

Argument Type Required Default What it is
project string yes – A KiCad project folder, or a .kicad_pro, .kicad_sch or .kicad_pcb file in it.

power_budget

Power budget and heat: current drawn from each supply against its limit, each regulator's load, dissipation and temperature rise, and battery life if there is a battery. Runs the simulation.

Argument Type Required Default What it is
project string yes – A KiCad project folder, or a .kicad_pro, .kicad_sch or .kicad_pcb file in it.

impedance_check

Controlled-impedance and interface routing check on the routed board: track width for the target impedance on JLCPCB's stack-up, pair skew, length, vias and stubs against interface profiles (usb2_hs, usb2_fs, ethernet_100, rmii, qspi_flash, rf_50). Give groups, or leave them out to check every differential pair found by name (USB_DP/USB_DN, TX+/TX-).

Argument Type Required Default What it is
project string yes – A KiCad project folder, or a .kicad_pro, .kicad_sch or .kicad_pcb file in it.
groups array – – A design lists its controlled nets in "impedance": [{"nets": ["USB_DP", "USB_DN"], "ohms": 90, "kind": "diff", "max_skew_mm": 1.25}, {"nets": ["RF_ANT"], "ohms": 50, "kind": "single"}, {"nets": ["QSPI_SCLK", "QSPI_SD0"], "kind": "bus", "max…

board_checks

Checks on the routed board: track temperature rise for the simulated currents (IPC-2152 and IPC-2221), voltage drop along supply tracks, decoupling capacitors' distance from their IC, and mains creepage and clearance when the project has mains nets (give mains_nets).

Argument Type Required Default What it is
project string yes – A KiCad project folder, or a .kicad_pro, .kicad_sch or .kicad_pcb file in it.
mains_nets array – – Nets at mains voltage, e.g. ["AC_L", "AC_N"].
mains_volts number – – Mains working voltage, rms (default 250).

jlc_quote

Price the board at JLCPCB: fabrication, assembly, parts at live LCSC prices, shipping, and the features that cost extra (small vias, vias in pads, bottom-side parts). Parts need LCSC numbers in a field called LCSC.

Argument Type Required Default What it is
project string yes – A KiCad project folder, or a .kicad_pro, .kicad_sch or .kicad_pcb file in it.
quantity integer – 5 –
assembly boolean – true –
assembly_quantity integer – 2 –

stock_check

Live JLCPCB stock for every BOM line, for the boards to be assembled, with in-stock replacements of the same value and package for parts that are short.

Argument Type Required Default What it is
project string yes – A KiCad project folder, or a .kicad_pro, .kicad_sch or .kicad_pcb file in it.
assembly_quantity integer – 2 –

bringup_guide

A bring-up checklist for when the boards arrive, as Markdown: inspection, first power-up with a current limit from the simulated draw, the voltage and current to expect on each rail, and the signals to look for.

Argument Type Required Default What it is
project string yes – A KiCad project folder, or a .kicad_pro, .kicad_sch or .kicad_pcb file in it.