KiCAD-MCP-Server (mixelpixx) errors
14 recurring problems engineers report in KiCAD-MCP-Server (mixelpixx), ranked by impact.
#27 by errors trackedECAD
Recurring KiCAD-MCP-Server (mixelpixx) errors, by impact
- 1A .kicad_dru file that does not parse is ignored as a whole with DRC exit 0 and no rule violations, of two matching rules the later one wins even when it is looser, a rule on an undefined net class matches nothing with no report, and kicad-cli 10.0.8 DRC segfaults with no report on a creepage rule when the board has no Edge.Cuts outline. On a high-voltage board, DRC passed can mean DRC ran no rules.ECAD · Agent failure · 1 report74
- 2An audit of all 247 MCP tools found names lying in both directions: tools that look read-only or export-only rewrite the design by default, including lint_schematic_cosmetic rewriting the schematic, export_dsn writing net classes into the board, and hierarchical_place saving the board.ECAD · Agent failure · 1 report74
- 3If the schematic is open in KiCad 10 while the AI edits it, KiCad never notices the file changed, and the next save in KiCad silently wipes the AI's edits, while the board side has a guard and schematics do not.ECAD · Agent failure · 1 report74
- 4KiCad can change a via's net when it saves a board, and nothing reports it. DRC does not flag it. A via placed inside another net's zone took that zone's net, and after an autorouter SES import, a GND via came back on ISENSE_ADC and two VBAT vias came back as GND. The team caught it only by comparing the board via by via with the previous commit, which is now a permanent step in their checklist. On an 800 V board, a via silently moved from a low-voltage net to a high-voltage one is a safety problem.ECAD · Agent failure · 1 report74
- 5The MCP sync tool built its pad-to-net map with its own geometric walker instead of asking KiCad, split nets that change name at a sheet boundary, missed labels in the middle of a wire, flattened names, and left new footprints with no symbol path. On a real 77-part, 9-sheet board, 304 of 333 pads were wrong while the tool reported success, with 349 parity issues. The fix reads KiCad's own netlist and gets 0 of 333.ECAD · Agent failure · 1 report74
- 6The modify_trace command reported success and the change vanished on reload. The tool changed width, layer and net on the in-memory board but was never on the list of commands that trigger auto-save, so the change existed only in that in-memory board, discarded on the next project load. It also skipped the live IPC path, so a KiCad window open on the board did not show the change until a revert or restart. Same bug shape as an earlier add_layer issue.ECAD · Agent failure · 1 report74
- 7While setting up an 800 V clearance class, the tool reported nets it never assigned: the reply listed the requested nets and persisted true, but nothing was written, because KiCad 8 renamed SetClass to SetNetClass and the error went to a warning. On KiCad 9, pcbnew.SaveBoard rewrites the project file from memory, so every class the server wrote disappeared. Four bugs, one result: the agent's reply and the file disagree on the rule that keeps 800 V away from logic.ECAD · Agent failure · 1 report74
- 8Building a 67-part STM32G031 plus 2x IRS2104 full-bridge board through the MCP server on KiCad 10, every save after schematic sync was refused as an external change, partial saves made re-running the layout duplicate tracks and zones, create_netclass silently dropped its nets, and add_zone and two export tools always returned Unknown command.ECAD · Agent failure · 1 report66
- 9export_svg returned success and wrote no file (same bug export_gerber had the week before), and export_pdf writes a file under a different name than the one it reports.ECAD · Agent failure · 1 report66
- 10Found while running a real STM32H573 plus ISO1044 module-controller design through the server on KiCad 10.0.8. Stock STM32 pin names like 'PA13(JTMS' have a parenthesis inside a quoted string, and twenty scanners counted it, so every MCU_ST_STM32H5 symbol came back 'not found.' Once one was placed by hand, adding any other symbol failed too. The fix removes 90 lines of hand-rolled parsers.ECAD · Agent failure · 1 report66
- 11On a 107-part board where schematic and layout had drifted, KiCad's parity check showed 107 field mismatches, 42 symbol mismatches and 2 net conflicts. The sync, like KiCad's F8, overwrites board values with the schematic's, and on a board edited after its last sync that throws data away. The change list only came back after the save, so the fix adds a dryRun preview and a per-pad list of nets that actually change.ECAD · Agent failure · 1 report66
- 12On a hierarchical project, create_board_from_schematic failed with '__bool__ should return bool, returned str' whenever a child sheet had exactly one hierarchical label, which is common for a small sheet that exports one signal. The parsing library returns a bare element for one item and a collection for two. Schematic to board sync broke on an ordinary design pattern.ECAD · Agent failure · 1 report66
- 13The KiCad MCP server gives Failed to load schematic and nothing else when an agent clones a power symbol. Two separate mistakes cause it: one instance path keeps the old #PWR reference, or the symbol is inserted after sheet_instances. The batch tool an agent might reach for places a label, and a label spelled GND does not join power:GND.ECAD · Agent failure · 1 report66
- 14The MCP session keeps a hash of the board file so it will not overwrite edits made in KiCad. autoroute, import_ses and refill_zones write the board file themselves and never updated that hash. So the next auto-save saw 'changed externally,' refused, and kept the edit in memory only. Every edit after that was refused the same way until the project was reopened.ECAD · Agent failure · 1 report66
How it fails
Sourced from public community reports. Costs and delays on individual entries are modeled estimates, not measurements.