KiCad MCP Pro

Review, check, edit and export KiCad schematics and PCBs from an MCP client

By Osman Aslan (individual) Python Local · stdio Design

65 popularity score ★ 186 ↓ 13k/mo

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude CodeTerminal
claude mcp add kicad-pro -- npx -y kicad-mcp-pro
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "kicad-pro": {
      "command": "npx",
      "args": [
        "-y",
        "kicad-mcp-pro"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "kicad-pro": {
      "command": "npx",
      "args": [
        "-y",
        "kicad-mcp-pro"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "kicad-pro": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "kicad-mcp-pro"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.kicad-pro]
command = "npx"
args = ["-y", "kicad-mcp-pro"]
Gemini CLITerminal
gemini mcp add --scope user kicad-pro npx -- -y kicad-mcp-pro
Local (PyPI)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude CodeTerminal
claude mcp add kicad-pro -- uvx kicad-mcp-pro
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "kicad-pro": {
      "command": "uvx",
      "args": [
        "kicad-mcp-pro"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "kicad-pro": {
      "command": "uvx",
      "args": [
        "kicad-mcp-pro"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "kicad-pro": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "kicad-mcp-pro"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.kicad-pro]
command = "uvx"
args = ["kicad-mcp-pro"]
Gemini CLITerminal
gemini mcp add --scope user kicad-pro uvx -- kicad-mcp-pro

Settings 12

KICAD_MCP_PROJECT_DIR Optional: Absolute path of the KiCad project to work on; can be left out and set at run time with kicad_set_project.
KICAD_MCP_PROFILE Optional: Which tool set is offered: default (24 read-only tools), review, build, release, expert/full, or focused ones such as pcb_only. Default default.
KICAD_MCP_OPERATING_MODE Optional: Risk gate on top of the profile: readonly, write, manufacturing or experimental. Default readonly.
KICAD_MCP_WORKSPACE_ROOT Optional: Directory that all project reads and writes must stay inside.
KICAD_MCP_OUTPUT_DIR Optional: Directory for exported files. For export_manufacturing_package.
KICAD_CLI_PATH Optional: Path to kicad-cli when it is not on PATH; KICAD_MCP_KICAD_CLI is read too. For run_erc, run_drc and exports.
KICAD_MCP_LOG_LEVEL Optional: Log level. Default INFO.
Set together: ipc
KICAD_API_SOCKET Optional: KiCad IPC endpoint (socket path or URI) for live editing; auto-discovered when unset. For live board editing.
KICAD_API_TOKEN secret Optional: KiCad IPC token for live editing. For live board editing.
Set together: http
KICAD_MCP_TRANSPORT Optional: stdio, http, sse or streamable-http. Default stdio.
KICAD_MCP_HOST Optional: Address the HTTP transport binds to; beyond loopback it needs KICAD_MCP_AUTH_TOKEN. Default 127.0.0.1.
KICAD_MCP_AUTH_TOKEN secret Optional: Bearer token of at least 32 characters, required when HTTP listens beyond loopback.

What it does

KiCad MCP Pro is a local server for KiCad electronics projects. It reads schematics and boards, runs KiCad's own ERC and DRC through kicad-cli, checks a board for manufacturability, prices a bill of materials and exports Gerbers, drill and placement files as one package. With write mode turned on it can also change a schematic through a plan you preview, apply, verify and roll back, edit a board live in a running KiCad over its IPC interface, and keep git checkpoints of the project.

Two switches decide what a client gets. The profile picks which tools are offered, and the operating mode decides which of those may run. Unless you change them, you get the default profile in readonly mode, which is 24 review tools. The project's own snapshot of its profiles counts 388 tools in the expert profile, so most of the catalog stays hidden until you ask for it (docs/evidence/progressive-disclosure-profile-snapshot.json). The build profile pairs with write mode and release pairs with manufacturing mode, and each of those also offers 24 tools.

The quickstart command finds a supported agent on your machine, writes its MCP entry in readonly mode with a backup of the old settings, and tests the saved command over stdio. There is also an optional cloud service run by the author at kicad-mcp-pro.oaslananka.dev, which you sign in to and pair a computer with through the cloud subcommands (src/kicad_mcp/cloud_user_cli.py). Local use never needs it.

The Python package is the server. The npm package only starts the matching Python version through uvx. It talks over stdio unless you ask for Streamable HTTP, and if you expose HTTP beyond loopback the code refuses to start without a bearer token of at least 32 characters (src/kicad_mcp/config.py).

What it needs

RuntimePython 3.13+
Runs onmacOS, Windows, Linux
Also
  • uv, with uvx on PATH
  • KiCad 10.0.x with kicad-cli on PATH
  • Node.js 22.14.0 or newer for the npm launcher only
  • A running KiCad with its IPC API for live board edits

uv can install the needed Python version itself. The npm launcher does not install uv or the Python package, so uv must already be on PATH. KiCad 10.0.x is the main supported line (10.0.7 is the last verified patch). KiCad 8 files can only be read and migrated, and KiCad 9 support was dropped in 3.9.0. HTTP transport needs the [http] extra when installed with pip.

Limits

  • Limit Signal-integrity, power-integrity, EMC and thermal tools give closed-form estimates of roughly 5-10% accuracy, not field-solver results
  • Limit Its makers say outputs are a first pass and need human review before fabrication
  • Read only Starts in readonly mode with 24 tools; edits need write mode and exports need manufacturing mode
  • Limit Live board editing tools are hidden when KiCad's IPC endpoint cannot be reached
  • Not covered One project is active per server process, so one HTTP server should not be shared between users or projects
  • Platform KiCad 9 is not supported, and KiCad 8 files can only be read and migrated
  • Limit Part pricing uses the public JLCPCB catalog unless Nexar, DigiKey or Mouser credentials are set
  • Early release KiCad 11 headless IPC is a preview with no CI coverage
  • Limit Its client configuration examples set the pcb_only profile, not the default one

Its signal-integrity, power-integrity, EMC and thermal tools give closed-form estimates (the docs say roughly 5-10% accuracy), not field-solver results, and its makers say outputs need human review before fabrication. Live editing tools are hidden when KiCad's IPC is not reachable. Only one project is active per server process, so one HTTP server should not be shared between users or projects. Part pricing uses the public JLCPCB catalog unless Nexar, DigiKey or Mouser credentials are set. Its own client examples set the pcb_only profile, not the default one.

Who it suits

Hardware engineers who already design in KiCad 10 and want an assistant to review a board, run ERC and DRC, check manufacturability and prepare fabrication files on their own machine. Because it starts read-only, it can review a project without touching the files, and write or manufacturing mode has to be switched on by hand. It is a community project and KiCad does not publish it. Teams on other EDA tools, or still on KiCad 9 or earlier, should look elsewhere.

Tools 48 of 388

38 only read, 7 change things, 3 can delete or overwrite. A ? marks an optional parameter.

kicad_get_server_info
Reports the active profile, operating mode, KiCad IPC state and which tools each mode allows
kicad_get_version
Reports the KiCad and server versions in use
kicad_get_project_info
Summarises the active KiCad project and its files
kicad_set_project
Switches the active project directory for later calls
kicad_list_tool_categories
Lists the tool categories available beyond the current profile
kicad_get_tools_in_category
Lists the tools inside one category
kicad_capability_parity
Reports how much of KiCad's scriptable surface the server covers, per workflow area
run_erc
Runs KiCad's electrical rules check on the schematic
run_drc
Runs KiCad's design rules check on the board
validate_design
Runs a combined validation pass over schematic and board
validate_footprints_vs_schematic
Checks that board footprints match the schematic symbols
project_quality_gate
Gives a pass or fail summary of the project's checks
project_design_workflow
Describes the recommended next steps of the design flow
project_get_next_action
Suggests the next action for the current project state
project_get_design_spec
Reads the project's stored design specification
project_validate_design_spec
Checks a design specification for problems
project_assess_edit_impact
Estimates what a proposed edit would affect before it is applied
sch_get_symbols
Lists the symbols placed in the schematicsheet?: stringsheet_file?: string
sch_get_connectivity_graph
Returns the schematic's nets and pin connections as a graph
sch_get_bounding_boxes
Returns the positions and extents of schematic items
sch_visual_qa
Renders the schematic for a visual review
sch_plan_from_spec
Builds a schematic change plan from a specification
sch_preview_plan
Shows what a schematic change plan would do without saving
sch_apply_plan changes
Applies a schematic change plan to the files
sch_verify_plan
Checks that an applied schematic plan produced the expected result
sch_rollback_plan changes
Undoes an applied schematic plan
pcb_get_board_summary
Summarises the board: size, layers, footprints and nets
pcb_get_design_rules
Reads the board's design rules
pcb_get_stackup
Reads the board's layer stackup
pcb_get_tracks
Lists the routed tracks on the board
pcb_get_vias
Lists the vias on the board
pcb_visual_qa
Renders the board for a visual review
get_board_stats
Returns counts and statistics for the board
pcb_begin_commit changes
Opens a grouped set of live board edits in a running KiCad
pcb_push_commit changes
Commits a grouped set of live board edits
pcb_drop_commit changes
Discards a grouped set of live board edits
pcb_delete_items deletes
Deletes several items from the boarditem_ids: array
pcb_delete_object deletes
Deletes one item from the board
pcb_revert deletes
Reverts the board to its last saved state
vcs_commit_checkpoint changes
Saves a git checkpoint of the project
vcs_list_checkpoints
Lists saved project checkpoints
vcs_diff_with_checkpoint
Shows what changed since a checkpoint
lib_get_bom_with_pricing
Builds a bill of materials with part pricing from a parts catalog
lib_verify_component_contract
Checks components against their expected footprint and part data
check_design_for_manufacture
Runs design-for-manufacture checks on the board
dfm_run_manufacturer_check
Checks the board against a named manufacturer's limits
manufacturing_quality_gate
Gives a pass or fail verdict before manufacturing handoff
export_manufacturing_package changes
Exports Gerbers, drill files, BOM and placement files as a package

Similar servers