Windows Support Package: - PowerShell automated setup script (setup-windows.ps1) - Auto-detects KiCAD installation and version - Validates all prerequisites (Node.js, Python, pcbnew) - Installs dependencies automatically - Generates MCP configuration with platform-specific paths - Runs comprehensive diagnostic tests - Windows troubleshooting guide (docs/WINDOWS_TROUBLESHOOTING.md) - Platform comparison guide (docs/PLATFORM_GUIDE.md) Code Enhancements: - Enhanced Windows error diagnostics in Python interface - Startup validation in TypeScript server - Platform-specific error messages with troubleshooting hints - Component library integration (153 KiCAD footprint libraries) - Routing operations KiCAD 9.0 API compatibility fixes Documentation Updates: - Updated README with Windows automated setup - Real-time collaboration workflow guide - Library integration documentation - JLCPCB integration planning - Updated status to reflect Windows support - Changelogs for Nov 1 and Nov 5 updates Infrastructure: - Added venv/ to .gitignore to prevent virtual env commits Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
702 lines
21 KiB
Markdown
702 lines
21 KiB
Markdown
# KiCAD MCP: AI-Assisted PCB Design
|
|
|
|
KiCAD MCP is a Model Context Protocol (MCP) implementation that enables Large Language Models (LLMs) like Claude to directly interact with KiCAD for printed circuit board design. It creates a standardized communication bridge between AI assistants and the KiCAD PCB design software, allowing for natural language control of advanced PCB design operations.
|
|
|
|
## What is MCP?
|
|
|
|
The [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) is an open standard from Anthropic that allows AI assistants like Claude to securely connect to external tools and data sources. Think of it as a universal adapter that lets Claude interact with your local software - in this case, KiCAD.
|
|
|
|
**With this MCP server, you can:**
|
|
- Design PCBs by talking to Claude in natural language
|
|
- Automate complex KiCAD operations through AI assistance
|
|
- Get real-time feedback as Claude creates and modifies your boards
|
|
- Leverage AI to handle tedious PCB design tasks
|
|
|
|
## NEW FEATURES
|
|
|
|
### Schematic Generation
|
|
Now, in addition to PCB design, KiCAD MCP enables AI assistants to:
|
|
|
|
- Create and manage KiCAD schematics through natural language
|
|
- Add components like resistors, capacitors, and ICs to schematics
|
|
- Connect components with wires to create complete circuits
|
|
- Save and load schematic files in KiCAD format
|
|
- Export schematics to PDF
|
|
|
|
### UI Auto-Launch
|
|
Seamless visual feedback for PCB design. The MCP server can now:
|
|
|
|
- Auto-detect if KiCAD UI is running
|
|
- Auto-launch KiCAD when needed
|
|
- Open projects directly in the UI
|
|
- Cross-platform support (Linux, macOS, Windows)
|
|
|
|
Just say "Create a board" and watch it appear in KiCAD. See [UI_AUTO_LAUNCH.md](docs/UI_AUTO_LAUNCH.md) for details.
|
|
|
|
## Project Status
|
|
|
|
**This project is currently undergoing a major v2.0 rebuild**
|
|
|
|
**Current Status (Week 1/12):**
|
|
- Cross-platform support (Linux, Windows, macOS)
|
|
- CI/CD pipeline with automated testing
|
|
- Platform-agnostic path handling
|
|
- Migrating to KiCAD IPC API (from deprecated SWIG)
|
|
- Adding JLCPCB parts integration
|
|
- Adding Digikey parts integration
|
|
- Smart BOM management system
|
|
|
|
**What Works Now (Tested & Verified):**
|
|
- Project management (create, open, save)
|
|
- Board outline creation (rectangle, circle, polygon)
|
|
- Board size setting (KiCAD 9.0 compatible)
|
|
- Mounting holes with configurable diameters
|
|
- Board text annotations (KiCAD 9.0 compatible)
|
|
- Layer management (add, set active, list)
|
|
- UI auto-launch and detection
|
|
- Visual feedback workflow (manual reload)
|
|
- Cross-platform Python venv support
|
|
- Design rule checking
|
|
- Export (Gerber, PDF, SVG, 3D models)
|
|
- Schematic generation
|
|
|
|
**Known Issues:**
|
|
- Component placement needs library path integration
|
|
- Routing operations not yet tested with KiCAD 9.0
|
|
- `get_board_info` has KiCAD 9.0 API compatibility issue
|
|
- UI auto-reload requires manual confirmation (IPC will fix this)
|
|
|
|
**Next Priorities (Week 2):**
|
|
1. Component Library Integration - Map JLCPCB/Digikey parts to KiCAD footprints
|
|
2. Routing Operations - Test and fix trace routing, vias, copper pours
|
|
3. IPC Backend - Enable real-time UI updates (no manual reload)
|
|
4. Documentation - Add video tutorials and example projects
|
|
|
|
**Future (v2.0):**
|
|
- AI-assisted component selection with cost optimization
|
|
- Smart BOM management and supplier integration
|
|
- Design pattern library (Arduino shields, Raspberry Pi HATs, etc.)
|
|
- Guided workflows for beginners
|
|
- Auto-documentation generation
|
|
|
|
**Documentation:**
|
|
- [Status Summary](docs/STATUS_SUMMARY.md) - Current state at a glance
|
|
- [Roadmap](docs/ROADMAP.md) - Where we're going (12-week plan)
|
|
- [Known Issues](docs/KNOWN_ISSUES.md) - Problems and workarounds
|
|
- [Changelog](CHANGELOG_2025-10-26.md) - Recent updates and fixes
|
|
|
|
## What It Does
|
|
|
|
KiCAD MCP transforms how engineers and designers work with KiCAD by enabling AI assistants to:
|
|
|
|
- Create and manage KiCAD PCB projects through natural language requests
|
|
- **Create schematics** with components and connections
|
|
- Manipulate board geometry, outlines, layers, and properties
|
|
- Place and organize components in various patterns (grid, circular, aligned)
|
|
- Route traces, differential pairs, and create copper pours
|
|
- Implement design rules and perform design rule checks
|
|
- Generate exports in various formats (Gerber, PDF, SVG, 3D models)
|
|
- Provide comprehensive context about the circuit board to the AI assistant
|
|
|
|
This enables a natural language-driven PCB design workflow where complex operations can be requested in plain English, while still maintaining full engineer oversight and control.
|
|
|
|
## Core Architecture
|
|
|
|
- **TypeScript MCP Server**: Implements the Anthropic Model Context Protocol specification to communicate with Claude and other compatible AI assistants
|
|
- **Python KiCAD Interface**: Handles actual KiCAD operations via pcbnew Python API and kicad-skip library with comprehensive error handling
|
|
- **Modular Design**: Organizes functionality by domains (project, schematic, board, component, routing) for maintainability and extensibility
|
|
|
|
## Prerequisites - READ THIS FIRST!
|
|
|
|
Before installing this MCP server, you **MUST** have:
|
|
|
|
### 1. KiCAD 9.0 or Higher (REQUIRED!)
|
|
|
|
**This is the most critical requirement.** Without KiCAD properly installed with its Python module, this MCP server will not work.
|
|
|
|
- **Download:** [kicad.org/download](https://www.kicad.org/download/)
|
|
- **Verify Python module:** After installing, run:
|
|
```bash
|
|
python3 -c "import pcbnew; print(pcbnew.GetBuildVersion())"
|
|
```
|
|
If this fails, your KiCAD installation is incomplete.
|
|
|
|
### 2. Python 3.10 or Higher
|
|
|
|
**Required Python packages:**
|
|
```
|
|
kicad-skip>=0.1.0 # Schematic manipulation
|
|
Pillow>=9.0.0 # Image processing for board rendering
|
|
cairosvg>=2.7.0 # SVG rendering
|
|
colorlog>=6.7.0 # Colored logging
|
|
pydantic>=2.5.0 # Data validation
|
|
requests>=2.31.0 # HTTP requests (for future API features)
|
|
python-dotenv>=1.0.0 # Environment management
|
|
```
|
|
|
|
These will be installed automatically via `pip install -r requirements.txt`
|
|
|
|
### 3. Node.js v18 or Higher
|
|
|
|
- **Download:** [nodejs.org](https://nodejs.org/)
|
|
- **Verify:** Run `node --version` and `npm --version`
|
|
|
|
### 4. An MCP-Compatible Client
|
|
|
|
Choose one:
|
|
- **[Claude Desktop](https://claude.ai/download)** - Official Anthropic desktop app
|
|
- **[Claude Code](https://docs.claude.com/claude-code)** - Official Anthropic CLI tool
|
|
- **[Cline](https://github.com/cline/cline)** - Popular VSCode extension
|
|
|
|
### 5. Operating System
|
|
|
|
- **Linux** (Ubuntu 22.04+, Fedora, Arch) - Primary platform, fully tested
|
|
- **Windows 10/11** - Supported (community tested, automated setup available)
|
|
- **macOS** - Experimental (untested, please report issues!)
|
|
|
|
## Installation
|
|
|
|
Choose your platform below for detailed installation instructions:
|
|
|
|
<details>
|
|
<summary><b>Linux (Ubuntu/Debian)</b> - Click to expand</summary>
|
|
|
|
### Step 1: Install KiCAD 9.0
|
|
|
|
```bash
|
|
# Add KiCAD 9.0 PPA (Ubuntu/Debian)
|
|
sudo add-apt-repository --yes ppa:kicad/kicad-9.0-releases
|
|
sudo apt-get update
|
|
|
|
# Install KiCAD and libraries
|
|
sudo apt-get install -y kicad kicad-libraries
|
|
```
|
|
|
|
### Step 2: Install Node.js
|
|
|
|
```bash
|
|
# Install Node.js 20.x (recommended)
|
|
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
|
|
sudo apt-get install -y nodejs
|
|
|
|
# Verify installation
|
|
node --version # Should be v20.x or higher
|
|
npm --version
|
|
```
|
|
|
|
### Step 3: Clone and Build
|
|
|
|
```bash
|
|
# Clone repository
|
|
git clone https://github.com/mixelpixx/KiCAD-MCP-Server.git
|
|
cd KiCAD-MCP-Server
|
|
|
|
# Install Node.js dependencies
|
|
npm install
|
|
|
|
# Install Python dependencies
|
|
pip3 install -r requirements.txt
|
|
|
|
# Build TypeScript
|
|
npm run build
|
|
```
|
|
|
|
### Step 4: Configure Cline
|
|
|
|
1. Install VSCode and the Cline extension
|
|
2. Edit Cline MCP settings:
|
|
```bash
|
|
code ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
|
|
```
|
|
|
|
3. Add this configuration (adjust paths for your system):
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"kicad": {
|
|
"command": "node",
|
|
"args": ["/home/YOUR_USERNAME/KiCAD-MCP-Server/dist/index.js"],
|
|
"env": {
|
|
"NODE_ENV": "production",
|
|
"PYTHONPATH": "/usr/lib/kicad/lib/python3/dist-packages",
|
|
"LOG_LEVEL": "info"
|
|
},
|
|
"description": "KiCAD PCB Design Assistant"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
4. Restart VSCode
|
|
|
|
### Step 5: Verify Installation
|
|
|
|
```bash
|
|
# Test platform detection
|
|
python3 python/utils/platform_helper.py
|
|
|
|
# Run tests (optional)
|
|
pytest tests/
|
|
```
|
|
|
|
**Troubleshooting:**
|
|
- If KiCAD Python module not found, check: `python3 -c "import pcbnew; print(pcbnew.GetBuildVersion())"`
|
|
- For PYTHONPATH issues, see: [docs/LINUX_COMPATIBILITY_AUDIT.md](docs/LINUX_COMPATIBILITY_AUDIT.md)
|
|
|
|
</details>
|
|
|
|
<details>
|
|
<summary><b>Windows 10/11</b> - Click to expand</summary>
|
|
|
|
### Automated Setup (Recommended)
|
|
|
|
We provide a PowerShell script that automates the entire setup process:
|
|
|
|
```powershell
|
|
# Clone repository
|
|
git clone https://github.com/mixelpixx/KiCAD-MCP-Server.git
|
|
cd KiCAD-MCP-Server
|
|
|
|
# Run automated setup
|
|
.\setup-windows.ps1
|
|
```
|
|
|
|
The script will:
|
|
- Detect KiCAD installation
|
|
- Verify Node.js and Python
|
|
- Install all dependencies
|
|
- Build the project
|
|
- Generate configuration
|
|
- Run diagnostic tests
|
|
|
|
**If you encounter issues, the script provides detailed error messages and solutions.**
|
|
|
|
---
|
|
|
|
### Manual Setup (Advanced)
|
|
|
|
If you prefer manual setup or the automated script fails:
|
|
|
|
#### Step 1: Install KiCAD 9.0
|
|
|
|
1. Download KiCAD 9.0 from [kicad.org/download/windows](https://www.kicad.org/download/windows/)
|
|
2. Run the installer with **default options** (includes Python)
|
|
3. Verify installation:
|
|
```powershell
|
|
Test-Path "C:\Program Files\KiCad\9.0"
|
|
```
|
|
|
|
#### Step 2: Install Node.js
|
|
|
|
1. Download Node.js 20.x from [nodejs.org](https://nodejs.org/)
|
|
2. Run installer with default options
|
|
3. Verify in PowerShell:
|
|
```powershell
|
|
node --version # Should be v18.0.0+
|
|
npm --version
|
|
```
|
|
|
|
#### Step 3: Clone and Build
|
|
|
|
```powershell
|
|
# Clone repository
|
|
git clone https://github.com/mixelpixx/KiCAD-MCP-Server.git
|
|
cd KiCAD-MCP-Server
|
|
|
|
# Install Node.js dependencies
|
|
npm install
|
|
|
|
# Install Python dependencies (using KiCAD's Python)
|
|
& "C:\Program Files\KiCad\9.0\bin\python.exe" -m pip install -r requirements.txt
|
|
|
|
# Build TypeScript project
|
|
npm run build
|
|
|
|
# Verify build succeeded
|
|
Test-Path .\dist\index.js # Should output: True
|
|
```
|
|
|
|
#### Step 4: Test Installation
|
|
|
|
```powershell
|
|
# Test that Python can import pcbnew
|
|
& "C:\Program Files\KiCad\9.0\bin\python.exe" -c "import pcbnew; print(pcbnew.GetBuildVersion())"
|
|
```
|
|
|
|
Expected output: `9.0.0` (or your KiCAD version)
|
|
|
|
#### Step 5: Configure Your MCP Client
|
|
|
|
**For Claude Desktop:**
|
|
Edit: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
|
|
**For Cline (VSCode):**
|
|
Edit: `%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json`
|
|
|
|
**Configuration:**
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"kicad": {
|
|
"command": "node",
|
|
"args": ["C:\\Users\\YOUR_USERNAME\\KiCAD-MCP-Server\\dist\\index.js"],
|
|
"env": {
|
|
"PYTHONPATH": "C:\\Program Files\\KiCad\\9.0\\lib\\python3\\dist-packages",
|
|
"LOG_LEVEL": "info"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
**Important:** Replace `YOUR_USERNAME` with your actual Windows username.
|
|
|
|
#### Step 6: Restart Your MCP Client
|
|
|
|
- **Claude Desktop:** Quit and relaunch
|
|
- **Cline:** Restart VSCode
|
|
|
|
---
|
|
|
|
### Troubleshooting
|
|
|
|
If you encounter issues:
|
|
|
|
1. **Check the log file:**
|
|
```
|
|
%USERPROFILE%\.kicad-mcp\logs\kicad_interface.log
|
|
```
|
|
|
|
2. **Run diagnostics:**
|
|
```powershell
|
|
.\setup-windows.ps1 # Runs validation even if already set up
|
|
```
|
|
|
|
3. **See detailed troubleshooting guide:**
|
|
[docs/WINDOWS_TROUBLESHOOTING.md](docs/WINDOWS_TROUBLESHOOTING.md)
|
|
|
|
4. **Common issues:**
|
|
- "Server exits immediately" → pcbnew module not found
|
|
- "Python not found" → Update PYTHONPATH in config
|
|
- "Build failed" → Run `npm install` again
|
|
|
|
</details>
|
|
|
|
<details>
|
|
<summary><b>macOS</b> - Click to expand (Experimental)</summary>
|
|
|
|
### Step 1: Install KiCAD 9.0
|
|
|
|
1. Download KiCAD 9.0 from [kicad.org/download/macos](https://www.kicad.org/download/macos/)
|
|
2. Drag KiCAD.app to Applications folder
|
|
|
|
### Step 2: Install Node.js
|
|
|
|
```bash
|
|
# Using Homebrew (install from brew.sh if needed)
|
|
brew install node@20
|
|
|
|
# Verify
|
|
node --version
|
|
npm --version
|
|
```
|
|
|
|
### Step 3: Clone and Build
|
|
|
|
```bash
|
|
git clone https://github.com/mixelpixx/KiCAD-MCP-Server.git
|
|
cd KiCAD-MCP-Server
|
|
npm install
|
|
pip3 install -r requirements.txt
|
|
npm run build
|
|
```
|
|
|
|
### Step 4: Configure Cline
|
|
|
|
Edit `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`:
|
|
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"kicad": {
|
|
"command": "node",
|
|
"args": ["/Users/YOUR_USERNAME/KiCAD-MCP-Server/dist/index.js"],
|
|
"env": {
|
|
"PYTHONPATH": "/Applications/KiCad/KiCad.app/Contents/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
**Note:** macOS support is experimental. Please report issues on GitHub.
|
|
|
|
</details>
|
|
|
|
## Quick Start
|
|
|
|
After installation, test with Cline:
|
|
|
|
1. Open VSCode with Cline extension
|
|
2. Start a conversation with Claude
|
|
3. Try these commands:
|
|
|
|
```
|
|
Create a new KiCAD project named 'TestProject' in my home directory.
|
|
```
|
|
|
|
```
|
|
Set the board size to 100mm x 80mm and add a rectangular outline.
|
|
```
|
|
|
|
```
|
|
Show me the current board properties.
|
|
```
|
|
|
|
If Claude successfully executes these commands, your installation is working!
|
|
|
|
### Configuration for Other Clients
|
|
|
|
The examples above show configuration for Cline (VSCode), but KiCAD MCP works with any MCP-compatible client:
|
|
|
|
- **Claude Desktop** - Desktop app from Anthropic
|
|
- **Claude Code** - CLI tool from Anthropic
|
|
- **Cline** - VSCode extension
|
|
- **Any MCP client** - Using STDIO transport
|
|
|
|
For detailed configuration instructions for all clients, see:
|
|
**[Client Configuration Guide](docs/CLIENT_CONFIGURATION.md)**
|
|
|
|
The guide includes:
|
|
- Platform-specific configurations (Linux, macOS, Windows)
|
|
- Client-specific setup (Claude Desktop, Cline, Claude Code)
|
|
- Troubleshooting steps
|
|
- How to find KiCAD Python paths
|
|
- Advanced configuration options
|
|
|
|
## Usage Examples
|
|
|
|
Here are some examples of what you can ask Claude to do with KiCAD MCP:
|
|
|
|
### Project Management
|
|
|
|
```
|
|
Create a new KiCAD project named 'WiFiModule' in my Documents folder.
|
|
```
|
|
|
|
```
|
|
Open the existing KiCAD project at C:/Projects/Amplifier/Amplifier.kicad_pro
|
|
```
|
|
|
|
### UI Management (NEW!)
|
|
|
|
```
|
|
Is KiCAD running?
|
|
```
|
|
|
|
```
|
|
Launch KiCAD with my project at /tmp/demo/project.kicad_pcb
|
|
```
|
|
|
|
```
|
|
Open KiCAD so I can see the board as we design it
|
|
```
|
|
|
|
### Schematic Design
|
|
|
|
```
|
|
Create a new schematic named 'PowerSupply'.
|
|
```
|
|
|
|
```
|
|
Add a 10kΩ resistor and 0.1µF capacitor to the schematic.
|
|
```
|
|
|
|
```
|
|
Connect the resistor's pin 1 to the capacitor's pin 1.
|
|
```
|
|
|
|
### Board Design
|
|
|
|
```
|
|
Set the board size to 100mm x 80mm.
|
|
```
|
|
|
|
```
|
|
Add a rounded rectangle board outline with 3mm corner radius.
|
|
```
|
|
|
|
```
|
|
Add mounting holes at each corner of the board, 5mm from the edges.
|
|
```
|
|
|
|
### Component Placement
|
|
|
|
```
|
|
Place a 10uF capacitor at position x=50mm, y=30mm.
|
|
```
|
|
|
|
```
|
|
Create a grid of 8 LEDs, 4x2, starting at position x=20mm, y=10mm with 10mm spacing.
|
|
```
|
|
|
|
```
|
|
Align all resistors horizontally and distribute them evenly.
|
|
```
|
|
|
|
### Routing
|
|
|
|
```
|
|
Create a new net named 'VCC' and assign it to the power net class.
|
|
```
|
|
|
|
```
|
|
Route a trace from component U1 pin 1 to component C3 pin 2 on layer F.Cu.
|
|
```
|
|
|
|
```
|
|
Add a copper pour for GND on the bottom layer.
|
|
```
|
|
|
|
### Design Rules and Export
|
|
|
|
```
|
|
Set design rules with 0.2mm clearance and 0.25mm minimum track width.
|
|
```
|
|
|
|
```
|
|
Export Gerber files to the 'fabrication' directory.
|
|
```
|
|
|
|
## Features by Category
|
|
|
|
### Project Management
|
|
- Create new KiCAD projects with customizable settings
|
|
- Open existing KiCAD projects from file paths
|
|
- Save projects with optional new locations
|
|
- Retrieve project metadata and properties
|
|
|
|
### Schematic Design
|
|
- Create new schematics with customizable settings
|
|
- Add components from symbol libraries (resistors, capacitors, ICs, etc.)
|
|
- Connect components with wires to create circuits
|
|
- Add labels, annotations, and documentation to schematics
|
|
- Save and load schematics in KiCAD format
|
|
- Export schematics to PDF for documentation
|
|
|
|
### Board Design
|
|
- Set precise board dimensions with support for metric and imperial units
|
|
- Add custom board outlines (rectangle, rounded rectangle, circle, polygon)
|
|
- Create and manage board layers with various configurations
|
|
- Add mounting holes, text annotations, and other board features
|
|
- Visualize the current board state
|
|
|
|
### Components
|
|
- Place components with specified footprints at precise locations
|
|
- Create component arrays in grid or circular patterns
|
|
- Move, rotate, and modify existing components
|
|
- Align and distribute components evenly
|
|
- Duplicate components with customizable properties
|
|
- Get detailed component properties and listings
|
|
|
|
### Routing
|
|
- Create and manage nets with specific properties
|
|
- Route traces between component pads or arbitrary points
|
|
- Add vias, including blind and buried vias
|
|
- Create differential pair routes for high-speed signals
|
|
- Generate copper pours (ground planes, power planes)
|
|
- Define net classes with specific design rules
|
|
|
|
### Design Rules
|
|
- Set global design rules for clearance, track width, etc.
|
|
- Define specific rules for different net classes
|
|
- Run Design Rule Check (DRC) to validate the design
|
|
- View and manage DRC violations
|
|
|
|
### Export
|
|
- Generate industry-standard Gerber files for fabrication
|
|
- Export PDF documentation of the PCB
|
|
- Create SVG vector graphics of the board
|
|
- Generate 3D models in STEP or VRML format
|
|
- Produce bill of materials (BOM) in various formats
|
|
|
|
## Implementation Details
|
|
|
|
The KiCAD MCP implementation uses a modular, maintainable architecture:
|
|
|
|
### TypeScript MCP Server (Node.js)
|
|
- **kicad-server.ts**: The main server that implements the MCP protocol
|
|
- Uses STDIO transport for reliable communication with Cline
|
|
- Manages the Python process for KiCAD operations
|
|
- Handles command queuing, error recovery, and response formatting
|
|
|
|
### Python Interface
|
|
- **kicad_interface.py**: The main Python interface that:
|
|
- Parses commands received as JSON via stdin
|
|
- Routes commands to the appropriate specialized handlers
|
|
- Returns results as JSON via stdout
|
|
- Handles errors gracefully with detailed information
|
|
|
|
- **Modular Command Structure**:
|
|
- `commands/project.py`: Project creation, opening, saving
|
|
- `commands/schematic.py`: Schematic creation and management
|
|
- `commands/component_schematic.py`: Schematic component operations
|
|
- `commands/connection_schematic.py`: Wire and connection management
|
|
- `commands/library_schematic.py`: Symbol library integration
|
|
- `commands/board/`: Modular board manipulation functions
|
|
- `size.py`: Board size operations
|
|
- `layers.py`: Layer management
|
|
- `outline.py`: Board outline creation
|
|
- `view.py`: Visualization functions
|
|
- `commands/component.py`: PCB component placement and manipulation
|
|
- `commands/routing.py`: Trace routing and net management
|
|
- `commands/design_rules.py`: DRC and rule configuration
|
|
- `commands/export.py`: Output generation in various formats
|
|
|
|
This architecture ensures that each aspect of PCB design is handled by specialized modules while maintaining a clean, consistent interface layer.
|
|
|
|
## Troubleshooting
|
|
|
|
### Common Issues and Solutions
|
|
|
|
**Problem: KiCAD MCP isn't showing up in Claude's tools**
|
|
- Make sure VSCode is completely restarted after updating the Cline MCP settings
|
|
- Verify the paths in the config are correct for your system
|
|
- Check that the `npm run build` completed successfully
|
|
|
|
**Problem: Node.js errors when launching the server**
|
|
- Ensure you're using Node.js v18 or higher
|
|
- Try running `npm install` again to ensure all dependencies are properly installed
|
|
- Check the console output for specific error messages
|
|
|
|
**Problem: Python errors or KiCAD commands failing**
|
|
- Verify that KiCAD 9.0 is properly installed
|
|
- Check that the PYTHONPATH in the configuration points to the correct location
|
|
- Try running a simple KiCAD Python script directly to ensure the pcbnew module is accessible
|
|
|
|
**Problem: Claude can't find or load your KiCAD project**
|
|
- Use absolute paths when referring to project locations
|
|
- Ensure the user running VSCode has access permissions to the directories
|
|
|
|
### Getting Help
|
|
|
|
If you encounter issues not covered in this troubleshooting section:
|
|
1. Check the console output for error messages
|
|
2. Look for similar issues in the GitHub repository's Issues section
|
|
3. Open a new issue with detailed information about the problem
|
|
|
|
## Contributing
|
|
|
|
Contributions to this project are welcome! Here's how you can help:
|
|
|
|
1. **Report Bugs**: Open an issue describing what went wrong and how to reproduce it
|
|
2. **Suggest Features**: Have an idea? Share it via an issue
|
|
3. **Submit Pull Requests**: Fixed a bug or added a feature? Submit a PR!
|
|
4. **Improve Documentation**: Help clarify or expand the documentation
|
|
|
|
Please follow the existing code style and include tests for new features.
|
|
|
|
## License
|
|
|
|
This project is licensed under the MIT License - see the LICENSE file for details.
|