Konnect *BETA Release
AI-assisted PCB design for KiCAD 10. Konnect is a native KiCAD plugin β a single
Rust binary β that lets Claude and other AI assistants design schematics and PCBs
through the Model Context Protocol (MCP).
228 tools across 21 on-demand toolsets. Schematic capture, PCB layout and
routing, ERC/DRC, design-review audits, JLCPCB part search, reference
circuits, and a full manufacturing export pipeline β with bundled skills and agents
that teach Claude KiCAD conventions out of the box.
Status: beta. The core toolchain is tested and working, but this is a young
release and it wants real-world mileage and review. Issues and PRs are welcome β
see CONTRIBUTING.md and the
naming conventions.
Add realtime research to KiCAD MCP and Konnect. Introducing Nimrod
Nimrod is our web-research MCP server:
quality-scored Google search, clean webpage extraction, and deep multi-source
research. Design the board with Konnect while Nimrod pulls live parts availability, datasheets,
and errata β no more guessing from year-old training data
- Works with claude.ai, Claude Desktop, Claude Code, VS Code, and any MCP client
- 1 credit = 1 search Β· extraction always free Β· free 50-credit trial, no card
- Official MCP Registry:
ai.orchis/nimrod
Why Konnect exists
Konnect is the successor to KiCAD-MCP-Server,
a Python/TypeScript project that proved AI-driven PCB design works β and, in the
process, showed exactly where that architecture runs out of road. Konnect was built
to fix those specific problems:
The call path was too long. In the original server, a single tool call travels
through TypeScript, schema validation, a spawned Python subprocess, JSON over
stdin/stdout, a command router, and finally SWIG-generated C++ proxy objects before
anything touches your board. That's four language and serialization boundaries, each
with its own failure modes β subprocess lifecycle management, stdout parsing that
filters out warnings KiCAD leaks into the stream, chunked-JSON reassembly. In
Konnect, a tool call is a function call. One process, one language, no plumbing.
The dependency surface was enormous. Running the original means carrying Node.js
and its npm tree, Python and its pip packages, wxPython, kicad-skip, and KiCAD's
SWIG bindings β two package ecosystems plus a binding layer, every one of them a
moving target that can break an install. Konnect is a single static binary β
20β25 MB depending on platform, a ~9 MB download. There is nothing to install
alongside it and nothing to version-match.
SWIG is a dead end. The original's PCB backend depends on KiCAD's SWIG Python
bindings, which KiCAD is deprecating in favor of its IPC API. SWIG also carried
real operational scars: a zone-fill call that can segfault the backend, proxy-object
comparison bugs, and a fallback path that can silently swap backends mid-session.
Konnect talks to KiCAD 10 through the official IPC API (protobuf over NNG) β the
interface KiCAD is investing in β with real-time board edits that integrate with
KiCAD's own undo/redo.
Schematic edits should not corrupt files. Konnect edits .kicad_sch files
through its own S-expression engine with atomic writes (write, fsync, rename), UUID
preservation, and round-trip tests β no third-party schematic library with known
gaps, no text-manipulation workarounds.
Context economy is a feature. Exposing all 228 tools to an LLM costs roughly 23K
tokens of context on every listing. Konnect's router loads a starter kit (~2K
tokens) and lets the model pull in toolsets on demand β plus built-in observability
(get_recent_calls, server_stats, JSONL call logs) so the model can diagnose its
own tool failures.
The result is smaller, faster to install, aligned with where KiCAD is going, and
built for production use rather than experimentation. The original project remains
open, maintained, and useful β see the comparison below.
What it does
Instead of describing changes and applying them by hand, the AI works your project
directly:
- Place and wire schematic components β add resistors, ICs, connectors; wire them
together by pin name
- Lay out the PCB β place, move, rotate, and route footprints in real time via
KiCAD's IPC API, with full undo/redo integration
- Run design checks β ERC, DRC, connectivity validation, decoupling audits,
power-rail review, BOM health checks
- Export production files β Gerbers, drill, BOM, pick-and-place, 3D models, PDF
- Search JLCPCB parts β find in-stock components in a local 2.5M-part catalog and
suggest alternatives
- Start from reference circuits β USB-C, LDO, buck converter, STM32, I2C, LED
templates with verified component values
- Watch it happen β a live schematic viewer auto-refreshes as the AI edits
The full tool catalog is documented in tool-directory.md.
How it works
| Layer | Mechanism |
|---|
| Schematic editing | Direct .kicad_sch S-expression editing with atomic writes (no KiCAD required) |
| PCB editing | KiCad 10 IPC API (NNG + protobuf) β real-time and undo-aware; single-footprint placement has a safe headless fallback |
| 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 |
| Exports & checks | kicad-cli subprocess (Gerber, PDF, ERC, DRC, β¦) |
| Transport | MCP JSON-RPC over stdio (default), or Streamable HTTP (transport = "http" / "both") |
Explore the request path and safety boundaries in the
interactive architecture diagrams. They are
published from a standalone documentation repository and add no dependencies to
Konnect.
Installation
From the KiCAD Plugin Manager (recommended)
- Download the package for your OS from Releases:
konnect-pcm-v<version>-windows.zip, -macos.zip, or -linux.zip. Each
bundles that platform's server binary β the macOS package is a universal
build, so one download covers Apple Silicon and Intel. (The konnect-pcm-*
assets are the KiCAD plugin packages; the other archives are standalone
server binaries.)
- Open KiCAD 10 β Plugin and Content Manager
- Click Install from File and select the zip
- Restart KiCAD
Verify: open the PCB Editor β Tools β External Plugins β you should see
Konnect.
For KiCad 10, the Konnect settings dialog also offers an optional native
Specctra bridge. When enabled, export_specctra_dsn can ask the active PCB
Editor to generate its native DSN while Konnect still binds the export to the
exact IPC snapshot and creates the strict reverse manifest used during SES
import. The bridge is local-only, authenticated, disabled by default, and not
the KiCad 11 integration path. Konnect uses its Rust exporter by default;
native_bridge_mode: "prefer" enables fallback to Rust when the bridge is
unavailable, while "require" refuses instead.
For end-to-end autorouting, run check_freerouting, then
export_specctra_dsn β route_specctra_dsn β
plan_specctra_ses_import / apply_specctra_ses. Readiness reports engine
discovery, native-MCP compatibility, and complete bridge availability
separately. The owned Java child is loopback-only and is reaped on success,
failure, timeout, or cancellation. The first supported profile preserves fixed
straight tracks and through vias; unlocked routing, arcs, zones, and unsupported
geometry are rejected before mutation.
Build from source
# protoc is required (protobuf code generation), and cmake (the nng crate
# compiles the NNG C library with it).
# Windows: choco install protoc cmake
# macOS: brew install protobuf cmake
# Linux: apt install protobuf-compiler cmake
cargo build --release -p konnect
Install guidance for your AI client
Konnect bundles shared KiCad skills for Claude and Codex. Select the client when
installing, checking, or removing that guidance:
# Existing behavior remains the default: Claude skills, agents, and hooks
konnect init
# Codex installs only the shared skills under ~/.agents/skills
konnect init --client codex
konnect status --client codex
konnect uninstall --client codex
MCP server startup never installs or restores guidance. Run konnect init
explicitly when you want those files installed; after konnect uninstall,
starting the server leaves them removed.
Guidance written by an older konnect init is not updated by upgrading the
binary. konnect status compares every installed skill, agent, and hook with
the bundle in the binary you run and marks each current, different, or
missing. The server makes the same check once for each installed version:
the first start after konnect init compares the files, records
the result in ~/.konnect, and adds a one-line notice to its initialize
instructions if guidance is out of sync. Later starts reuse that record, so
guidance you chose to keep is not reported again. get_installation_info
shows the result. Re-run konnect init to update it.
It overwrites differing files, so keep a copy of any file you edited. --client remains accepted in server
commands for compatibility. For example, register a standalone binary with the
Codex CLI using:
codex mcp add konnect -- /path/to/konnect --client codex