Skip to main content

KiCad Workbench

KiCad Workbench is an MCP server that lets an AI agent work with KiCad projects. The agent reads schematics, boards and libraries, runs the checks of KiCad, makes the bill of materials (BOM), and writes changes to the schematic. It supports KiCad 8, 9 and 10.

The server gives the results that KiCad gives. Where KiCad has an interface, the server uses KiCad itself. kicad-cli makes the netlist, the BOM, the ERC and DRC reports and the exports. The Python module pcbnew of KiCad reads boards and footprints. Where KiCad has no interface, the server uses the rules of the KiCad source code for the installed version of KiCad, and reads a file as that KiCad loads it. It tells when a result can be incomplete. We compare these rules with KiCad 8.0.9, 9.0.9 and 10.

  • Design review. The agent gets the components, nets, pins and sheets of a schematic, and the footprints, tracks and zones of a board. It runs ERC and DRC, and finds pins with no pad, symbols with no footprint and missing 3D models.
  • Libraries. The agent searches the symbol and footprint libraries of KiCad and of the project, reads a symbol or a footprint as KiCad places it, and gets PNG images of it for a visual check.
  • BOM and parts. The agent makes the BOM as kicad-cli makes it (also for each variant of KiCad 10), checks the MPN fields of the symbols, and writes the confirmed fields into the schematic.

Status: in development (version 0.1). The tools work and have tests. The interfaces can change.

Datasheets of the project with datasheet-lens

datasheet-lens is an MCP server for the datasheets of electronic components. With the two servers, the agent keeps the datasheets of a design equal to its BOM, and checks the design against the original datasheets:

  • The datasheets follow the BOM. export_bom gives the parts of the design with their MPN and Datasheet fields as a CSV file. project_check of datasheet-lens compares this file with the project file datasheet-lens.toml, and gives the parts that are missing, extra or different. The project file and the datasheets go into the repository of the design, the same for each person of the team.
  • Confirmed MPNs. The Value field holds the general value (2N7002), the field MPN the orderable MPNs (2N7002LT1G, BSS138LT1G), and the hidden fields Value_Confirmed and MPN_Confirmed the copies that the user confirmed. datasheet-lens finds the changes, and set_symbol_fields writes the confirmed fields into the schematic, as KiCad writes them. Without datasheet-lens, check_symbol_fields does the same check with the same messages.
  • Checks against the datasheet. The agent compares the pins of a symbol with the pin table of the datasheet, a footprint with the package drawing, and the circuit with the absolute maximum ratings and the application circuit. datasheet-lens gives the original pages as images, not a text conversion.

See docs/datasheet-lens.md for the procedure.

Features

  • Schematics. Components, nets, symbols and fields, the sheet hierarchy, and the connections across sheets.
  • Netlist. The netlist of kicad-cli, and the connections of each pin.
  • Boards. Footprints, tracks, vias and zones, the statistics and the design rules (through pcbnew), a 3D view as PNG or JPEG (KiCad 9 or later), and the STEP and Gerber exports.
  • Checks. ERC (with the annotation check of the ERC dialog, which kicad-cli does not run) and DRC through kicad-cli, the pin and pad check of "Update PCB from Schematic", the pin conflicts of the netlist, and the links to the libraries and the 3D models.
  • Libraries. The library tables of KiCad and of the project, a search as in the choosers of KiCad, the content of symbols and footprints, and PNG images.
  • BOM. The BOM of kicad-cli with the fields, the groups, the DNP filter and the variants of KiCad 10.
  • Edits. New projects, symbols from the libraries, wires, labels and junctions as the schematic editor makes them, and the fields of placed symbols. The server writes the format of the file version, and refuses a file that KiCad has open.
  • File versions. Each KiCad opens a file of an older version, and its next save writes the file in its own version. The server does not convert files: the user converts them in KiCad. A schematic, a board or a library of an older version than the installed KiCad gives a warning with the step for the user (for a library: kicad-cli sym upgrade or kicad-cli fp upgrade). A tool that writes refuses an older schematic or board, because KiCad saves an edit of it in its own version. A file of a newer version than the installed KiCad is an error, as in KiCad: the output tells the user to install a newer KiCad.
  • Parts registry. A search in an open registry of KiCad parts (PartReel), and the download of their symbols and footprints (on request also their 3D models).

