KiCad Copilot

io.github.biosshotPublished by GitHub account biosshotv0.1.0Updated Oct 24, 2026

File-oriented MCP server for KiCad schematics, PCB placement, routing, and pours.

VerifiedSTDIODesktop onlyDeveloper ToolsMedia & Design

Overview

AI-generated overview

Lets an AI assistant create and modify KiCad schematics, place and route PCBs, and run KiCad CLI checks on local project files.

What you can do
KiCad Copilot gives an agent a file-oriented interface to KiCad projects: adding, removing, replacing, and connecting real components in schematics, rebuilding blocks while preserving connections, and creating projects, hierarchical sheets, and PCB files. It searches components by MPN or part UUID, saves and restores file checkpoints, imports schematic changes into a board, generates PCB placement from a JavaScript DSL with PNG/SVG previews, routes boards locally, and adds copper pours. It also discovers kicad-cli for ERC, DRC, exports, renders, and manufacturing files, and offers analyze_schematic and analyze_pcb for compact design findings.
When to use it
Use it when you want an assistant to draft or edit KiCad schematics and boards from natural language, iterate on placement and routing, or run ERC, DRC, and export steps on existing projects. It suits hierarchical, file-based KiCad work rather than in-editor plugin workflows.
Requirements
Runs locally over stdio via npx (npm package kicad-copilot-mcp). Needs Node.js 20 or newer, KiCad 9 or 10, and Python 3 for managed EasyEDA2KiCad installation and kicad-happy analysis. kicad-cli is located in PATH or standard install locations; KICAD_CLI_PATH overrides it. Optional KICAD_HAPPY_DIR points to a trusted local checkout. No accounts or API keys are declared.
Before you install
It writes to .kicad_pro, .kicad_sch, and .kicad_pcb files on disk, and KiCad does not reliably merge those changes with unsaved editor buffers, so save and reload carefully. On first use of analyze_schematic or analyze_pcb it downloads a pinned kicad-happy release after verifying size and SHA-256; the first real-component conversion may install EasyEDA2KiCad into a managed local virtual environment. Review placement previews before applying them.

Installation

In SourceWeft

  1. Open KiCad Copilot in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

KiCad Copilot

AI-powered MCP server for KiCad. Create and modify schematics from natural language, search real components, work with hierarchical projects, generate PCB placement, route boards locally, and create simple copper pours directly through an AI agent.

KiCad Copilot is the KiCad counterpart to EasyEDA Copilot. It provides the same core circuit-generation and PCB automation capabilities—and goes further with file-oriented hierarchical projects, recoverable checkpoints, native kicad-cli integration, and fully local PCB routing.

Integrated analysis: KiCad Copilot downloads a pinned, verified kicad-happy v2.2.0 release on first use of analyze_schematic or analyze_pcb. The MCP tools return compact, token-efficient actionable findings and focused design data.

[Latest release] [npm package] [License] [Discord]

What it does

KiCad Copilot gives AI agents a high-level, file-oriented interface to KiCad:

  • Generate and modify schematics: add, remove, replace, and connect real components without editing every KiCad object individually.
  • Rebuild schematic blocks: reorganize selected components while preserving their electrical connections.
  • Search components and reusable blocks: resolve components by MPN or part UUID and insert proven functional circuits.
  • Work with KiCad projects: inspect project trees and create projects, standalone schematics, hierarchical sheets, and PCB files.
  • Preserve recoverable checkpoints: save, list, and restore exact versions of individual KiCad files.
  • Synchronize schematic and PCB: explicitly import schematic changes into the associated board.
  • Generate PCB placement: describe board constraints in a compact JavaScript DSL, review PNG/SVG previews, and apply the approved result.
  • Route locally: use eda-copilot-router with its managed KRT backend without sending routing work to an external service.
  • Create copper pours: add simple full-board zones with optional stitching vias.
  • Use native KiCad tooling: discover kicad-cli for ERC, DRC, previews, exports, manufacturing files, and other native operations.

KiCad Copilot works directly with saved .kicad_pro, .kicad_sch, and .kicad_pcb files. It does not require KiCad IPC or a plugin installed inside KiCad.

Examples

These projects were generated and iterated through KiCad Copilot. The complete KiCad source files are available in the examples directory.

ATmega328P development board

A hierarchical ATmega328P design with the MCU core, clock, reset, decoupling, USB-UART power, Nano-compatible headers, and debug connections split across functional sheets.

Download the ATmega328P project

Geiger high-voltage supply

A larger multi-sheet design covering power input, 3.3 V regulation, the high-voltage generator, flyback stage, feedback, detector, controller, and user interface.

Download the Geiger high-voltage project

RP2350 development board

A hierarchical RP2350 design with power, clock, flash, USB/debug, GPIO headers, and an AI-generated PCB placement. The example includes the placement DSL and an editable KiCad board.

