Back to Directory/Developer Tools

io.github.daedalus/mcp-kicad

MCP server exposing KiCad PCB Editor functionality via IPC API

Developer ToolsPythonv0.1.1

mcp-kicad — MCP server exposing KiCad PCB Editor functionality via IPC API.

PyPI Python Ruff

Install

pip install mcp-kicad

Requirements

  • KiCad 9.0 or higher with the IPC API server enabled
  • Go to Preferences > Plugins in KiCad and enable the API server

Usage

The MCP server communicates with a running KiCad instance via the IPC API. Start KiCad first, then run the server:

mcp-kicad

Or configure it in your MCP client:

{
  "mcpServers": {
    "mcp-kicad": {
      "command": "mcp-kicad",
      "env": {}
    }
  }
}

Tools

The server exposes the following tools:

  • Connection: connect_kicad, check_connection
  • Board: get_board_info, get_layers, get_board_design_settings
  • Footprints: list_footprints, get_footprint, search_footprints
  • Nets: list_nets, get_net, list_netclasses
  • Zones: list_zones
  • Tracks/Vias: list_tracks, list_vias
  • Pads: list_pads
  • Text: list_texts, get_text_extents
  • Project: get_project, get_version

Example

from mcp_kicad import mcp_server

# Connect to running KiCad
result = mcp_server.connect_kicad()

# Get board info
board_info = mcp_server.get_board_info()
print(board_info)

# List all footprints
footprints = mcp_server.list_footprints()
for fp in footprints:
    print(f"{fp['reference']}: {fp['value']}")

Development

git clone https://github.com/daedalus/mcp-kicad.git
cd mcp-kicad
pip install -e ".[test]"

# run tests
pytest

# format
ruff format src/ tests/

# lint
ruff check src/ tests/

# type check
mypy src/

mcp-name: io.github.daedalus/mcp-kicad

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
uvx mcp-kicad

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-daedalus-mcp-kicad": {
      "command": "uvx",
      "args": [
        "mcp-kicad"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

mcp-kicadpypi

Compatible MCP Clients

io.github.daedalus/mcp-kicad works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More