All tools are in docs/tools.md.

Requirements

  • KiCad 8, 9 or 10, with kicad-cli.
  • Python 3.10 or later.
  • For exact board data: a Python that can import the module pcbnew of KiCad. Without it, the board tools (footprints, statistics, tracks, nets, zones) read the board file as text, with no design rules and no board outline.

Installation

Install the server into a Python that can import pcbnew.

Linux (the KiCad package of the distribution installs pcbnew for the system Python):

pipx install --python /usr/bin/python3 --system-site-packages kicad-workbench
claude mcp add --scope user kicad -- kicad-workbench

Windows and macOS: install the server into the Python of KiCad, and give that Python to the MCP client. The steps are in docs/installation.md. We did not test them on Windows and macOS yet.

For a different MCP client, set the command kicad-workbench with no arguments. The server tells the agent about a newer release on PyPI. See docs/installation.md for the configuration, the environment variables and the troubleshooting.

Quick start

Ask the agent in natural language, and give the path of the schematic or the board:

Give the components and the nets of ~/boards/sensor/sensor.kicad_sch.

Run ERC and DRC on the sensor board, and explain each error.

Do the pins of U3 agree with the pads of its footprint?

Make the BOM with the MPN field, and save it as CSV for datasheet-lens.

Show the footprint Package_SO:SOIC-8_3.9x4.9mm_P1.27mm as an image.

The agent selects the tools. Close the files in KiCad before the agent edits them: KiCad does not read a change to a file that it has open.

Documentation

Document Content
docs/installation.md Requirements, installation on Linux, Windows and macOS, MCP clients, environment variables, release notices, troubleshooting, upgrade
docs/tools.md All tools, with their arguments and limits
docs/datasheet-lens.md The datasheets of a project with datasheet-lens: BOM, confirmed MPNs, checks against the datasheet
docs/editing.md The schematic edits: the rules of KiCad that they use, and their limits
docs/development.md Development setup, tests, rules for code and text
CHANGELOG.md The changes of each release

Development

python3 -m venv --system-site-packages .venv
.venv/bin/pip install -e ".[dev]"
.venv/bin/python -m pytest tests/ -q

See docs/development.md.

Acknowledgments

Thanks to all contributors and to the feedback of the community:

License

MIT, see LICENSE. KiCad Workbench started as a fork of Seeed-Studio/kicad-mcp-server (MIT, copyright Seeed Studio). The history of this repository starts on 2026-11-04 with the state of that fork.

Metadata

Release files for kicad-workbench 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kicad-workbench 0.1.0
File Size Uploaded Provenance Actions
kicad_workbench-0.1.0.tar.gz 571.8 kB Without provenance Details for kicad_workbench-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for kicad-workbench 0.1.0
File Interpreter ABI Platform Actions
kicad_workbench-0.1.0-py3-none-any.whl Python 3 none any Details for kicad_workbench-0.1.0-py3-none-any.whl

Total release size: 950.5 kB

Release files / kicad_workbench-0.1.0.tar.gz

Download URL kicad_workbench-0.1.0.tar.gz
Size 571.8 kB
Tags Source
SHA-256 checksum
How to use checksums
12bf554ee0c0ec7e99249bcbfc3a5b47cd8e1f22f024c5bc96d6905d2866b44e
BLAKE2b-256 checksum
How to use checksums
11be194e6946fee730a66a7539c8b31f47a127222be79a587cd75284bb2537e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / kicad_workbench-0.1.0-py3-none-any.whl

Download URL kicad_workbench-0.1.0-py3-none-any.whl
Size 378.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b902e5b1b7c6369b081758a2e78550fa9225a264cd5b70cc6c824fa66480f31e
BLAKE2b-256 checksum
How to use checksums
085b7c323a2169661701c1a65ccd22ca0bf0aa0bda153e5f1250bb80e42eefc5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Security for kicad-workbench 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page