Changelog

v0.3.0 released version

Manufacturing exports, design rules, embedded files, workspace tools, and schematic lifecycle.

Released

Included

  • Board manufacturing exports are now first class: fourteen tools run the real KiCad IPC export jobs for SVG, DXF, PDF, PostScript, Gerber, NC drill (Excellon and Gerber), pick-and-place position, GenCAD, IPC-2581, IPC-D-356, ODB++, board statistics, STEP/STEPZ 3D models, and raytraced 3D renders. Directory-output versus file-output semantics are explicit in each tool signature.
  • Plot settings reuse: plot_settings accepts the same object shape as kicad_set_board_plot_settings, so a preset read with kicad_get_board_plot_settings can drive several export formats. Job settings mappings for 3D, render, position, and IPC-2581 exports reject unknown fields instead of silently ignoring them, and short enum aliases such as excellon or gerber work alongside the full proto names.
  • Design rule access: kicad_get_design_rules and kicad_set_design_rules read and merge-update minimum constraints, predefined sizes, solder mask and paste defaults, teardrops, via protection, DRC severities, and exclusions. kicad_get_custom_design_rules and kicad_set_custom_design_rules expose the custom rule set with parse status and error text. Repeated fields are replaced rather than appended, and rule payloads round-trip between read and write tools.
  • Embedded file management: kicad_get_embedded_files, kicad_add_embedded_files, and kicad_set_embedded_files list, extend, or replace the fonts, 3D models, and datasheets stored inside the board file. Compression and hashing are handled by the binding; replacement is additionally force-gated because it can drop embedded data.
  • Forward annotation and net classes: kicad_import_netlist imports a schematic netlist into the board with UUID or reference matching plus footprint update, extra-footprint deletion, group transfer, and lock-override options, while kicad_set_project_net_classes creates or updates net classes with clearance, width, and via values.
  • Workspace and session tools: kicad_get_paths, kicad_get_kicad_binary_path, kicad_get_plugin_settings_path, kicad_run_action, and the headless document tools kicad_open_document, kicad_create_document, and kicad_close_document.
  • Geometry helper: kicad_get_bounding_box returns KiCad-computed bounding boxes for board items plus a merged box for layout reasoning and export framing.
  • Schematic lifecycle: kicad_sch_save_as writes a copy of the schematic with overwrite protection, and kicad_sch_revert discards unsaved changes and reports whether the sheet was modified. Revert is force-gated.
  • Wider item reads: kicad_get_items now also covers board tables, grid items, constraints, and reference points, while kicad_sch_get_items additionally reads sheets, sheet pins, images, shapes, bus entries, rule areas, tables, groups, text boxes, directive labels, fields, and pins. Those extra kinds are read-only.
  • Verification: scripts/verify_v0_3_0.py exercises the new surface against an in-process fake endpoint, validates the mutation gate, and optionally checks a live KiCad endpoint. The unit test suite grew to 169 tests.

Requirements

  • PCB tools run against the stable KiCad 10.x series (10.0.6 or later recommended).
  • Board design rule read/write and custom rule access require a KiCad 11 (master/nightly) build.
  • The schematic tool surface needs a KiCad build that implements the schematic IPC handlers. Upstream KiCad 10.0.x registers only GetOpenDocuments on the schematic API handler, so schematic calls fail there with a capability error.
  • The schematic and design-rule client bindings live in kicad-python 0.9.0.dev0 (upstream main); the 0.9.0 PyPI release is not out yet. The Windows ZIP release bundles the binding, so no separate install is needed.

Release artifact

v0.2.0 released version

Full schematic editing, design variants, and new native board IPC tools.

Released

Included

  • Build-gated schematic inspection and metadata tools now cover hierarchy, netlist, page settings, title block reads, and guarded page-settings and title-block updates when the running KiCad build exposes the newer IPC surface.
  • Schematic hit-testing and schematic export jobs were added for SVG, DXF, PDF, PS, netlist, and BOM flows, with explicit output-directory versus output-file semantics in the MCP contract.
  • Schematic selection management: kicad_sch_get_selection, kicad_sch_add_to_selection, kicad_sch_remove_from_selection, and kicad_sch_clear_selection expose the live schematic editor selection set, with dry-run previews for the mutations.
  • Schematic editing landed: kicad_sch_create_items draws wires, buses, junctions, no-connects, labels, text, and symbol instances, while kicad_sch_update_items, kicad_sch_remove_items, and kicad_sch_save move, edit, delete, and persist schematic content. Wire and bus polylines are split into one segment per vertex pair, and every call supports dry-run previews.
  • Schematic item and document access: kicad_sch_get_items, kicad_sch_get_symbols, and kicad_sch_get_labels list sheet content by kind, while kicad_sch_get_as_string, kicad_sch_get_selection_as_string, and kicad_sch_is_document_modified expose the live s-expression document and its dirty state.
  • Schematic design variants are now scriptable end to end: list and activate them with kicad_sch_get_variants, kicad_sch_get_current_variant, and kicad_sch_set_current_variant, and manage them with kicad_sch_add_variant, kicad_sch_rename_variant, kicad_sch_copy_variant, kicad_sch_set_variant_description, and kicad_sch_delete_variant. Variant commands are version-gated and report a capability error on builds without variant IPC support.
  • MCP connection fallback behavior was hardened for schematic-only IPC endpoints so reachability and open-document checks remain usable outside the PCB editor path.
  • Native board flip by item ID: kicad_flip_board_items uses the KiCad flip IPC call to flip any flippable board item to the opposite side (left-right or top-bottom), complementing the higher-level footprint flip helper.
  • Board layer resolution by name: kicad_get_board_layer_by_name converts canonical layer names to numeric ids for use by other tools.
  • Board plot settings read/write: kicad_get_board_plot_settings and kicad_set_board_plot_settings read and update the plot settings stored in the current PCB, including layer lists resolved by name.
  • Fixed two start-up and health-check issues reported by @KubickNubick: the mcp dependency now pins an upper bound (<2, because the SDK renamed FastMCP to MCPServer), and a KiCad newer than the bundled kicad-python binding now reports a version_warning instead of a false KiCad IPC is not reachable.

Requirements

  • PCB tools run against the stable KiCad 10.x series (10.0.6 or later recommended).
  • The schematic tool surface needs a KiCad build that implements the schematic IPC handlers. Upstream KiCad 10.0.x registers only GetOpenDocuments on the schematic API handler, so schematic calls fail there with a capability error. Use a KiCad 11 (master/nightly) build for schematic work.
  • KiCad 11.0.0 has no announced release date yet.
  • The schematic client bindings live in kicad-python 0.9.0.dev0 (upstream main); the 0.9.0 PyPI release is not out yet. The Windows ZIP release bundles the binding, so no separate install is needed.

v0.1.1 released version

Portable Windows packaging and workflow polish.

Released

Included

  • A portable Windows MCP server release is now available, so users can run KiPilot without installing Python or doing extra local setup.
  • A new gallery video was added: How to simple run KiPilot MCP server on Windows.
  • The test agent instructions were refined to keep the workflow more tightly grounded in the live MCP-connected board.
  • The Donate button was removed from the public website navigation.

v0.1.0 released version

First public release.

Released

Included

  • PCB capabilities
  • web site
  • agent example