Skip to content

Releases: HackInvent/kicad-mcp

v0.3.1 — Geometry, export and reliability fixes (alpha)

Choose a tag to compare

@AlexusEl AlexusEl released this 08 Sep 19:37

This alpha patch fixes bugs in PCB geometry, manufacturing exports, installation and the MCP transport. The server still provides 28 tools.

  • Footprint moves now preserve polygon arcs, holes and all zone contours/fills, and reject child coordinates outside KiCad's geometry range.
  • Stackup thickness includes every dielectric sublayer. Failed layer restoration is reported explicitly.
  • Project-relative library paths remain correct when they contain variables or dollar signs. Empty exports and malformed DRC findings are rejected.
  • BOM update acknowledgments must preserve geometry and unrelated footprint data.
  • Plugin updates and PCM builds preserve the previous working files if preparation fails, avoid overwriting unrelated hard-linked files, and remove stale Python caches.
  • MCP arguments keep their declared boolean/number types. Local HTTP sessions handle malformed records, invalid tokens, localhost headers and conflicting read-only restarts correctly.

401 automated tests pass, including 76 added regression cases. CI passes on Python 3.10, 3.12 and 3.13.

Install the ZIP through KiCad's Plugin and Content Manager using Install from File, or update a manual installation with scripts/install_plugin.py --overwrite.

DRC and manufacturing tools continue to use the last saved PCB and project settings, without implicitly saving the original. This is an alpha release: validation in a real KiCad GUI and against a real kicad-cli remains pending.

v0.3.0 — PCB inspection, editing and fabrication (alpha)

Choose a tag to compare

@AlexusEl AlexusEl released this 08 Sep 19:17

This alpha release expands the KiCad MCP server to 28 tools for PCB inspection, editing and manufacturing preparation.

  • Inspect pads, vias, zones, individual items, layers and stackup, and list the items assigned to a net.
  • Control selection and layer visibility, create through-hole vias, delete supported unlocked items in one undo step and request zone refill.
  • Run kicad-cli DRC and export Gerbers, drill files, component positions and SVG into separate local job directories.
  • Preserve the PCB BOM workflow and enforce read-only mode across the new editor and artifact operations.
  • Document installation, examples and limitations in the English README.

DRC and fabrication use the last saved PCB and project context. Save pending changes explicitly before using these tools. Neither tool implicitly saves the original PCB or project. DRC does not check schematic parity; net membership does not establish physical connectivity; editor zone refill is asynchronous.

Install the ZIP through KiCad’s Plugin and Content Manager using Install from File. KiCad 10+, Python 3.10+ and an enabled IPC API are required. DRC and fabrication additionally require kicad-cli from the same major KiCad version.

325 tests pass locally, and CI passes on Python 3.10, 3.12 and 3.13. Automated tests exercise actual MCP clients, real kicad-python objects with simulated editor behavior, and simulated CLI commands. Validation in a real KiCad GUI and with a real kicad-cli remains pending.

v0.2.0 — BOM management (alpha)

Pre-release

Choose a tag to compare

@AlexusEl AlexusEl released this 07 Sep 21:08

This alpha release adds bill of materials management for the PCB open in KiCad 10+.

  • get_bom: grouped or individual component rows, quantities, custom fields, natural reference ordering, and optional inclusion of DNP or BOM-excluded components.
  • export_bom: CSV content returned through MCP, with comma, semicolon or tab delimiters and spreadsheet formula protection.
  • update_bom_fields: update values, manufacturer/MPN and other custom fields, and DNP/BOM-exclusion flags on selected components in one undoable operation.

The server now provides 13 tools. BOM reading and export are available in read-only mode. Updates never save automatically; use save_board explicitly.

Install or update using hackinvent-kicad-mcp-0.2.0.zip in KiCad's Plugin and Content Manager. For a manual installation, stop the old server, run python3 scripts/install_plugin.py --version 10.0 --overwrite, and reload the plugin before starting the new server. See the English README for connection settings and BOM examples.

BOM operations use PCB footprint data. They do not edit the schematic or resolve assembly variants; a later Update PCB from Schematic may overwrite PCB metadata. Automated tests use real kicad-python wrappers with a simulated editor. Validation in a real KiCad GUI is still pending.

Validation: 174 tests pass locally. GitHub CI, lint, Python builds and PCM packaging succeed on Python 3.10, 3.12 and 3.13.

v0.1.0 — KiCad MCP (alpha)

Pre-release

Choose a tag to compare

@AlexusEl AlexusEl released this 07 Sep 20:43

Première version alpha du plugin HackInvent KiCad MCP pour KiCad 10.0+.

Le plugin propose deux actions pour démarrer et arrêter un serveur MCP local. Il expose 10 outils : état de la connexion, informations du PCB, composants, réseaux, pistes, sélection, déplacement d’un composant, ajout d’une piste, ajout de texte et sauvegarde explicite.

Le serveur prend en charge Streamable HTTP avec un jeton local et stdio, ainsi qu’un mode lecture seule. Les opérations d’édition utilisent les transactions de l’API IPC officielle de KiCad.

Installation : télécharger hackinvent-kicad-mcp-0.1.0.zip, puis utiliser Plugin and Content Manager → Install from File dans KiCad. Activer l’API KiCad, ouvrir un PCB, puis lancer Start MCP server. Consulter le README pour les paramètres de connexion.

Validation : 76 tests passent ; la CI GitHub réussit sous Python 3.10, 3.12 et 3.13. Les archives Python et PCM sont construites et les manifestes ont été validés contre les schémas officiels.

Cette version alpha n’a pas encore été validée dans une interface KiCad réelle. Les tests de l’adaptateur utilisent les vrais objets kicad-python avec un éditeur simulé. La procédure de contrôle manuel est fournie dans le README.