{"id":"16bb9d21-76ea-46a6-8e93-106c7af40390","slug":"eda-review","kind":"mcp","name":"eda-review","summary":"AI-assisted EDA review for KiCad and Altium: schematic/layout understanding, BOM sourcing, JLCPCB DFM checks, fab exports, ERC/DRC, and visual review workflows.","owner":"JonathanLiu1401","repoUrl":"https://github.com/JonathanLiu1401/eda-review","license":"MIT","licenseTier":"permissive","trust":"community","stars":2,"match":null,"fewStars":true,"format":"mcp","createdAt":"2026-06-15T23:32:13.000Z","addedAt":"2026-10-21T06:14:57.934Z","logoUrl":"https://avatars.githubusercontent.com/u/56282982?v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["memory-knowledge"],"tags":["ai","altium","bom","dfm","eda","electronics","gerber","jlcpcb"],"runtime":"python","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-26T21:42:43.189Z","sample":false,"url":"https://conduits.dev/tools/eda-review","language":"Python","transports":["stdio"],"install":{"pypi":"kicad-mcp"},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# eda-review\n\nAI-assisted EDA review for PCB teams that need more than a chat bot looking at screenshots.\n\n`eda-review` gives an agent structured access to the schematic, PCB layout, BOM, design rules,\nstackup, rendered board views, and manufacturing outputs. It started as a fork of\n[`lamaalrajih/kicad-mcp`](https://github.com/lamaalrajih/kicad-mcp), then grew into a\nreview-first toolchain for KiCad and Altium boards.\n\nThe goal is practical: catch electrical, layout, BOM, and fabrication problems before an order\ngoes to the manufacturer.\n\n## What eda-review can do\n\n- **Understand schematics and layouts together.** Inspect projects, export netlists, compare\n  schematic-to-PCB parity, run ERC/DRC, and render schematic, board, copper, and 3D views for\n  visual review.\n- **Manage BOM risk.** Extract MPNs from designs, group references, flag missing or placeholder\n  part data, check JLCPCB/LCSC and DigiKey availability, and search JLCPCB alternatives.\n- **Review for manufacturing.** Check board geometry, configured rules, stackup, via limits, and\n  copper constraints against JLCPCB-focused capabilities. Run fab readiness checks before handoff.\n- **Generate handoff files.** Export Gerbers, drill files, pick-and-place/CPL data, and STEP from\n  KiCad through official KiCad export paths.\n- **Support KiCad and Altium workflows.** KiCad support is direct through `kicad-cli` and project\n  files. Altium support uses the `eda-agent` bridge to turn live Altium data into the same shared\n  review pipeline.\n- **Keep edits guarded.** Deterministic edits use dry-run diffs first, require explicit `--apply`,\n  and re-check loadability or rules where the backend supports it.\n\n## Why this exists\n\nLLMs are useful reviewers when they have evidence. They are risky when they guess.\n\n`eda-review` puts deterministic tooling in front of the agent:\n\n- KiCad CLI output for ERC, DRC, rendering, netlists, BOMs, and fab exports.\n- Parsed schematic and PCB facts for rule checks and layout reasoning.\n- Distributor data for live sourcing and stock validation.\n- EDA-neutral manufacturing facts that both KiCad and Altium backends can feed.\n- Rendered images the agent can actually inspect before commenting on placement, routing, copper\n  pours, silkscreen, assembly orientation, or 3D seating.\n\nThe result is a review workflow that can talk about the board from both sides: what the schematic\nintends and what the physical layout will send to a fab.\n\n## Backend support\n\n| Backend     | Status              | What it covers                                                                                                                         |\n| ----------- | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |\n| KiCad       | Primary path        | `.kicad_pro`, `.kicad_sch`, `.kicad_pcb`, ERC/DRC, netlist, rendered review, BOM checks, JLCPCB DFM checks, guarded edits, fab exports |\n| Altium      | Experimental bridge | Live Altium data through `eda-agent`, BOM sourcing, rule/stackup/geometry normalization, JLCPCB manufacturability grading              |\n| Shared core | Stable foundation   | Distributor stock checks, BOM sourcing sweeps, JLCPCB capability grading, EDA-neutral board facts                                      |\n\nAltium support depends on a running Altium session and the third-party\n[`eda-agent`](https://github.com/salitronic/eda-agent) MCP bridge. Before trusting an Altium review,\nrun the setup spike in [docs/altium_eda_agent_setup.md](docs/altium_eda_agent_setup.md) so the\nbridge output is confirmed against your Altium version.\n\n## Quick start\n\nInstall KiCad 9 or newer, then install the Python dependencies:\n\n```powershell\ngit clone https://github.com/JonathanLiu1401/eda-review.git\ncd eda-review\npy -m pip install -r requirements.txt\n```\n\nKiCad ships `kicad-cli`. If it is not on your `PATH`, set `KICAD_CLI_PATH` to the full executable\npath.\n\nRun a review:\n\n```powershell\npy lib\\kicad_review_cli.py inspect C:\\path\\to\\board\\board.kicad_pro\npy lib\\kicad_review_cli.py review  C:\\path\\to\\board\\board.kicad_pro --scope all\npy lib\\kicad_review_cli.py erc     C:\\path\\to\\board\\board.kicad_pro\npy lib\\kicad_review_cli.py drc     C:\\path\\to\\board\\board.kicad_pro\npy lib\\kicad_review_cli.py render  C:\\path\\to\\board\\board.kicad_pro --what all\n```\n\nRun BOM and manufacturing checks:\n\n```powershell\npy lib\\kicad_review_cli.py check-bom     C:\\path\\to\\board\\board.kicad_pro\npy lib\\kicad_review_cli.py check-stock   RC0603FR-0710KL\npy lib\\kicad_review_cli.py search-parts  \"10k 0603 resistor\"\npy lib\\kicad_review_cli.py jlcpcb-check  C:\\path\\to\\board\\board.kicad_pro\npy lib\\kicad_review_cli.py fab-check     C:\\path\\to\\board\\board.kicad_pro\npy lib\\kicad_review_cli.py fab-export    C:\\path\\to\\board\\board.kicad_pro --out C:\\path\\to\\fab\n```\n\n`review` writes an evidence package under the board's `.kicad-review/` directory, including a\nMarkdown report, JSON facts, and render paths for the agent to inspect.\n\n## Main CLI commands\n\n| Command                | Purpose                                                                                |\n| ---------------------- | -------------------------------------------------------------------------------------- |\n| `inspect`              | Summarize project files, board layers, track widths, vias, footprints, and net classes |\n| `review`               | Run the full evidence-building review workflow                                         |\n| `erc` / `drc`          | Run KiCad electrical and design rule checks and summarize violations                   |\n| `render`               | Export schematic, board, copper, and 3D views                                          |\n| `netlist`              | Export a KiCad netlist                                                                 |\n| `check-bom`            | Check every MPN in the schematic BOM against JLCPCB/LCSC and DigiKey                   |\n| `check-stock`          | Check one part number or LCSC code for live availability                               |\n| `search-parts`         | Search JLCPCB/LCSC for stock-ranked candidate parts                                    |\n| `jlcpcb-check`         | Compare the board against JLCPCB-focused capability and stackup checks                 |\n| `jlcpcb-apply-rules`   | Dry-run or apply JLCPCB minimum design rules to a KiCad project                        |\n| `jlcpcb-apply-stackup` | Dry-run or apply a JLCPCB reference stackup to a KiCad PCB                             |\n| `fab-check`            | Check fabrication readiness and produce a fab package for inspection                   |\n| `fab-export`           | Export Gerbers, drill, pick-and-place, and STEP files                                  |\n| `set-property`         | Dry-run or apply a targeted component property change, such as an MPN update           |\n\n## Use as an MCP server\n\nThe CLI is the most reliable path for automated review, but the repo still includes the upstream\nMCP server interface. Register it with an MCP-capable client:\n\n```powershell\nclaude mcp add kicad -- py C:\\path\\to\\eda-review\\main.py\n```\n\nThis exposes KiCad project, schematic, PCB, DRC, BOM, rendering, and review tools through MCP.\n\n## Repository layout\n\n```text\neda-review/\n  eda_core/       Shared BOM, stock, JLCPCB, and board-fact logic\n  kicad_mcp/      KiCad backend, MCP server, parsing, review, edit, and fab code\n  altium_review/  Altium adapter and shared review entry points\n  lib/            CLI entry point used by agents and CI\n  skills/         Agent workflow instructions for KiCad and Altium design review\n  commands/       Claude Code command wrappers\n  docs/           Setup notes, design notes, and Altium bridge guidance\n  tests/          Unit and integration coverage for review, BOM, DFM, fab, and edits\n```\n\n## Development\n\nInstall the test dependency, then run the suite:\n\n```powershell\npy -m pip install pytest\npy -m pytest -q\n```\n\nSome integration tests need KiCad and a real project path. The unit tests cover the shared\nmanufacturing logic, distributor normalization, Altium adapter, report model, and guarded edits\nwithout requiring KiCad or Altium.\n\n## Safety model\n\n`eda-review` is intentionally conservative:\n\n- Use official EDA export/check functions when they exist.\n- Treat KiCad and Altium project files as the ground truth.\n- Prefer dry-run diffs before edits.\n- Keep routing and placement as review guidance unless a deterministic backend operation is\n  explicitly requested.\n- Verify generated fab files before treating them as manufacturing-ready.\n\n## License\n\nMIT. This project builds on the MIT-licensed KiCad MCP work by\n[`lamaalrajih/kicad-mcp`](https://github.com/lamaalrajih/kicad-mcp).\n"}