fix: reconnect IPC backend after KiCad starts (#140)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
scorp508
2026-05-22 17:41:47 -04:00
committed by GitHub
parent f65eaf2798
commit 6113e0c27a
10 changed files with 927 additions and 102 deletions

View File

@@ -28,6 +28,22 @@ All notable changes to the KiCAD MCP Server project are documented here.
`.kicad_sch` path) for stateless callers, so project libraries can be
resolved without first calling `open_project`.
- **IPC backend runtime reconnect**: MCP no longer stays on SWIG for the
entire process when it starts before KiCAD. IPC-capable board tools now retry
the IPC connection when KiCAD is running, refresh the live board API when a
board becomes available, and report `_backend: "ipc"` when they actually use
the IPC path. `check_kicad_ui`, `launch_kicad_ui`, and `get_backend_info`
now include live backend status instead of only reflecting startup state.
- **Windows KiCAD Python discovery**: Windows startup now scans per-user KiCAD
installs under `%LOCALAPPDATA%\Programs\KiCad` in addition to machine-wide
installs under `C:\Program Files\KiCad` and `C:\Program Files (x86)\KiCad`,
so user-scope installs no longer require a manual `KICAD_PYTHON` override.
- **IPC board size on KiCAD 10**: `get_board_info` now handles KiCAD 10 IPC
`Box2` objects that expose `pos` / `size` instead of `min` / `max`, avoiding
a zero-size board result with an attribute error.
- **Schematic symbol lookup**: `get_schematic_component`,
`edit_schematic_component`, `set_schematic_component_property`,
`remove_schematic_component_property`, and `delete_schematic_component`
@@ -157,6 +173,9 @@ All notable changes to the KiCAD MCP Server project are documented here.
this out explicitly so agents know they can use it to inspect MPN,
Manufacturer, Distributor PN and other BOM fields without a separate call.
- `query_traces`: added to the IPC-capable board command path so trace reads
can use live KiCAD board data when IPC is connected.
### New MCP Prompt
- `component_sourcing_properties` — Guides the LLM through attaching BOM and
@@ -175,6 +194,10 @@ All notable changes to the KiCAD MCP Server project are documented here.
no-op removal, special-character escaping, UUID preservation, and the two
new convenience tools.
- `tests/test_backend_metadata.py`: regression coverage for backend metadata,
runtime IPC reconnect after KiCAD starts, IPC-backed `query_traces`, and
KiCAD 10 IPC `Box2` board-size compatibility.
### Removed
- `add_schematic_junction` MCP tool has been removed. Junctions are now