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