Labsco
MCP SERVER

KiCad MCP Server

by lamaalrajih

Ask about your KiCad boards — design rule violations, bill of materials, what is connected to what — without opening the project.

3D, CAD & Game Engines
Summary
You can name a project the way you think about it, not by file path.

Because the server discovers projects from the search paths you configure, "check my Arduino shield for violations" resolves without a .kicad_pro path, and DRC results are kept over time so progress on a violation list is visible rather than re-counted by hand.

What it is

A server that reads your KiCad projects and answers questions about them: project discovery, design rule checks, netlists, bills of materials, board thumbnails and circuit-pattern recognition.

What you get
  • run_drc_check — design rule checking through the KiCad CLI, with history so you can compare against last week's run
  • analyze_bom and export_bom_csv — analyse the components in a project and export a bill of materials
  • open_project — launch KiCad on a specific project
  • Netlist extraction from a schematic, so you can ask what a given component connects to
  • Circuit pattern recognition that names the blocks in your schematic — which power-supply topologies you used, for example
  • PCB thumbnails and component-density analysis
  • Read-only resources under kicad://, including kicad://projects and kicad://drc/project_path
Requirements

KiCad 9.0 or higher, Python 3.10 or higher, and uv 0.8.0 or higher. Set KICAD_SEARCH_PATHS in a .env file to the directories holding your projects; use absolute paths, since the working directory of a client-launched server is undefined.

Setup effort

One command — uvx kicad-mcp