{
  "markdown": "# KiCad Copilot\n\nAI-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.\n\nKiCad Copilot is the KiCad counterpart to [EasyEDA Copilot](https://github.com/biosshot/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.\n\n> **Integrated analysis:** KiCad Copilot downloads a pinned, verified [kicad-happy](https://github.com/aklofas/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.\n\n<p align=\"center\">\n  <a href=\"https://github.com/biosshot/kicad-copilot/releases/latest\">\n    <img src=\"https://img.shields.io/github/v/release/biosshot/kicad-copilot?label=release\" alt=\"Latest release\">\n  </a>\n  <a href=\"https://www.npmjs.com/package/kicad-copilot-mcp\">\n    <img src=\"https://img.shields.io/npm/v/kicad-copilot-mcp\" alt=\"npm package\">\n  </a>\n  <a href=\"https://github.com/biosshot/kicad-copilot/blob/main/LICENSE\">\n    <img src=\"https://img.shields.io/badge/license-MIT-blue\" alt=\"License\">\n  </a>\n  <a href=\"https://discord.gg/AXCGjTDYkq\">\n    <img src=\"https://img.shields.io/badge/Discord-7289DA?logo=discord&logoColor=white\" alt=\"Discord\">\n  </a>\n</p>\n\n## What it does\n\nKiCad Copilot gives AI agents a high-level, file-oriented interface to KiCad:\n\n- **Generate and modify schematics**: add, remove, replace, and connect real components without editing every KiCad object individually.\n- **Rebuild schematic blocks**: reorganize selected components while preserving their electrical connections.\n- **Search components and reusable blocks**: resolve components by MPN or part UUID and insert proven functional circuits.\n- **Work with KiCad projects**: inspect project trees and create projects, standalone schematics, hierarchical sheets, and PCB files.\n- **Preserve recoverable checkpoints**: save, list, and restore exact versions of individual KiCad files.\n- **Synchronize schematic and PCB**: explicitly import schematic changes into the associated board.\n- **Generate PCB placement**: describe board constraints in a compact JavaScript DSL, review PNG/SVG previews, and apply the approved result.\n- **Route locally**: use `eda-copilot-router` with its managed KRT backend without sending routing work to an external service.\n- **Create copper pours**: add simple full-board zones with optional stitching vias.\n- **Use native KiCad tooling**: discover `kicad-cli` for ERC, DRC, previews, exports, manufacturing files, and other native operations.\n\nKiCad 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.\n\n## Examples\n\nThese projects were generated and iterated through KiCad Copilot. The complete KiCad source files are available in the [`examples`](examples) directory.\n\n### ATmega328P development board\n\nA hierarchical ATmega328P design with the MCU core, clock, reset, decoupling, USB-UART power, Nano-compatible headers, and debug connections split across functional sheets.\n\n<table>\n  <tr>\n    <td align=\"center\" width=\"50%\"><a href=\"docs/media/examples/atmega328p/overview.png\"><img src=\"docs/media/examples/atmega328p/overview.png\" alt=\"ATmega328P project overview\" width=\"100%\"></a><br><sub>Project overview</sub></td>\n    <td align=\"center\" width=\"50%\"><a href=\"docs/media/examples/atmega328p/usb-uart-power.png\"><img src=\"docs/media/examples/atmega328p/usb-uart-power.png\" alt=\"ATmega328P USB-UART and power sheet\" width=\"100%\"></a><br><sub>USB-UART and power</sub></td>\n  </tr>\n  <tr>\n    <td align=\"center\" width=\"50%\"><a href=\"docs/media/examples/atmega328p/mcu-core.png\"><img src=\"docs/media/examples/atmega328p/mcu-core.png\" alt=\"ATmega328P MCU core sheet\" width=\"100%\"></a><br><sub>MCU core</sub></td>\n    <td align=\"center\" width=\"50%\"><a href=\"docs/media/examples/atmega328p/nano-headers-debug.png\"><img src=\"docs/media/examples/atmega328p/nano-headers-debug.png\" alt=\"ATmega328P Nano headers and debug sheet\" width=\"100%\"></a><br><sub>Nano headers and debug</sub></td>\n  </tr>\n</table>\n\n[Download the ATmega328P project](examples/atmega328p_dev.zip)\n\n### Geiger high-voltage supply\n\nA larger multi-sheet design covering power input, 3.3 V regulation, the high-voltage generator, flyback stage, feedback, detector, controller, and user interface.\n\n<table>\n  <tr>\n    <td align=\"center\" width=\"50%\"><a href=\"docs/media/examples/geiger-hv/overview.png\"><img src=\"docs/media/examples/geiger-hv/overview.png\" alt=\"Geiger HV project overview\" width=\"100%\"></a><br><sub>Project overview</sub></td>\n    <td align=\"center\" width=\"50%\"><a href=\"docs/media/examples/geiger-hv/power.png\"><img src=\"docs/media/examples/geiger-hv/power.png\" alt=\"Geiger HV power input sheet\" width=\"100%\"></a><br><sub>Power input</sub></td>\n  </tr>\n  <tr>\n    <td align=\"center\" width=\"50%\"><a href=\"docs/media/examples/geiger-hv/high-voltage.png\"><img src=\"docs/media/examples/geiger-hv/high-voltage.png\" alt=\"Geiger high-voltage generator sheet\" width=\"100%\"></a><br><sub>High-voltage generator</sub></td>\n    <td align=\"center\" width=\"50%\"><a href=\"docs/media/examples/geiger-hv/detector.png\"><img src=\"docs/media/examples/geiger-hv/detector.png\" alt=\"Geiger detector sheet\" width=\"100%\"></a><br><sub>Detector</sub></td>\n  </tr>\n  <tr>\n    <td align=\"center\" width=\"50%\"><a href=\"docs/media/examples/geiger-hv/controller-ui.png\"><img src=\"docs/media/examples/geiger-hv/controller-ui.png\" alt=\"Geiger controller UI sheet\" width=\"100%\"></a><br><sub>Controller UI</sub></td>\n    <td align=\"center\" width=\"50%\"><a href=\"docs/media/examples/geiger-hv/power-3v3.png\"><img src=\"docs/media/examples/geiger-hv/power-3v3.png\" alt=\"Geiger 3.3 V power sheet\" width=\"100%\"></a><br><sub>3.3 V power</sub></td>\n  </tr>\n  <tr>\n    <td align=\"center\" width=\"50%\"><a href=\"docs/media/examples/geiger-hv/hv-flyback.png\"><img src=\"docs/media/examples/geiger-hv/hv-flyback.png\" alt=\"Geiger HV flyback sheet\" width=\"100%\"></a><br><sub>HV flyback</sub></td>\n    <td align=\"center\" width=\"50%\"><a href=\"docs/media/examples/geiger-hv/hv-feedback.png\"><img src=\"docs/media/examples/geiger-hv/hv-feedback.png\" alt=\"Geiger HV feedback sheet\" width=\"100%\"></a><br><sub>HV feedback</sub></td>\n  </tr>\n  <tr>\n    <td align=\"center\" colspan=\"2\"><a href=\"docs/media/examples/geiger-hv/user-interface.png\"><img src=\"docs/media/examples/geiger-hv/user-interface.png\" alt=\"Geiger user interface sheet\" width=\"50%\"></a><br><sub>User interface</sub></td>\n  </tr>\n</table>\n\n[Download the Geiger high-voltage project](examples/geiger_hv.zip)\n\n### RP2350 development board\n\nA 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.\n\n<table>\n  <tr>\n    <td align=\"center\" width=\"50%\"><a href=\"docs/media/examples/rp2350/overview.png\"><img src=\"docs/media/examples/rp2350/overview.png\" alt=\"RP2350 project overview\" width=\"100%\"></a><br><sub>Project overview</sub></td>\n    <td align=\"center\" width=\"50%\"><a href=\"docs/media/examples/rp2350/power.png\"><img src=\"docs/media/examples/rp2350/power.png\" alt=\"RP2350 power sheet\" width=\"100%\"></a><br><sub>Power</sub></td>\n  </tr>\n  <tr>\n    <td align=\"center\" width=\"50%\"><a href=\"docs/media/examples/rp2350/rp2350-clock.png\"><img src=\"docs/media/examples/rp2350/rp2350-clock.png\" alt=\"RP2350 and clock sheet\" width=\"100%\"></a><br><sub>RP2350 and clock</sub></td>\n    <td align=\"center\" width=\"50%\"><a href=\"docs/media/examples/rp2350/flash.png\"><img src=\"docs/media/examples/rp2350/flash.png\" alt=\"RP2350 flash sheet\" width=\"100%\"></a><br><sub>Flash</sub></td>\n  </tr>\n  <tr>\n    <td align=\"center\" width=\"50%\"><a href=\"docs/media/examples/rp2350/usb-debug.png\"><img src=\"docs/media/examples/rp2350/usb-debug.png\" alt=\"RP2350 USB and debug sheet\" width=\"100%\"></a><br><sub>USB and debug</sub></td>\n    <td align=\"center\" width=\"50%\"><a href=\"docs/media/examples/rp2350/gpio-headers.png\"><img src=\"docs/media/examples/rp2350/gpio-headers.png\" alt=\"RP2350 GPIO headers sheet\" width=\"100%\"></a><br><sub>GPIO headers</sub></td>\n  </tr>\n</table>\n\n<p align=\"center\">\n  <img src=\"docs/media/examples/rp2350-pcb.png\" alt=\"3D render of the RP2350 PCB placement generated with KiCad Copilot\" width=\"90%\">\n  <br><sub>KiCad 3D render of the generated PCB placement</sub>\n</p>\n\n[Download the RP2350 project](examples/rp2350_debug.zip)\n\n## Installation\n\nAdd the MCP server to your AI agent.\n\nCodex:\n\n```bash\ncodex mcp add kicad-copilot -- npx -y kicad-copilot-mcp\n```\n\nClaude Code:\n\n```bash\nclaude mcp add kicad-copilot -- npx -y kicad-copilot-mcp\n```\n\nGeneric MCP configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"kicad-copilot\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"kicad-copilot-mcp\"]\n    }\n  }\n}\n```\n\nRestart the MCP client after adding the server. KiCad Copilot includes local workflow documentation for the agent; tool descriptions expose its installed path automatically.\n\n## Requirements\n\n- Node.js 20 or newer\n- KiCad 9 or 10\n- Python 3 for managed EasyEDA2KiCad installation and kicad-happy analysis\n\nKiCad 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.\n\nThe first real-component conversion uses an existing EasyEDA2KiCad installation or installs it automatically into a managed local virtual environment.\n\nThe first design-analysis call downloads the pinned kicad-happy release into the shared\nEDA Copilot asset cache after verifying its archive size and SHA-256 hash. Set\n`KICAD_HAPPY_DIR` to use a trusted local checkout instead.\n\n## Schematic workflow\n\nAsk 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:\n\n```text\nOpen D:\\Projects\\sensor\\sensor.kicad_pro and add a 3.3 V regulator block to the Power sheet.\n```\n\nThe 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.\n\nHierarchical 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.\n\n### File synchronization\n\nKiCad Copilot changes files on disk. KiCad does not reliably merge those changes with newer unsaved edits in an already open editor.\n\nBefore a write:\n\n1. Save intentional changes in KiCad.\n2. Avoid keeping the only copy of newer work in the editor buffer.\n\nAfter a write:\n\n1. Reload, revert, or reopen the document in KiCad.\n2. Do not overwrite the updated file with an older editor buffer.\n\n## PCB workflow\n\nPCB placement and routing use an explicit review flow:\n\n1. Import schematic changes into the target `.kicad_pcb` file.\n2. Describe the outline, holes, constraints, regions, and important components in the placement DSL.\n3. Generate a mechanical preview without modifying the PCB.\n4. Review the returned PNG or SVG preview.\n5. Generate and approve the complete placement.\n6. Apply the stored placement to the PCB.\n7. Route the remaining connections locally.\n8. Inspect the result and run final KiCad DRC.\n\nEvery 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.\n\nPlacement 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.\n\n## KiCad CLI\n\n`get_project_info` reports the discovered `kicad-cli` path and version. Agents should use the native CLI whenever KiCad already provides the operation, including:\n\n- schematic ERC and PCB DRC;\n- schematic and PCB PDF/SVG exports;\n- 3D PCB renders;\n- Gerber and drill generation;\n- BOM, position, STEP, STL, GLB, and VRML exports;\n- project jobsets and format upgrades.\n\nSee [KiCad CLI workflow](docs/kicad-cli.md) for ready-to-use commands.\n\n## Design analysis\n\n`analyze_schematic` runs the offline schematic checks and can return focused top-level\noverview, hierarchy, block, connectivity, power, bus, BOM, assembly, and verification data.\n`analyze_pcb` automatically enriches PCB analysis from the associated schematic, runs\ncross-domain checks, and optionally adds thermal, EMC, or trace-proximity analysis. Individual\nboolean flags control each optional report field; compact findings are enabled by default.\nLong-running PCB layout, PCB routing, and lifecycle audits return a prefixed\n`operation_id` such as `pcb-dsl:1a2b3c4d`. Continue any of them with\n`wait_operation`; stop obsolete work with `cancel_operation`.\nThe tools omit internal rule identifiers, runtime metrics, and coordinate-level copper from\nthe LLM response.\n\nSee [design analysis](docs/analysis.md) for the exact compact result contract and workflow.\n\n## Compatibility\n\n| KiCad version | Status    |\n| ------------- | --------- |\n| KiCad 10      | Supported |\n| KiCad 9       | Supported |\n\nOther major versions are rejected because their file formats and CLI behavior are not covered by the current implementation.\n\n## Documentation\n\n- [AI agent instructions](docs/SKILL.md)\n- [Circuit creation and modification](docs/circuit-maker/instructions.md)\n- [Projects and hierarchical sheets](docs/schematic/project-and-sheets.md)\n- [Checkpoints](docs/schematic/checkpoints.md)\n- [PCB workflow](docs/pcb-layout/mcp-workflow.md)\n- [PCB placement rules](docs/pcb-layout/instructions.md)\n- [Placement DSL](docs/pcb-layout/dsl.ts)\n- [KiCad CLI](docs/kicad-cli.md)\n- [Design analysis](docs/analysis.md)\n- [Troubleshooting](docs/troubleshooting.md)\n\n## Development\n\n```bash\ngit clone https://github.com/biosshot/kicad-copilot.git\ncd kicad-copilot\nnpm install\nnpm run check\nnpm start\n```\n\nRun the MCP Inspector with:\n\n```bash\nnpm run inspect\n```\n\nThe repository also contains focused schematic, PCB, and routing test scripts for development against disposable files.\n\n## License\n\nMIT\n",
  "bytes": 14582,
  "sha": "5b83a3255809792fd63f8f1f20641ad081316209f646484234c9bdcc47efd486",
  "repo_slug": "biosshot/kicad-copilot",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_biosshot_kicad_copilot_7c41fbe3/readme"
}