v0.3.0 released version
Manufacturing exports, design rules, embedded files, workspace tools, and schematic lifecycle.
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
- Windows package: kipilot-mcp-0.3.0-windows-x64.zip (bundled Python runtime and kicad-python binding).
- Release notes and asset download: github.com/belaszalontai/kipilot-mcp/releases/tag/v0.3.0
- Merged through pull request #3 into main.