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). 187 tools across 18 on-demand toolsets.
$ npx -y skills add mixelpixx/Konnect --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
Repo: mixelpixx/Konnect
What's inside
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).
187 tools across 18 on-demand toolsets. Schematic capture, PCB layout and routing, ERC/DRC, design-review audits, JLCPCB part search, Freerouting, 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.
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, about 5 MB. 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 ~180 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.
Instead of describing changes and applying them by hand, the AI works your project directly:
The full tool catalog is documented in tool-directory.md.
| 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, undo-aware, requires KiCAD running |
| Exports & checks | kicad-cli subprocess (Gerber, PDF, ERC, DRC, …) |
| Transport | MCP JSON-RPC over stdio (default), or Streamable HTTP (transport = "http" / "both") |
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.)Verify: open the PCB Editor → Tools → External Plugins → you should see Konnect.
# 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
The Releases page ships
standalone server binaries for both Apple Silicon (aarch64-apple-darwin) and
Intel (x86_64-apple-darwin). They are not yet code-signed, so if you download
one through a browser, clear the quarantine flag before first launch:
tar xzf konnect-v*-aarch64-apple-darwin.tar.gz
xattr -d com.apple.quarantine ./konnect # only needed for browser downloads
./konnect --help
Or build from source as above (verified on Apple Silicon; the same
target/release/konnect binary is the MCP server).
KiCad on macOS keeps its tools inside the app bundle and they are not on
PATH, so point Konnect at them in ~/Library/Application Support/konnect/config.toml:
kicad_cli = "/Applications/KiCad/KiCad.app/Contents/MacOS/kicad-cli"
kicad_binary = "/Applications/KiCad/KiCad.app/Contents/MacOS/kicad"
# KiCad 10's IPC socket on macOS (enable it in KiCad:
# Preferences → Plugins → "Enable KiCad API")
ipc_address = "ipc:///tmp/kicad/api.sock"
Claude Desktop's config lives at
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"konnect": {
"command": "/path/to/konnect"
}
}
}
For Claude Code, put the same snippet in a .mcp.json in your project root.
Starting with the next release, the PCM package for macOS
(konnect-pcm-v<version>-macos.zip) bundles a universal server binary; for
v0.1.3 and earlier, install via a release tarball or a source build. The schematic
viewer compiles and launches on macOS (Tauri 2 uses the system WKWebView —
WebView2 is only a Windows requirement) but hasn't had the same mileage as
the Windows build yet.
After a PCM install, the server binary lives in your KiCAD documents folder:
C:\Users\<YOU>\Documents\KiCad\10.0\3rdparty\plugins\com_github_mixelpixx_konnect\bin\konnect.exe
Edit %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"konnect": {
"command": "C:\\Users\\<YOU>\\Documents\\KiCad\\10.0\\3rdparty\\plugins\\com_github_mixelpixx_konnect\\bin\\konnect.exe"
}
}
}
Restart Claude Desktop and the Konnect tools appear. For Claude Code, drop the same
snippet into a .mcp.json in your project root (see examples/).
A standalone viewer that auto-refreshes as the schematic file changes:
schematic-viewer.exe path\to\your\root_schematic.kicad_sch
Point it at the root sheet of a hierarchical design and every sub-sheet is rendered
too, with a depth-indented sheet selector in the toolbar. Edits saved from KiCAD (or
made by the AI through the schematic tools) re-render only the sheets that changed
and refresh the view live — rendering runs against temp-folder snapshots, so the
viewer never blocks KiCAD from saving. Pan with click-drag, zoom with the wheel,
0 to fit, R to refresh, drag-and-drop to open a different file. Also launchable
by the AI via the open_schematic_viewer tool.
Needs the WebView2 runtime (pre-installed on Windows 10/11) and a KiCAD install for
kicad-cli (auto-discovered, or pass --kicad-cli <path>). Built separately from
the main workspace — see DEV.md for build steps.
kicad-cli (ships with KiCAD — used for exports, ERC, DRC)Konnect is licensed under the GNU AGPL-3.0.
If you're a hobbyist, student, freelancer, or open-source project: use it freely, no strings attached. Design boards, ship them, sell them.
If you're a business: the AGPL requires that anything you build on or around Konnect — including software provided over a network — be open-sourced under the same license. If that doesn't work for you, commercial licenses are available: see COMMERCIAL.md.
The original Python/TypeScript project remains fully open (MIT) and maintained. Konnect is where new development happens — the architecture it proved, rebuilt for production:
| KiCAD-MCP-Server | Konnect | |
|---|---|---|
| Runtime | Node.js + Python + SWIG bindings | Single static binary (~5 MB) |
| Tool call path | TS → subprocess → Python → SWIG C++ | Direct function call |
| PCB backend | SWIG (deprecated by KiCAD) + experimental IPC | KiCAD 10 IPC API |
| Schematic backend | kicad-skip + custom loaders | Native S-expression engine, atomic writes |
| Context cost | Router pattern | Load/unload toolsets + observability |
| Skills / agents | — | 6 skills + 2 agents bundled |
| License | MIT | AGPL-3.0 + commercial |
Plugin doesn't appear in KiCAD — install via the Plugin and Content Manager (not manual copy), then restart KiCAD.
PCB tools return "IPC connect failed" — open KiCAD with your board file first; PCB tools talk to the running PCB editor.
"kicad-cli not found" — common install paths are auto-detected; set the path
explicitly in the plugin settings dialog or your konnect-settings.json if yours
is elsewhere.
.gitattributes
.github/
dependabot.yml
pull_request_template.md
workflows/
ci.yml
e2e-kicad.yml
release.yml
.gitignore
Cargo.lock
Cargo.toml
COMMERCIAL.md
CONTRIBUTING.md
crates/
konnect/
konnect-core/
Cargo.toml
src/
lib.rs
mcp/
error.rs
handler.rs
mod.rs
protocol.rs
server.rs
observability.rs
router/
meta_tools.rs
mod.rs
registry.rs
tools/
cli.rs
config.rs
design_review.rs
integration.rs
library.rs
manufacturing.rs
mod.rs
pcb_board.rs
pcb_components.rs
pcb_export.rs
pcb_routing.rs
project.rs
sch_analysis.rs
sch_batch.rs
sch_bridge.rs
sch_components.rs
sch_export.rs
sch_hierarchy.rs
sch_wiring.rs
schematic_builder.rs
svg_import.rs
templates.rs
verification.rs
tests/
conformance_test.rs
fixtures/
test.kicad_pcb
test.kicad_sch
integration_test.rs
konnect-ipc/
build.rs
Cargo.toml
proto/
board/
board_commands.proto
board_types.proto
board.proto
common/
commands/
base_commands.proto
editor_commands.proto
project_commands.proto
envelope.proto
types/
base_types.proto
enums.proto
project_settings.proto
schematic/
schematic_commands.proto
schematic_types.proto
src/
builders.rs
client.rs
gen.rs
lib.rs
transform.rs
types.rs
tests/
fixtures/
live_ipc.kicad_pcb
footprint_transform_test.rs
live_kicad_test.rs
mock_server_test.rs
konnect-schematic-editor/
Cargo.toml
src/
error.rs
lib.rs
library.rs
schematic/
label.rs
misc.rs
mod.rs
sheet.rs
symbol.rs
wire.rs
sexp/
mod.rs
parser.rs
writer.rs
types.rs
tests/
integration.rs
konnect-sexp/
Cargo.toml
src/
command.rs
error.rs
geometry.rs
lib.rs
parser.rs
schematic.rs
transaction.rs
writer.rs
tests/
proptest_parser.rs
assets/
agents/
kicad-design-review-agent.md
kicad-schematic-build-agent.md
skills/
kicad-library/
SKILL.md
kicad-manufacture/
references/
gerber-layers.md
jlcpcb-rules.md
SKILL.md
kicad-pcb/
references/
design-rules.md
layer-reference.md
trace-width-table.md
SKILL.md
kicad-review/
references/
design-checklist.md
error-taxonomy.md
SKILL.md
kicad-schematic/
references/
common-lib-ids.md
wiring-patterns.md
SKILL.md
konnect/
SKILL.md
Cargo.toml
src/
config.rs
ffi.rs
install.rs
lib.rs
main.rs
manifest.rs
transaction_cli.rs
transport/
http.rs
mod.rs
stdio.rs
tests/
asset_references.rs
e2e_kicad.rs
live_kicad_tools.rs
protocol_http.rs
protocol_stdio.rs
transaction_cli.rs
schematic-viewer/
.gitignore
build.rs
capabilities/
default.json
Cargo.lock
Cargo.toml
frontend/
index.html
icons/
128x128.png
128x128@2x.png
32x32.png
64x64.png
android/
mipmap-anydpi-v26/
ic_launcher.xml
mipmap-hdpi/
ic_launcher_foreground.png
ic_launcher_round.png
ic_launcher.png
mipmap-mdpi/
ic_launcher_foreground.png
ic_launcher_round.png
ic_launcher.png
mipmap-xhdpi/
ic_launcher_foreground.png
ic_launcher_round.png
ic_launcher.png
mipmap-xxhdpi/
ic_launcher_foreground.png
ic_launcher_round.png
ic_launcher.png
mipmap-xxxhdpi/
ic_launcher_foreground.png
ic_launcher_round.png
ic_launcher.png
values/
ic_launcher_background.xml
icon.icns
icon.ico
icon.png
ios/
AppIcon-20x20@1x.png
AppIcon-20x20@2x-1.png
AppIcon-20x20@2x.png
AppIcon-20x20@3x.png
AppIcon-29x29@1x.png
AppIcon-29x29@2x-1.png
AppIcon-29x29@2x.png
AppIcon-29x29@3x.png
AppIcon-40x40@1x.png
AppIcon-40x40@2x-1.png
AppIcon-40x40@2x.png
AppIcon-40x40@3x.png
AppIcon-512@2x.png
AppIcon-60x60@2x.png
AppIcon-60x60@3x.png
AppIcon-76x76@1x.png
AppIcon-76x76@2x.png
AppIcon-83.5x83.5@2x.png
Square107x107Logo.png
Square142x142Logo.png
Square150x150Logo.png
Square284x284Logo.png
Square30x30Logo.png
Square310x310Logo.png
Square44x44Logo.png
Square71x71Logo.png
Square89x89Logo.png
StoreLogo.png
src/
main.rs
tauri.conf.json
DEV.md
docs/
NAMING_CONVENTIONS.md
TROUBLESHOOTING.md
examples/
claude_desktop_config.example.json
mcp.example.json
KiCAD-MCP-Server-rust.svg
LICENSE
packaging/
build-pcm.ps1
build-pcm.sh
metadata.json
resources/
icon.png
schema/
packages.v1.schema.json
validate-pcm.py
plugin/
__init__.py
__pycache__/
settings_dialog.cpython-312.pyc
plugin.json
settings_dialog.py
README.md
resources/
images/
KiCAD-MCP-Server_only_css.svg
KiCAD-MCP-Server_opt.svg
KiCAD-MCP-Server-rust.svg
KiCAD-MCP-Server.svg
ROADMAP.md
rust-toolchain.toml
tool-directory.mdFAQ
konnect is a Claude Code plugin with 6 hand-picked skills for development work, indexed on Flowy. Install it with the command on its page. It includes kicad-library, kicad-manufacture, kicad-pcb. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.