Provides tools for analyzing KiCad schematics, including querying components, tracing nets, exploring connections, and analyzing multi-board systems through circuit analysis and signal path tracing.
KiCad MCP Server
Model Context Protocol (MCP) server for analyzing KiCad schematics. Query components, trace nets, explore connections, and analyze multi-board systems through a simple tool interface.
Features
Circuit Analysis: Load and analyze KiCad
.kicad_schfilesComponent Queries: Search, filter, and examine components with detailed pin information
Net Tracing: Explore nets, trace signal paths, and find connection routes
Multi-Board Systems: Analyze signals across multiple connected boards
Smart Caching: Optional file caching for faster repeated queries
Dynamic Configuration: Add/remove boards and systems without restarting
Installation
Requirements: Python 3.10+
Quick Start
1. Configure MCP Client
Add to your MCP client configuration (e.g., Claude Desktop's claude_desktop_config.json):
2. Create Configuration File
Create .kicad_mcp.yaml in your project directory:
Configuration
Configuration files are searched in priority order:
Environment variable:
$KICAD_MCP_CONFIGLocal project:
.kicad_mcp.yaml(current directory or parent directories)Global config:
~/.config/kicad_mcp/config.yamlDefault: Empty configuration (no boards pre-loaded)
Configuration Options
boards: Named board configurations with paths and descriptions
systems: Multi-board system definitions referencing board names
cache.enabled: Enable/disable pickle caching of parsed schematics
cache.directory: Where to store cache files
cache.check_mtime: Invalidate cache when source files change
Available Tools
Board Management
Tool | Description |
| List all boards from configuration |
| List all multi-board systems |
| Load a board by name (with caching) |
| Load a multi-board system |
| Reload configuration without restarting |
Configuration Management
Tool | Description |
| Add a new board to configuration |
| Remove a board from configuration |
| Add a new multi-board system |
| Remove a system from configuration |
Circuit Analysis (Single Board)
Tool | Description |
| High-level schematic summary (component count, nets, categories) |
| List all components, optionally filtered by category |
| List all nets, optionally power nets only |
| Detailed component info (value, pins, connected nets) |
| Detailed net info (connections, component types) |
| Find which net a specific pin connects to |
Connection Tracing (Single Board)
Tool | Description |
| Find connection path between two components |
| Find all components within N hops of a component |
Multi-Board Analysis
Tool | Description |
| Overview of multi-board system |
| Trace a signal across multiple boards |
Usage Examples
Analyze a Single Board
Trace Connections
Multi-Board Systems
Dynamic Configuration
Source Parameter
Most analysis tools accept a source parameter which can be:
Board name from configuration (e.g.,
"main")Direct file path to a
.kicad_schfile (e.g.,"/path/to/board.kicad_sch")
System tools use system_name to reference configured multi-board systems.
Development
License
MIT
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Enables analysis of KiCad electronic schematics through natural language queries to search components, trace signal paths, explore connections, and analyze multi-board systems.