[3D render of the RP2350 PCB placement generated with KiCad Copilot]
KiCad 3D render of the generated PCB placement

Download the RP2350 project

Installation

Add the MCP server to your AI agent.

Codex:

bash
codex mcp add kicad-copilot -- npx -y kicad-copilot-mcp

Claude Code:

bash
claude mcp add kicad-copilot -- npx -y kicad-copilot-mcp

Generic MCP configuration:

json
{  "mcpServers": {    "kicad-copilot": {      "command": "npx",      "args": ["-y", "kicad-copilot-mcp"]    }  }}

Restart the MCP client after adding the server. KiCad Copilot includes local workflow documentation for the agent; tool descriptions expose its installed path automatically.

Requirements

  • Node.js 20 or newer
  • KiCad 9 or 10
  • Python 3 for managed EasyEDA2KiCad installation and kicad-happy analysis

KiCad Copilot searches for kicad-cli in PATH and standard KiCad installation locations, preferring KiCad 10 when multiple supported versions are installed. Set KICAD_CLI_PATH when the executable is stored elsewhere.

The first real-component conversion uses an existing EasyEDA2KiCad installation or installs it automatically into a managed local virtual environment.

The first design-analysis call downloads the pinned kicad-happy release into the shared EDA Copilot asset cache after verifying its archive size and SHA-256 hash. Set KICAD_HAPPY_DIR to use a trusted local checkout instead.

Schematic workflow

Ask the agent to inspect a KiCad project or give it the path to a target .kicad_sch file. A typical request can be as simple as:

text
Open D:\Projects\sensor\sensor.kicad_pro and add a 3.3 V regulator block to the Power sheet.

The agent can inspect the project tree, read the target sheet as compact component/net JSON, find exact components, assemble the requested change, and validate the saved result through KiCad.

Hierarchical projects remain file-oriented: each physical schematic sheet is modified through its own .kicad_sch path, while project-wide context is used where the operation requires the complete signal map.

File synchronization

KiCad Copilot changes files on disk. KiCad does not reliably merge those changes with newer unsaved edits in an already open editor.

Before a write:

  1. Save intentional changes in KiCad.
  2. Avoid keeping the only copy of newer work in the editor buffer.

After a write:

  1. Reload, revert, or reopen the document in KiCad.
  2. Do not overwrite the updated file with an older editor buffer.

PCB workflow

PCB placement and routing use an explicit review flow:

  1. Import schematic changes into the target .kicad_pcb file.
  2. Describe the outline, holes, constraints, regions, and important components in the placement DSL.
  3. Generate a mechanical preview without modifying the PCB.
  4. Review the returned PNG or SVG preview.
  5. Generate and approve the complete placement.
  6. Apply the stored placement to the PCB.
  7. Route the remaining connections locally.
  8. Inspect the result and run final KiCad DRC.

Every placement response containing a PCB is checkpointed and applied atomically, including preview and issue-bearing results. The agent inspects the returned preview or PCB analysis and can roll back through checkpoints when needed; no separate assembly tool call is required.

Placement and router DSL execution remain separate operations. This keeps schematic-to-PCB synchronization explicit and makes it possible to clear or rebuild routing without deleting placed components.

KiCad CLI

get_project_info reports the discovered kicad-cli path and version. Agents should use the native CLI whenever KiCad already provides the operation, including:

  • schematic ERC and PCB DRC;
  • schematic and PCB PDF/SVG exports;
  • 3D PCB renders;
  • Gerber and drill generation;
  • BOM, position, STEP, STL, GLB, and VRML exports;
  • project jobsets and format upgrades.

See KiCad CLI workflow for ready-to-use commands.

Design analysis

analyze_schematic runs the offline schematic checks and can return focused top-level overview, hierarchy, block, connectivity, power, bus, BOM, assembly, and verification data. analyze_pcb automatically enriches PCB analysis from the associated schematic, runs cross-domain checks, and optionally adds thermal, EMC, or trace-proximity analysis. Individual boolean flags control each optional report field; compact findings are enabled by default. Long-running PCB layout, PCB routing, and lifecycle audits return a prefixed operation_id such as pcb-dsl:1a2b3c4d. Continue any of them with wait_operation; stop obsolete work with cancel_operation. The tools omit internal rule identifiers, runtime metrics, and coordinate-level copper from the LLM response.

See design analysis for the exact compact result contract and workflow.

Compatibility

KiCad versionStatus
KiCad 10Supported
KiCad 9Supported

Other major versions are rejected because their file formats and CLI behavior are not covered by the current implementation.

Documentation

Development

bash
git clone https://github.com/biosshot/kicad-copilot.gitcd kicad-copilotnpm installnpm run checknpm start

Run the MCP Inspector with:

bash
npm run inspect

The repository also contains focused schematic, PCB, and routing test scripts for development against disposable files.

License

MIT

Source: README.md at commit 505081d

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts