loading…
Search for a command to run...
loading…
Enables natural language interaction with KiCad projects, schematics, and PCBs, supporting project management, design rule checking, netlist extraction, and dat
Enables natural language interaction with KiCad projects, schematics, and PCBs, supporting project management, design rule checking, netlist extraction, and datasheet RAG search.
This guide will help you set up a Model Context Protocol (MCP) server for KiCad. While the examples in this guide often reference Claude Desktop, the server is compatible with any MCP-compliant client. You can use it with Claude Desktop, your own custom MCP clients, or any other application that implements the Model Context Protocol.
First, let's install dependencies and set up our environment:
# Clone the repository
git clone https://github.com/fsbondtec/kicad-mcp.git
cd kicad-mcp
# Create the environment from environment.yml
conda env create -f environment.yml
# Activate the environment
conda activate kicad-mcp
#Install package in editable mode
pip install -e .
# Run all tests
pytest tests/ -v
# run server
kicad-mcp
Change the path directly in config.py
where the global variables KICAD_USER_DIR and KICAD_APP_PATH should be changed
Now, let's configure Claude Desktop to use our MCP server:
# Create the directory if it doesn't exist
mkdir -p ~/Library/Application\ Support/Claude
# Edit the configuration file
vim ~/Library/Application\ Support/Claude/claude_desktop_config.json
Or change with Claude Desktop under:
{
"mcpServers": {
"kicad": {
"command": "C:/Users/{user}/AppData/Local/miniconda3/envs/kicad-mcp/python.exe",
"args": [
"/ABSOLUTE/PATH/TO/YOUR/PROJECT/kicad-mcp/main.py"
]
}
}
}
Replace /ABSOLUTE/PATH/TO/YOUR/PROJECT/kicad-mcp with the actual path to your project directory.
Close and reopen your MCP client to load the new configuration.
The Model Context Protocol (MCP) defines three primary ways to provide capabilities:
Resources are read-only data sources that LLMs can reference:
kicad://projects returns a list of all KiCad projectsTools are functions that perform actions or computations:
open_project() launches KiCad with a specific projectPrompts are reusable templates for common interactions:
debug_pcb_issues prompt helps users troubleshoot PCB problemsFor more information on resources vs tools vs prompts, read the MCP docs.
The KiCad MCP Server provides several key features, each with detailed documentation:
Project Management: List, and examine KiCad projects
Schematic Design Analysis: Get insights about your schematics
Netlist Extraction: Extract and analyze component connections from schematics
Design Rule Checking: Run DRC checks using the KiCad CLI and track your progress over time
Datasheet RAG Search: Automatically indexes component datasheets and lets Claude answer technical questions about your components
Schematic and PCB path visualisation in SVG files: Generate visual representation of paths in schematic and PCB SVG plotting
For more examples and details on each feature, see the dedicated guides in the documentation. You can also ask the LLM what tools it has access to!
While our documentation often shows examples like:
Show me the DRC report for /Users/username/Documents/KiCad/my_project/my_project.kicad_pro
You don't need to type the full path to your files! The LLM can understand more natural language requests.
For example, instead of the formal command above, you can simply ask:
Can you check if there are any design rule violations in my Arduino shield project?
The LLM will understand your intent and request the relevant information from the KiCad MCP Server. If it needs clarification about which project you're referring to, it will ask.
Detailed documentation for each feature is available in the docs/ directory:
The KiCad MCP Server can be configured using environment variables or a .env file:
| Environment Variable | Description | Example |
|---|---|---|
KICAD_SEARCH_PATHS |
Comma-separated list of directories to search for KiCad projects | ~/pcb,~/Electronics,~/Projects |
KICAD_USER_DIR |
Override the default KiCad user directory | ~/Documents/KiCadProjects |
KICAD_APP_PATH |
Override the default KiCad application path | /Applications/KiCad7/KiCad.app |
See Configuration Guide for more details.
The KiCad MCP Server is organized into a modular structure:
kicad-mcp/
├── README.md # Project documentation
├── main.py # Entry point that runs the server
├── requirements.txt # Python dependencies
├── kicad_mcp/ # Main package directory
│ ├── __init__.py
│ ├── server.py # MCP server setup
│ ├── config.py # Configuration constants and settings
│ ├── context.py # Lifespan management and shared context
│ ├── resources/ # Resource handlers
│ ├── tools/ # Tool handlers
│ ├── prompts/ # Prompt templates
│ └── utils/ # Utility functions
├── docs/ # Documentation
└── tests/ # Unit tests
To add new features to the KiCad MCP Server, follow these steps:
See Development Guide for more details.
If you encounter issues:
Server Not Appearing in MCP Client:
mcp packageServer Errors:
~/Library/Logs/Claude/mcp-server-kicad.log (server-specific logs)~/Library/Logs/Claude/mcp.log (general MCP logs)Working Directory Issues:
See Troubleshooting Guide for more details.
If you're still not able to troubleshoot, please open a Github issue.
This project is open source under the MIT license.
Выполни в терминале:
claude mcp add kicad-mcp -- npx Безопасность
Низкий рискАвтоматическая эвристика по публичным данным — не гарантия безопасности.