{"slug": "ai-assisted-pcb-design-for-kicad-10", "title": "AI-assisted PCB design for KiCad 10", "summary": "Konnect, a native KiCad plugin shipped as a single Rust binary, has entered beta with 228 tools across 21 on-demand toolsets that let Claude and other AI assistants design schematics and PCBs through the Model Context Protocol. The plugin replaces the earlier Python/TypeScript KiCAD-MCP-Server by talking to KiCad 10 through the official IPC API (protobuf over NNG), cutting the tool-call path to a single function call and shipping as a 20–25 MB static binary with a ~9 MB download. Its router loads a ~2K-token starter kit instead of exposing all 228 tools at roughly 23K tokens of context per listing.", "body_md": "**AI-assisted PCB design for KiCAD 10.** Konnect is a native KiCAD plugin — a single\nRust binary — that lets Claude and other AI assistants design schematics and PCBs\nthrough the [Model Context Protocol](https://modelcontextprotocol.io) (MCP).\n\n**228 tools across 21 on-demand toolsets.** Schematic capture, PCB layout and\nrouting, ERC/DRC, design-review audits, JLCPCB part search, reference\ncircuits, and a full manufacturing export pipeline — with bundled skills and agents\nthat teach Claude KiCAD conventions out of the box.\n\n**Status: beta.** The core toolchain is tested and working, but this is a young\nrelease and it wants real-world mileage and review. Issues and PRs are welcome —\nsee [CONTRIBUTING.md](https://github.com/mixelpixx/Konnect/blob/main/CONTRIBUTING.md) and the\n[naming conventions](https://github.com/mixelpixx/Konnect/blob/main/docs/NAMING_CONVENTIONS.md).\n\n[**Nimrod**](https://nimrod.orchis.ai) is our web-research MCP server:\nquality-scored Google search, clean webpage extraction, and deep multi-source\nresearch. Design the board with Konnect while Nimrod pulls live parts availability, datasheets,\nand errata — no more guessing from year-old training data\n\n- Works with claude.ai, Claude Desktop, Claude Code, VS Code, and any MCP client\n- 1 credit = 1 search · extraction always free · free 50-credit trial, no card\n- Official MCP Registry:\n[`ai.orchis/nimrod`](https://registry.modelcontextprotocol.io)\n\nKonnect is the successor to [KiCAD-MCP-Server](https://github.com/mixelpixx/KiCAD-MCP-Server),\na Python/TypeScript project that proved AI-driven PCB design works — and, in the\nprocess, showed exactly where that architecture runs out of road. Konnect was built\nto fix those specific problems:\n\n**The call path was too long.** In the original server, a single tool call travels\nthrough TypeScript, schema validation, a spawned Python subprocess, JSON over\nstdin/stdout, a command router, and finally SWIG-generated C++ proxy objects before\nanything touches your board. That's four language and serialization boundaries, each\nwith its own failure modes — subprocess lifecycle management, stdout parsing that\nfilters out warnings KiCAD leaks into the stream, chunked-JSON reassembly. In\nKonnect, a tool call is a function call. One process, one language, no plumbing.\n\n**The dependency surface was enormous.** Running the original means carrying Node.js\nand its npm tree, Python and its pip packages, wxPython, kicad-skip, and KiCAD's\nSWIG bindings — two package ecosystems plus a binding layer, every one of them a\nmoving target that can break an install. Konnect is a single static binary —\n20–25 MB depending on platform, a ~9 MB download. There is nothing to install\nalongside it and nothing to version-match.\n\n**SWIG is a dead end.** The original's PCB backend depends on KiCAD's SWIG Python\nbindings, which KiCAD is deprecating in favor of its IPC API. SWIG also carried\nreal operational scars: a zone-fill call that can segfault the backend, proxy-object\ncomparison bugs, and a fallback path that can silently swap backends mid-session.\nKonnect talks to KiCAD 10 through the official IPC API (protobuf over NNG) — the\ninterface KiCAD is investing in — with real-time board edits that integrate with\nKiCAD's own undo/redo.\n\n**Schematic edits should not corrupt files.** Konnect edits `.kicad_sch` files\nthrough its own S-expression engine with atomic writes (write, fsync, rename), UUID\npreservation, and round-trip tests — no third-party schematic library with known\ngaps, no text-manipulation workarounds.\n\n**Context economy is a feature.** Exposing all 228 tools to an LLM costs roughly 23K\ntokens of context on every listing. Konnect's router loads a starter kit (~2K\ntokens) and lets the model pull in toolsets on demand — plus built-in observability\n(`get_recent_calls`, `server_stats`, JSONL call logs) so the model can diagnose its\nown tool failures.\n\nThe result is smaller, faster to install, aligned with where KiCAD is going, and\nbuilt for production use rather than experimentation. The original project remains\nopen, maintained, and useful — see [the comparison below](#relationship-to-kicad-mcp-server).\n\nInstead of describing changes and applying them by hand, the AI works your project directly:\n\n- **Place and wire schematic components** — add resistors, ICs, connectors; wire them\ntogether by pin name\n- **Lay out the PCB** — place, move, rotate, and route footprints in real time via\nKiCAD's IPC API, with full undo/redo integration\n- **Run design checks** — ERC, DRC, connectivity validation, decoupling audits,\npower-rail review, BOM health checks\n- **Export production files** — Gerbers, drill, BOM, pick-and-place, 3D models, PDF\n- **Search JLCPCB parts** — find in-stock components in a local 2.5M-part catalog and\nsuggest alternatives\n- **Start from reference circuits** — USB-C, LDO, buck converter, STM32, I2C, LED\ntemplates with verified component values\n- **Watch it happen** — a live schematic viewer auto-refreshes as the AI edits\n\nThe full tool catalog is documented in [tool-directory.md](https://github.com/mixelpixx/Konnect/blob/main/tool-directory.md).\n\n| Layer | Mechanism | \n|---|---|\n| Schematic editing | Direct `.kicad_sch` S-expression editing with atomic writes (no KiCAD required) | \n| PCB editing | KiCad 10 IPC API (NNG + protobuf) — real-time and undo-aware; single-footprint placement has a safe headless fallback | \n| Specctra routing | Revision-bound Rust DSN export, local Freerouting MCP routing, and strict one-transaction SES import; an authenticated KiCad 10 native-export bridge is explicit opt-in | \n| Exports & checks | `kicad-cli` subprocess (Gerber, PDF, ERC, DRC, …) | \n| Transport | MCP JSON-RPC over stdio (default), or Streamable HTTP ( `transport = \"http\"` /`\"both\"` ) | \n\nExplore the request path and safety boundaries in the\n[interactive architecture diagrams](https://github.com/mixelpixx/Konnect/blob/main/docs/ARCHITECTURE_DIAGRAMS.md). They are\npublished from a standalone documentation repository and add no dependencies to\nKonnect.\n\n1. Download the package for your OS from [Releases](https://github.com/mixelpixx/Konnect/releases) :`konnect-pcm-v<version>-windows.zip` ,`-macos.zip` , or`-linux.zip` . Each\nbundles that platform's server binary — the macOS package is a universal\nbuild, so one download covers Apple Silicon and Intel. (The`konnect-pcm-*` assets are the KiCAD plugin packages; the other archives are standalone\nserver binaries.)\n2. Open KiCAD 10 → **Plugin and Content Manager**\n3. Click **Install from File** and select the zip\n4. Restart KiCAD\n\nVerify: open the **PCB Editor** → **Tools → External Plugins** → you should see\n**Konnect**.\n\nFor KiCad 10, the Konnect settings dialog also offers an optional **native\nSpecctra bridge**. When enabled, `export_specctra_dsn` can ask the active PCB\nEditor to generate its native DSN while Konnect still binds the export to the\nexact IPC snapshot and creates the strict reverse manifest used during SES\nimport. The bridge is local-only, authenticated, disabled by default, and not\nthe KiCad 11 integration path. Konnect uses its Rust exporter by default;\n`native_bridge_mode: \"prefer\"` enables fallback to Rust when the bridge is\nunavailable, while `\"require\"` refuses instead.\n\nFor end-to-end autorouting, run `check_freerouting`, then\n`export_specctra_dsn` → `route_specctra_dsn` →\n`plan_specctra_ses_import` / `apply_specctra_ses`. Readiness reports engine\ndiscovery, native-MCP compatibility, and complete bridge availability\nseparately. The owned Java child is loopback-only and is reaped on success,\nfailure, timeout, or cancellation. The first supported profile preserves fixed\nstraight tracks and through vias; unlocked routing, arcs, zones, and unsupported\ngeometry are rejected before mutation.\n\n```\n# protoc is required (protobuf code generation), and cmake (the nng crate\n# compiles the NNG C library with it).\n# Windows: choco install protoc cmake\n# macOS:   brew install protobuf cmake\n# Linux:   apt install protobuf-compiler cmake\ncargo build --release -p konnect\n```\n\nKonnect bundles shared KiCad skills for Claude and Codex. Select the client when installing, checking, or removing that guidance:\n\n```\n# Existing behavior remains the default: Claude skills, agents, and hooks\nkonnect init\n\n# Codex installs only the shared skills under ~/.agents/skills\nkonnect init --client codex\nkonnect status --client codex\nkonnect uninstall --client codex\n```\n\nMCP server startup never installs or restores guidance. Run `konnect init`\nexplicitly when you want those files installed; after `konnect uninstall`,\nstarting the server leaves them removed.\n\nGuidance written by an older `konnect init` is not updated by upgrading the\nbinary. `konnect status` compares every installed skill, agent, and hook with\nthe bundle in the binary you run and marks each `current`, `different`, or\n`missing`. The server makes the same check once for each installed version:\nthe first start after `konnect init` compares the files, records\nthe result in `~/.konnect`, and adds a one-line notice to its `initialize`\ninstructions if guidance is out of sync. Later starts reuse that record, so\nguidance you chose to keep is not reported again. `get_installation_info`\nshows the result. Re-run `konnect init` to update it.\nIt overwrites differing files, so keep a copy of any file you edited. `--client` remains accepted in server\ncommands for compatibility. For example, register a standalone binary with the\nCodex CLI using:\n\n```\ncodex mcp add konnect -- /path/to/konnect --client codex\n```\n\nClaude remains the default when `--client` is omitted. The installer tracks the\ntwo clients independently, and a Codex install does not create or modify\n`~/.claude`.\n\n`--help` on any subcommand prints that subcommand's usage and writes nothing —\n`konnect init --help` describes the installer rather than running it. An\nargument Konnect does not recognise is an error rather than being ignored, so a\ntypo such as `--cleint codex` stops instead of quietly installing for the\ndefault client.\n\nTo verify which Konnect process an MCP client is actually using, call the\nalways-visible `get_installation_info` tool. It reports the serving build,\nexecutable path, verified installation source when one can be proven, KiCad\nCLI and IPC detection, and restart guidance. A missing build commit or an\n`unknown` installation source means the available evidence was insufficient;\nit is not silently guessed from a directory name.\n\nThe [Releases](https://github.com/mixelpixx/Konnect/releases) page ships\nstandalone server binaries for both Apple Silicon (`aarch64-apple-darwin`) and\nIntel (`x86_64-apple-darwin`). They are not yet code-signed, so if you download\none through a browser, clear the quarantine flag before first launch:\n\n```\ntar xzf konnect-v*-aarch64-apple-darwin.tar.gz\nxattr -d com.apple.quarantine ./konnect   # only needed for browser downloads\n./konnect --help\n```\n\nOr build from source as above (verified on Apple Silicon; the same\n`target/release/konnect` binary is the MCP server).\n\nKiCad on macOS keeps its tools inside the app bundle and they are not on\n`PATH`, so point Konnect at them in `~/Library/Application Support/konnect/config.toml`:\n\n```\nkicad_cli = \"/Applications/KiCad/KiCad.app/Contents/MacOS/kicad-cli\"\nkicad_binary = \"/Applications/KiCad/KiCad.app/Contents/MacOS/kicad\"\n# KiCad 10's IPC socket on macOS (enable it in KiCad:\n# Preferences → Plugins → \"Enable KiCad API\")\nipc_address = \"ipc:///tmp/kicad/api.sock\"\n```\n\nClaude Desktop's config lives at\n`~/Library/Application Support/Claude/claude_desktop_config.json`:\n\n```\n{\n  \"mcpServers\": {\n    \"konnect\": {\n      \"command\": \"/path/to/konnect\"\n    }\n  }\n}\n```\n\nFor Claude Code, put the same snippet in a `.mcp.json` in your project root.\n\nThe macOS PCM package (`konnect-pcm-v<version>-macos.zip`) bundles a universal\nserver binary, so one download covers Apple Silicon and Intel. The schematic\nviewer compiles and launches on macOS (Tauri 2 uses the system WKWebView —\nWebView2 is only a Windows requirement) but hasn't had the same mileage as\nthe Windows build yet.\n\nAfter a PCM install, the server binary lives in your KiCAD documents folder:\n\n```\nC:\\Users\\<YOU>\\Documents\\KiCad\\10.0\\3rdparty\\plugins\\com_github_mixelpixx_konnect\\bin\\konnect.exe\n```\n\nEdit `%APPDATA%\\Claude\\claude_desktop_config.json`:\n\n```\n{\n  \"mcpServers\": {\n    \"konnect\": {\n      \"command\": \"C:\\\\Users\\\\<YOU>\\\\Documents\\\\KiCad\\\\10.0\\\\3rdparty\\\\plugins\\\\com_github_mixelpixx_konnect\\\\bin\\\\konnect.exe\"\n    }\n  }\n}\n```\n\nRestart Claude Desktop and the Konnect tools appear. For Claude Code, drop the same\nsnippet into a `.mcp.json` in your project root (see [examples/](https://github.com/mixelpixx/Konnect/blob/main/examples)).\n\nA standalone viewer that auto-refreshes as the schematic file changes:\n\n```\nschematic-viewer.exe path\\to\\your\\root_schematic.kicad_sch\n```\n\nPoint it at the root sheet of a hierarchical design and every sub-sheet is rendered\ntoo, with a depth-indented sheet selector in the toolbar. Edits saved from KiCAD (or\nmade by the AI through the schematic tools) re-render only the sheets that changed\nand refresh the view live — rendering runs against temp-folder snapshots, so the\nviewer never blocks KiCAD from saving. Pan with click-drag, zoom with the wheel,\n`0` to fit, `R` to refresh, drag-and-drop to open a different file. Also launchable\nby the AI via the `open_schematic_viewer` tool.\n\nNeeds the WebView2 runtime (pre-installed on Windows 10/11) and a KiCAD install for\n`kicad-cli` (auto-discovered, or pass `--kicad-cli <path>`). Built separately from\nthe main workspace — see [DEV.md](https://github.com/mixelpixx/Konnect/blob/main/DEV.md) for build steps.\n\n- KiCAD 10 (Windows is the most-tested platform; macOS works from the release\nbinaries or a source build — see the [macOS section](#macos) above. Linux\ncompiles and passes tests in CI but hasn't had per-platform QA yet; both are\ntracked on the[roadmap](https://github.com/mixelpixx/Konnect/blob/main/ROADMAP.md) )\n- `kicad-cli` (ships with KiCAD — used for exports, ERC, DRC)\n- For most PCB tools: KiCAD running with the target board open (IPC API).\n`place_component` ,`move_component` ,`rotate_component` , and (on KiCAD\n10.0.6+)`flip_component` can safely fall back to a closed board file when\nIPC is unreachable. An older reachable KiCAD makes`flip_component` fail\nclosed with`unsupported_capability` ; it never edits the file underneath a\nlive editor that cannot perform the native flip.\n\nKonnect is licensed under the **[GNU AGPL-3.0](https://github.com/mixelpixx/Konnect/blob/main/LICENSE)**.\n\nIf you're a hobbyist, student, freelancer, or open-source project: **use it freely,\nno strings attached.** Design boards, ship them, sell them.\n\nIf you're a business: the AGPL requires that anything you build on or around Konnect —\nincluding software provided over a network — be open-sourced under the same license.\nIf that doesn't work for you, **commercial licenses are available**: see\n[COMMERCIAL.md](https://github.com/mixelpixx/Konnect/blob/main/COMMERCIAL.md).\n\nThe original [Python/TypeScript project](https://github.com/mixelpixx/KiCAD-MCP-Server)\nremains fully open (MIT) and maintained. Konnect is where new development happens —\nthe architecture it proved, rebuilt for production:\n\n|  | KiCAD-MCP-Server | Konnect | \n|---|---|---|\n| Runtime | Node.js + Python + SWIG bindings | Single static binary (20–25 MB) | \n| Tool call path | TS → subprocess → Python → SWIG C++ | Direct function call | \n| PCB backend | SWIG (deprecated by KiCAD) + experimental IPC | KiCAD 10 IPC API | \n| Schematic backend | kicad-skip + custom loaders | Native S-expression engine, atomic writes | \n| Context cost | Router pattern | Load/unload toolsets + observability | \n| Skills / agents | — | 6 skills + 2 agents bundled | \n| License | MIT | AGPL-3.0 + commercial | \n\n**Plugin doesn't appear in KiCAD** — install via the Plugin and Content Manager (not\nmanual copy), then restart KiCAD.\n\n**PCB tools return \"KiCAD must be running with the board loaded\"** — open KiCAD\nwith that board first; most PCB tools talk to the running PCB editor. Only an\nunreachable KiCAD produces that message: if KiCAD is running and the tool\nrefuses anyway, the error is the tool's own reason for refusing.\n`place_component`, `move_component`, `rotate_component`, and (on KiCAD\n10.0.6+) `flip_component` can fall back to a closed board file when no KiCAD\nprocess is reachable. An older, reachable KiCAD makes `flip_component` refuse\nrather than silently editing the file underneath it.\n\nSee [docs/TROUBLESHOOTING.md](https://github.com/mixelpixx/Konnect/blob/main/docs/TROUBLESHOOTING.md) for socket setup, tools\nthat don't appear after `load_toolset`, and transaction recovery.\n\n**\"kicad-cli not found\"** — common install paths are auto-detected; set the path\nexplicitly in the plugin settings dialog, in a `settings.json` beside the binary,\nor in a `konnect.toml` in the working directory. (A file under any other name\nworks only when passed with `--config`.)\n\n- Community Discord: [join the Konnect community](https://discord.gg/NVp9RGMmDu) for installation help, AI-client setup, design-workflow discussion,\ncontributor coordination, and live project-status updates\n- Issues & feature requests: [GitHub Issues](https://github.com/mixelpixx/Konnect/issues)\n- Roadmap: [ROADMAP.md](https://github.com/mixelpixx/Konnect/blob/main/ROADMAP.md)\n- Contributing: [CONTRIBUTING.md](https://github.com/mixelpixx/Konnect/blob/main/CONTRIBUTING.md)", "url": "https://wpnews.pro/news/ai-assisted-pcb-design-for-kicad-10", "canonical_source": "https://github.com/mixelpixx/Konnect", "published_at": "2026-10-14 10:51:37+00:00", "updated_at": "2026-10-16 12:46:04.044901+00:00", "lang": "en", "topics": ["ai-agents", "agent-protocols", "ai-tools", "developer-tools", "ai-products"], "entities": ["Konnect", "KiCad 10", "Claude", "Model Context Protocol", "KiCAD-MCP-Server", "Nimrod", "Anthropic", "JLCPCB"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/ai-assisted-pcb-design-for-kicad-10", "markdown": "https://wpnews.pro/news/ai-assisted-pcb-design-for-kicad-10.md", "text": "https://wpnews.pro/news/ai-assisted-pcb-design-for-kicad-10.txt", "jsonld": "https://wpnews.pro/news/ai-assisted-pcb-design-for-kicad-10.jsonld"}}