kicad
🔌 MCP server for KiCad EDA - Analyze schematics & PCBs, trace pin-level connections, automate design editing. Works with any MCP-compatible AI tool
claude mcp add --transport stdio seeed-studio-kicad-mcp-server python -m kicad_mcp_server \ --env PYTHONPATH="/path/to/kicad-mcp-server/src"
How to use
The KiCad MCP Server provides a set of tools for analyzing KiCad projects (schematics, PCBs, and netlists) and, in experimental form, editing schematics and PCBs. It exposes 6 core capabilities organized into three categories: analysis, editing, and project management. You can use the server to inspect schematic components and nets, verify PCB footprints and statistics, and trace pin-level connections using a parsed KiCad XML netlist. For workflows requiring design verification, rely on the netlist-based analysis to achieve precise, bidirectional component-to-net tracing, then compare results with PCB analysis for consistency. The editing tools are labeled experimental and should be used primarily for validation or automated testing rather than production design, with KiCad GUI still recommended for actual editing.
To begin, configure your MCP client (e.g., Claude Desktop or your own client) to connect to the kicad MCP server using the Python runtime as described in the installation and configuration sections. Once connected, you can invoke: list_schematic_components, list_schematic_nets, get_schematic_info, search_symbols, get_symbol_details, analyze_functional_blocks; list_pcb_footprints, get_pcb_statistics, find_tracks_by_net, get_footprint_by_reference, analyze_pcb_nets; trace_netlist_connection, get_netlist_nets, get_netlist_components, generate_netlist; and the editing actions like create_kicad_project, add_component_from_library, add_wire, add_global_label, add_label for schematics, as well as setup_pcb_layout, add_footprint, add_track, add_zone, export_gerber for PCBs, plus project management tools like copy_kicad_project.
How to install
Prerequisites:
- Python 3.10 or higher
- KiCad 9.0 or later
- Git
Step-by-step installation:
- Clone the repository
# Clone repository
git clone https://github.com/LynnL4/kicad-mcp-server.git
cd kicad-mcp-server
- Install Python dependencies
pip install -r requirements.txt
- (Optional) Create a virtual environment
python -m venv venv
source venv/bin/activate # on macOS/Linux
venv\Scripts\activate # on Windows
pip install -r requirements.txt
- Run the MCP server (development mode)
python -m kicad_mcp_server
- Verify server is reachable via your MCP client (e.g., Claude Desktop) by pointing to the configured command and working directory as described in the configuration section.
Additional notes
Tips and common considerations:
- The editing tools are experimental; use KiCad GUI for actual schematic and PCB editing until further stabilization.
- Ensure KiCad 9.0 compatibility: the server relies on KiCad’s official APIs and file formats.
- When configuring Claude Desktop, set PYTHONPATH to the server's src directory to ensure imports resolve correctly.
- Netlist-based tracing provides the most accurate pin-level connections; export netlists from KiCad (e.g., kicad-cli sch export netlist --format kicadxml) before tracing.
- If you encounter path or environment issues, verify that the cwd in your MCP client matches the server repository root and that required environment variables are set.
- For production deployments, consider containerizing the server with a stable Python environment and pinning KiCad/Dependencies to compatible versions.
Related MCP Servers
mcp-vegalite
MCP server from isaacwasserman/mcp-vegalite-server
github-chat
A Model Context Protocol (MCP) for analyzing and querying GitHub repositories using the GitHub Chat API.
nautex
MCP server for guiding Coding Agents via end-to-end requirements to implementation plan pipeline
pagerduty
PagerDuty's official local MCP (Model Context Protocol) server which provides tools to interact with your PagerDuty account directly from your MCP-enabled client.
futu-stock
mcp server for futuniuniu stock
mcp -boilerplate
Boilerplate using one of the 'better' ways to build MCP Servers. Written using FastMCP