No description
Find a file
2026-09-13 13:48:40 +08:00
.github/workflows feat: add PyPI publishing workflow 2026-04-11 00:56:34 +08:00
docs docs: add connection modes doc and Chinese README, refresh README 2026-09-13 13:48:40 +08:00
kicad_mcp feat: auto-discover KiCad SDK endpoints and add runtime connection switching 2026-09-13 13:48:37 +08:00
.env.example feat(env): update default OpenAI model to gpt-5-mini 2025-11-14 09:54:36 +08:00
.gitignore feat: add logging functionality to KiCad MCP server 2025-12-26 02:23:33 +08:00
.python-version Revert "chore: remove .python-version file" 2026-04-11 00:43:21 +08:00
LICENSE chore: update copyright year and project metadata 2026-04-11 02:02:10 +08:00
pyproject.toml chore(release): bump version to 0.1.6 2026-04-20 18:48:05 +08:00
README.md docs: add connection modes doc and Chinese README, refresh README 2026-09-13 13:48:40 +08:00
README.zh-cn.md docs: add connection modes doc and Chinese README, refresh README 2026-09-13 13:48:40 +08:00
uv.lock feat: auto-discover KiCad SDK endpoints and add runtime connection switching 2026-09-13 13:48:37 +08:00

kicad-mcp

KiCad MCP integrated with the KiCad IPC API.

English | 简体中文

PyPI version License


Features

  • Schematic & PCB automation: place symbols, draw wires and buses, create labels, edit footprints, tracks and vias — all through natural language.
  • Endpoint auto-discovery: on startup the server scans running KiCad processes and connects to the first reachable KiCad SDK IPC endpoint matching the editor mode (--editor-type).
  • Runtime connection switching: if KiCad restarts or a tool returns None, use listKicadConnections to discover alive endpoints and switchKicadConnection to reconnect without restarting the server.
  • Graceful startup: when no KiCad endpoint is reachable yet, the server still starts and the connection tools stay available.

Usage

Run the latest release

You can run the MCP server directly without installing it using uvx:

uvx kicad-mcp --editor-type schematic

This will download and execute the latest version from PyPI in an isolated environment.


MCP client configuration

  1. Claude Code
{
	"mcpServers": {
		"Kicad-Schematic-MCP": {
			"type": "stdio",
			"command": "uvx",
			"args": [
				"kicad-mcp",
				"--editor-type",
				"schematic"
			]
		},
		"Kicad-PCB-MCP": {
			"type": "stdio",
			"command": "uvx",
			"args": [
				"kicad-mcp",
				"--editor-type",
				"pcb"
			]
		}
	},
	"inputs": []
}
  1. VSCode

Add the following configuration to your MCP client:

{
	"servers": {
		"Kicad-Schematic-MCP": {
			"type": "stdio",
			"command": "uvx",
			"args": [
				"kicad-mcp",
				"--editor-type",
				"schematic"
			]
		},
		"Kicad-PCB-MCP": {
			"type": "stdio",
			"command": "uvx",
			"args": [
				"kicad-mcp",
				"--editor-type",
				"pcb"
			]
		}
	},
	"inputs": []
}

  1. Cherry Studio

Cherry Studio Setup

Options

--editor-type supports:

  • schematic
  • pcb
  • symbol
  • footprint

See docs/connection-modes.md for the tools available in each mode and how endpoint auto-discovery, verification, and runtime switching work (listKicadConnections / switchKicadConnection).


Development

1. Clone the repository

git clone <your-repo-url>
cd kicad-mcp

2. Configure MCP client (local development)

Example configuration in VSCode:

{
  "servers": {
    "kicad-pcb-mcp": {
      "type": "stdio",
      "command": "uv",
      "args": [
        "--directory",
        "C:/code/kicad-mcp",
        "run",
        "kicad-mcp",
        "--editor-type",
        "pcb"
      ]
    },
    "kicad-schematic-mcp": {
      "type": "stdio",
      "command": "uv",
      "args": [
        "--directory",
        "C:/code/kicad-mcp",
        "run",
        "kicad-mcp",
        "--editor-type",
        "schematic"
      ]
    }
  }
}

3. Run locally

Install dependencies and run:

uv sync
uv run kicad-mcp --editor-type schematic

4. Iterate

Modify the code and restart your MCP client to see changes.


Notes