macOS · KiCad 10 · Claude Code
Konnect bridges KiCad's editors to Claude over MCP. One binary does both jobs — KiCad's Plugin Manager keeps it updated, and Claude Code launches that same copy directly. Configure the pieces below and they agree on one socket. This is the exact path, verified on a real machine.
One binary, two launchers. KiCad's Plugin Manager installs and updates bin/konnect; Claude Code can launch that exact file directly — no separate download needed. Both sides just need to agree on the same ipc:// address.
This gives KiCad a Tools menu entry and a live schematic/PCB viewer. It does not by itself talk to Claude.
Konnect, click Install, then Apply Changes.~/Documents/KiCad/10.0/3rdparty/plugins/com_github_mixelpixx_konnect/
This is KiCad's own feature — Konnect just connects to it. It's off by default.
ipc:///tmp/kicad/api.sock.# after relaunch
ls /tmp/kicad/
# → api.lock api.sock
The checkbox itself is stored in:
~/Library/Preferences/kicad/10.0/kicad_common.json
{
"api": { "enable_server": true, ... }
}
Tell the KiCad-side plugin where the API actually lives.
ipc:///tmp/kicad/api.sock~/Documents/KiCad/10.0/3rdparty/plugins/com_github_mixelpixx_konnect/settings.json
Claude Code launches this file directly, but the Plugin Manager doesn't install it with the execute bit set — so the very first launch attempt fails with a permission error. One-time fix:
chmod +x ~/Documents/KiCad/10.0/3rdparty/plugins/com_github_mixelpixx_konnect/bin/konnect
chmod +x ~/Documents/KiCad/10.0/3rdparty/plugins/com_github_mixelpixx_konnect/bin/schematic-viewer
# confirm it runs
~/Documents/KiCad/10.0/3rdparty/plugins/com_github_mixelpixx_konnect/bin/konnect --version
Re-run this after any Plugin Manager update to Konnect — updates re-extract the archive and drop the execute bit again.
The standalone binary does not read the settings you saved in Part 3 — that file belongs to the KiCad plugin. The binary reads its own config, in a different format, from a different folder.
If Konnect's tools report ipc_available: false even though /tmp/kicad/api.sock exists, this file is almost always missing — or saved as .json instead of .toml.
mkdir -p ~/Library/Application\ Support/konnect
cat > ~/Library/Application\ Support/konnect/config.toml <<'EOF'
ipc_socket_path = "ipc:///tmp/kicad/api.sock"
kicad_cli = "/Applications/KiCad/KiCad.app/Contents/MacOS/kicad-cli"
EOF
This file is read once, at process start. Any edit needs a restart to take effect — see Part 8.
Add an mcpServers entry pointing straight at the Plugin-Manager-installed binary from Part 4 — the same file KiCad itself uses.
~/.claude.json
{
...
"mcpServers": {
"konnect": {
"type": "stdio",
"command": "/Users/<you>/Documents/KiCad/10.0/3rdparty/plugins/com_github_mixelpixx_konnect/bin/konnect",
"args": [],
"env": {}
}
}
}
Project-scoped instead of global? Put the same "konnect": {…} object in a .mcp.json at the project root. Either way, one binary now serves both KiCad and Claude Code — nothing extra to keep in sync when Konnect updates.
ERC, DRC, and every export/render tool shells out to kicad-cli — but installing KiCad.app doesn't put it on PATH.
# pick any directory already on your PATH
ln -sf /Applications/KiCad/KiCad.app/Contents/MacOS/kicad-cli ~/bin/kicad-cli
config.tomlipc_available: true and list your open board| Symptom | Cause & fix |
|---|---|
| Claude Code can't launch konnect at all — permission denied | The Plugin-Manager copy loses its execute bit on install and on every update. Redo Part 4's chmod +x. |
| Socket exists, but tools still say IPC unreachable | config.toml missing, or saved as .json. It must be TOML, at the exact path in Part 5. Recreate it, then restart Claude Code. |
| "Board is open in the schematic editor" — but it isn't | Stale .lck files from a crashed KiCad session. Quit KiCad, then check for and delete ~*.lck in the project folder. |
| Socket file disappears after a KiCad relaunch | The IPC checkbox reverted, or KiCad wasn't fully quit last time (Dock icon still bouncing counts as still running). Recheck Part 2. |
| Flipping a footprint to the other side always refuses | That specific operation has no live-IPC path yet. Either close KiCad and let the tool edit the file directly, or select the part in KiCad and press F yourself. |
| ERC / DRC / SVG export fail outright | kicad-cli isn't on PATH. Redo Part 7, then confirm with which kicad-cli. |
| Edited config.toml, still no change | The MCP server only reads config at startup. Restart Claude Code — reopening the KiCad project alone won't do it. |