Skip to main content
Glama
mcp-kicad-cli

mcp-kicad-cli

by SpectraSynq

mcp-kicad-cli

Model Context Protocol server for KiCad CLI automation.

mcp-kicad-cli exposes KiCad's command-line tooling to MCP clients for ERC, DRC, BOM export, netlist export, Gerbers, drill files, STEP, IPC-2581, and GLB output. It is local-first: no cloud API key is required, but KiCad must be installed on the machine running the server.

NOTE

This is an alpha extraction from the SpectraSynq K1 hardware automation stack. It wraps KiCad CLI commands; it does not bundle KiCad or board design files.

Quickstart

python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e ".[dev]"
pytest

Verify KiCad CLI is available:

kicad-cli version

Run the server:

export KICAD_CLI="$(command -v kicad-cli)"
mcp-kicad-cli

Related MCP server: KiCad Agentic MCP

Honest terminal demo

After install, this copy-paste check exercises the package through the same command runner used by the MCP tool:

python - <<'PY'
from mcp_kicad_cli.server import version
print(version()["stdout"].strip())
PY

Expected output is your installed KiCad CLI version, for example 9.0.6.

MCP client config

After installing the package in the Python environment used by your MCP client, add:

{
  "mcpServers": {
    "kicad-cli": {
      "command": "mcp-kicad-cli",
      "args": [],
      "env": {
        "KICAD_CLI": "/opt/homebrew/bin/kicad-cli"
      }
    }
  }
}

See examples/claude_desktop_config.json.

Tools

  • version() — return the installed KiCad CLI version.

  • sch_erc(schematic, out="erc.json", format="json", exit_code_violations=True) — run ERC on a .kicad_sch.

  • sch_export_bom(schematic, out_csv="bom.csv", fields="*") — export a CSV BOM.

  • sch_export_netlist(schematic, out_net="project.net", fmt="kicadsexpr") — export a schematic netlist.

  • pcb_drc(board, out="drc.json", format="json", exit_code_violations=True) — run DRC on a .kicad_pcb.

  • pcb_export_gerbers(board, out_dir="fab/gerbers") — export Gerbers.

  • pcb_export_drill(board, out_dir="fab/drill") — export drill files.

  • pcb_export_step(board, out_file="mechanical/board.step") — export STEP.

  • pcb_export_ipc2581(board, out_file="fab/board.ipc") — export IPC-2581.

  • pcb_export_glb(board, out_file="mechanical/board.glb") — export GLB.

KiCad returns exit code 5 when violations are found; DRC/ERC wrappers treat 0 and 5 as command-level success and report the violation counts in summary when JSON output exists.

Provenance

Extracted from SpectraSynq/K1.hardware commit 9e0b80beec0840162d3c3946f38c5c83af259790; see docs/provenance.md.

This repo is now the canonical home for the KiCad CLI MCP server.

License

Apache-2.0 — see LICENSE.

Available Tools

10 tools
pcb_drcC

Run DRC on a .kicad_pcb file.

Inputs: board (required), out, format, exit_code_violations. Returns: object

pcb_export_drillC

Export drill files.

Inputs: board (required), out_dir. Returns: object

pcb_export_gerbersB

Export one-file-per-layer Gerbers.

Inputs: board (required), out_dir. Returns: object

pcb_export_glbC

Export a GLB 3D model.

Inputs: board (required), out_file. Returns: object

pcb_export_ipc2581C

Export IPC-2581 manufacturing data.

Inputs: board (required), out_file. Returns: object

pcb_export_stepC

Export a STEP 3D model.

Inputs: board (required), out_file. Returns: object

sch_ercC

Run ERC on a .kicad_sch file.

Inputs: schematic (required), out, format, exit_code_violations. Returns: object

sch_export_bomC

Export a CSV BOM from a KiCad schematic.

Inputs: schematic (required), fields, out_csv. Returns: object

sch_export_netlistC

Export a schematic netlist.

Inputs: schematic (required), fmt, out_net. Returns: object

versionA

Return the installed KiCad CLI version.

Inputs: no named parameters. Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 10 tools

    Disambiguation5/5

    Each tool has a unique purpose: schematic tools are prefixed with `sch_`, PCB tools with `pcb_`, and export targets (Gerbers, drill, STEP, IPC2581, GLB) are clearly distinct. No two tools could be confused.

    Naming Consistency5/5

    Tool names follow a consistent `sch_`/`pcb_` prefix plus verb and optional object pattern, using lowercase with underscores. The `version` tool is the only one without a prefix, but it is a standalone command and does not break the overall consistency.

    Tool Count5/5

    10 tools is well-scoped for a KiCad CLI server, covering the essential schematic and PCB checks and exports without unnecessary bloat. Each tool serves a distinct and useful function.

    Completeness4/5

    The set covers core KiCad workflows: ERC/DRC checks, BOM/netlist exports, and common manufacturing outputs (Gerbers, drill, STEP, IPC2581, GLB). Minor gaps like schematic PDF or SVG export are possible additions, but the existing surface is comprehensive for typical use.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      A
      maintenance
      MCP servers for KiCad schematic, PCB, symbol, footprint, and project automation, enabling AI-assisted electronic design via tools for read/write, analysis, and exports.
      109
      349 PyPI
      16
      GPL 3.0
    • A
      license
      Not graded
      quality
      B
      maintenance
      Native KiCad 10 plugin exposing 202 MCP tools for schematics, PCB layout, routing, ERC/DRC and manufacturing output. KiCad itself verifies the result through kicad-cli.
      13
      AGPL 3.0
    • A
      license
      B
      quality
      C
      maintenance
      Provides schematic/PCB analysis, authoring, and SPICE simulation through MCP, enabling direct KiCad file manipulation and verification without requiring KiCad for reading.
      18
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables MCP-compatible assistants to inspect and edit the open PCB in KiCad, including reading board info, footprints, nets, tracks, selection, and BOM data, as well as moving footprints, adding tracks and text, updating BOM fields, and saving the board.
      13
      MIT