Design KiCad schematics by talking to Claude. Places parts, wires nets, runs ERC. Needs KiCad 10.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Design electronic schematics by talking to Claude. This is an MCP server that lets a language model draw real KiCad schematics β placing parts, wiring nets, adding power symbols and running KiCad's own electrical rules check β and hand you a .kicad_sch file you can open, edit and manufacture from.
An LM2596 step-down converter. Nobody drew this by hand: it was compiled from a text description, and it passes ERC.
You ask for a circuit in plain language. Claude writes a short declarative description of it and calls one tool, compile_schematic, which turns that description into a finished schematic file.
You: Build me a 555 astable running at about 1 Hz, 5 V supply.
Claude: [looks up the real pin names of the NE555, writes the design, compiles it] Done β 7 components, ERC clean. Here's the preview.
The result opens in KiCad like any other schematic. It is not a picture: it is a real file with a real netlist, ready for PCB layout.
Generating something is easy; generating a schematic a human would accept is not. Every compiled schematic is checked before you see it, and the compiler refuses to emit anything that fails:
| Guarantee | How it is enforced |
|---|---|
| No wire crosses a wire from a different net | A geometric gate re-checks every segment. Offenders become net labels instead |
| No wire runs through a component body | Same gate, checked against each symbol's real outline |
| Every declared connection exists | The finished file is re-read and its netlist compared against what you asked for |
| No accidental extra connections | The same check, in reverse β a wire that touches a pin it shouldn't is an error |
| Power symbols really touch their pins | Verified by physical contact, not by net name |
| A junction wherever wires meet | The rule was measured across the 115 schematics KiCad ships: a dot where three or more wire ends meet, and where two meet on a pin |
| KiCad agrees | kicad-cli runs ERC on the result and the report comes back with it |
If a connection cannot be drawn cleanly, it degrades to a net label rather than producing a wire that lies. The schematic is never silently wrong.
A net crossing itself is not one of those cases: it is one net either way, so the wire is cut at the crossing and given a junction rather than being thrown away. Only a genuine conflict with another net costs you a wire.
find_part / import_part bring in what is missing from external KiCad libraries β verified before installation. If a part exists nowhere, it says so instead of drawing one.| KiCad 10 | Provides kicad-cli, used for ERC and for rendering. Earlier versions are untested. |
| Claude Desktop or Claude Code | Or any other MCP client. |
| Go 1.24+ | Only if you build from source. |
Download mcp-kicad.mcpb from Releases and double-click it. Claude Desktop installs it as an extension: no JSON to edit, no paths to type. The bundle carries the Windows, macOS and Linux builds, so the same file works everywhere.
Then skip straight to Checking that it works.
On Apple Silicon the bundled macOS build runs through Rosetta. If you want the native one, take
mcp-kicad-darwin-arm64from Option B instead.
Go to Releases and download the file for your system:
| System | File |
|---|---|
| Windows (Intel/AMD) | mcp-kicad-windows-amd64.exe |
| Linux (Intel/AMD) | mcp-kicad-linux-amd64 |
| Linux (ARM, e.g. Raspberry Pi) | mcp-kicad-linux-arm64 |
| macOS (Apple Silicon) | mcp-kicad-darwin-arm64 |
| macOS (Intel) | mcp-kicad-darwin-amd64 |
Put it wherever you like β say C:\Tools\mcp-kicad.exe or ~/bin/mcp-kicad.
On Linux and macOS, make it executable:
On macOS the first run is blocked because the binary is unsigned. Allow it with:
There is nothing else to install. The binary is self-contained and needs no configuration file: it finds KiCad on its own.
Not needed if you installed the .mcpb bundle β it registers itself.
Edit the configuration file β create it if it isn't there:
| System | Location |
|---|---|
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
Add the server:
On Linux or macOS the command is a normal path, "/home/you/bin/mcp-kicad".
Windows note: backslashes must be doubled in JSON (
C:\\Tools\\...). A single backslash is the single most common reason the server fails to start.
Then quit Claude Desktop completely and reopen it. Reloading the window is not enough β the server runs as a child process and only starts on a full restart.
Ask Claude:
Use get_project_info to check the KiCad setup.
You should get back the detected kicad-cli path, the library directories, and the output directory. If it reports that kicad-cli was not found, see Configuration below.
Just describe the circuit. Be specific about what matters to you β supply voltage, part numbers you want, values you've already chosen β and leave the rest to Claude.
Prompts that work well:
Design a 5 V regulated supply from a 12 V input using an LM7805, with input and output decoupling and a power LED.
Make me an ATmega328P minimal board: 16 MHz crystal with load caps, reset pull-up, ICSP header, and decoupling on both supply pins.
Build a two-transistor astable multivibrator that blinks two LEDs at roughly 2 Hz.
Useful things to ask for afterwards:
kicad-cli.The generated files land in the output directory (get_output_dir tells you where; set_output_dir changes it).
Behind the scenes, Claude writes a small JSON document and compiles it. You will rarely need to touch this, but it is worth seeing, because it explains why the results are stable β positions are never given in millimetres, they are anchored pin-to-pin:
The first symbol in a block anchors it; every other symbol hangs off a pin of one already placed, a whole number of 2.54 mm grid cells away. That is how a schematic stays on-grid and readable no matter how the model reorders things.
The complete format is specified in internal/tools/design_format.md (the same text the design_guide tool serves to the model), and there are thirteen worked examples in docs/compiler/ β from a two-part LED circuit to a greenhouse controller with 27 components.
None is required. The server looks for KiCad in the usual places:
C:\Program Files\KiCad\<version>\bin\kicad-cli.exe, then PATH/usr/bin/kicad-cli, /usr/local/bin/kicad-cli, then PATH/Applications/KiCad/KiCad.app/Contents/MacOS/kicad-cli, then PATHIf your install is somewhere unusual, or you want to change where files are written, copy config.ini.example to config.ini next to the executable and fill in what you need:
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/kicad-schematics)<a href="https://allmcps.com/mcp/kicad-schematics"><img src="https://allmcps.com/api/badge/kicad-schematics?style=directory" alt="KiCad Schematics on AllMCPs" /></a>