MCP server to analyze KiCad schematics, query components, trace nets, and explore multi-board systems.
Configuration
View docs{
"mcpServers": {
"bleugreen-kicad-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/kicad-mcp",
"run",
"kicad-mcp"
]
}
}
}You can run a KiCad MCP Server to analyze schematics, query components, trace nets, and explore multi-board systems. It lets you load KiCad files, inspect pin details, and trace signals across boards, with optional caching for faster repeated queries and dynamic configuration without restarting.
To use the MCP server, you run it locally and connect your MCP client with the provided configuration. The server exposes commands to load boards, create multi-board systems, and perform circuit analysis, net tracing, and cross-board signal tracing. Use a client to request overviews, list components and nets, examine specific components or nets, and trace connections within a single board or across multiple boards.
# Prerequisites
- Python 3.10+
- pip
- uv (recommended) for running the MCP server locally
# Install with uv (recommended)
uv sync
# Or install with pip
pip install -e .Configure the MCP client to connect to your local server. You provide a server entry that tells the client how to start the MCP process. The example below demonstrates using uv to run the KiCad MCP server from a local directory.
{
"mcpServers": {
"kicad": {
"command": "uv",
"args": [
"--directory",
"/path/to/kicad-mcp",
"run",
"kicad-mcp"
]
}
}
}Create a configuration file named ".kicad_mcp.yaml" in your project directory to define boards and multi-board systems, plus optional caching. You can enable caching to speed up repeated analyses and invalidate it when source files change.
boards:
main:
path: /path/to/main.kicad_sch
description: Main controller board
sensor:
path: /path/to/sensor.kicad_sch
description: Sensor board
systems:
complete:
boards: [main, sensor]
description: Full system with all boards
cache:
enabled: true
directory: ~/.cache/kicad_mcp
check_mtime: trueYou can load boards or systems, reload configuration without restarting, and query single-board or multi-board analyses. The server supports dynamic changes so you can add or remove boards and update systems on the fly.
Run the MCP server on a trusted machine or within a secured network. Limit access to clients you trust, and consider enabling file caching only in secure environments to avoid exposing cached schematic data.
If the server fails to start, verify that Python 3.10+ is installed, the uv tool is available, and the path to your KiCad MCP directory is correct. Check that the client configuration points to the running MCP server and that the required files exist at the specified paths.
Load a board by name and prepare it for analysis, with optional caching to speed up subsequent queries.
Load a multi-board system defined by named boards and reuse it for cross-board analysis.
Get a high-level summary of a loaded board or system, including component counts and nets.
List all components on a loaded board, with optional filtering by category.
List nets on a loaded board, with optional filtering for power nets.
Return detailed information for a specific component, including pins and connected nets.
Return detailed information for a specific net, including connected components and pin names.
Find a path between two components on the same board.
Trace a signal across multiple boards within a defined system.
Reload the current configuration without restarting the MCP server.