A board-design server has to expose hundreds of operations, and a model handed all of them at once picks badly and burns context doing it. search_tools and get_category_tools let it look up the right call by keyword instead. The schematic-hygiene tools deserve their own mention: floating labels, orphaned wires and wires crossing symbols are exactly the mistakes a generated schematic makes and a human review misses.
A bridge between an assistant and a local KiCAD installation, covering the whole board lifecycle — project, schematic, placement, routing, checks and manufacturing output — with tool discovery so the model can find the right call rather than carrying every schema.
- Projects created, opened, saved and checkpointed with a named snapshot that renders a PDF — create_project, open_project, save_project, snapshot_project
- Board setup: dimensions, outline shapes, layers, zones, mounting holes, text and an SVG logo imported onto silkscreen — set_board_size, add_board_outline, add_layer, add_zone, add_mounting_hole, import_svg_logo
- Components placed, moved, rotated, duplicated, aligned, arrayed, annotated and grouped, with pads and properties readable — place_component, move_component, rotate_component, align_components, place_component_array, get_component_pads, get_component_properties
- Routing: nets and traces, vias, copper pours, differential pairs, pad-to-pad routes, net classes and a pattern copied from one place to another — add_net, route_trace, add_via, add_copper_pour, route_differential_pair, route_pad_to_pad, create_netclass, copy_routing_pattern
- Design rules set and read, DRC run, clearances checked and violations listed — set_design_rules, run_drc, check_clearance, get_drc_violations
- A full schematic workflow: components, wires, net labels, no-connects, hierarchical labels and sheet pins, plus ERC, netlist generation and syncing the schematic to the board — add_schematic_component, add_schematic_wire, add_schematic_net_label, add_sheet_pin, run_erc, generate_netlist, sync_schematic_to_board
- Schematic sanity checks that catch what a human misses: overlapping elements, wires crossing symbols, floating labels and orphaned wires — find_overlapping_elements, find_wires_crossing_symbols, list_floating_labels, find_orphaned_wires
- Libraries searched and inspected, and new footprints and symbols created and registered — search_footprints, search_symbols, create_footprint, create_symbol, register_footprint_library, register_symbol_library
- Parts sourcing against the JLCPCB catalogue, with alternatives suggested and datasheets enriched via LCSC — search_jlcpcb_parts, get_jlcpcb_part, suggest_jlcpcb_alternatives, enrich_datasheets, get_datasheet_url
- Freerouting autorouting through Java, Docker or Podman, with DSN export and SES import — autoroute, export_dsn, import_ses, check_freerouting
- Manufacturing output: Gerbers, PDF, SVG, 3D, VRML, BOM, netlist and pick-and-place positions — export_gerber, export_pdf, export_3d, export_bom, export_position_file
- Keyword tool discovery so the model finds the right tool instead of holding every schema at once — search_tools, get_category_tools, list_tool_categories
KiCAD 9.0 or newer installed locally with its libraries, Node.js 20 or newer, and Python — the repository is cloned and built rather than installed from a registry. It reaches KiCAD through the pcbnew Python module, so the server has to find KiCAD's own Python: on most Linux installations that resolves automatically, and KICAD_PYTHON overrides it elsewhere. Windows has a setup script that detects installs and generates the configuration. Autorouting additionally needs Java, Docker or Podman for Freerouting. Note before you commit to it: the author has rebuilt this project as Konnect, a native KiCAD 10 plugin in Rust, where new development now happens — this server stays open and maintained but is no longer where the work goes.
