Skip to main content
Glama
CLIENT_CONFIGURATION.md11.2 kB
# KiCAD MCP Server - Client Configuration Guide This guide shows how to configure the KiCAD MCP Server with various MCP-compatible clients. --- ## Quick Reference | Client | Config File Location | |--------|---------------------| | **Claude Desktop** | Linux: `~/.config/Claude/claude_desktop_config.json`<br>macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`<br>Windows: `%APPDATA%\Claude\claude_desktop_config.json` | | **Cline (VSCode)** | VSCode Settings → Extensions → Cline → MCP Settings | | **Claude Code** | `~/.config/claude-code/mcp_config.json` | --- ## 1. Claude Desktop ### Linux Configuration **File:** `~/.config/Claude/claude_desktop_config.json` ```json { "mcpServers": { "kicad": { "command": "node", "args": ["/home/YOUR_USERNAME/MCP/KiCAD-MCP-Server/dist/index.js"], "env": { "PYTHONPATH": "/usr/lib/kicad/lib/python3/dist-packages", "NODE_ENV": "production" } } } } ``` **Important:** Replace `/home/YOUR_USERNAME` with your actual home directory path. ### macOS Configuration **File:** `~/Library/Application Support/Claude/claude_desktop_config.json` ```json { "mcpServers": { "kicad": { "command": "node", "args": ["/Users/YOUR_USERNAME/MCP/KiCAD-MCP-Server/dist/index.js"], "env": { "PYTHONPATH": "/Applications/KiCad/KiCad.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.11/site-packages", "NODE_ENV": "production" } } } } ``` **Note:** Adjust Python version (3.11) and KiCAD path based on your installation. ### Windows Configuration **File:** `%APPDATA%\Claude\claude_desktop_config.json` ```json { "mcpServers": { "kicad": { "command": "node", "args": ["C:\\Users\\YOUR_USERNAME\\MCP\\KiCAD-MCP-Server\\dist\\index.js"], "env": { "PYTHONPATH": "C:\\Program Files\\KiCad\\9.0\\bin\\Lib\\site-packages", "NODE_ENV": "production" } } } } ``` **Note:** Use double backslashes (`\\`) in Windows paths. --- ## 2. Cline (VSCode Extension) ### Configuration Steps 1. Open VSCode 2. Install Cline extension from marketplace 3. Open Settings (Ctrl+,) 4. Search for "Cline MCP" 5. Click "Edit in settings.json" ### settings.json Configuration ```json { "cline.mcpServers": { "kicad": { "command": "node", "args": ["/home/YOUR_USERNAME/MCP/KiCAD-MCP-Server/dist/index.js"], "env": { "PYTHONPATH": "/usr/lib/kicad/lib/python3/dist-packages" } } } } ``` ### Alternative: Workspace Configuration Create `.vscode/settings.json` in your project: ```json { "cline.mcpServers": { "kicad": { "command": "node", "args": ["${workspaceFolder}/../KiCAD-MCP-Server/dist/index.js"], "env": { "PYTHONPATH": "/usr/lib/kicad/lib/python3/dist-packages" } } } } ``` --- ## 3. Claude Code CLI ### Configuration File **File:** `~/.config/claude-code/mcp_config.json` ```json { "mcpServers": { "kicad": { "command": "node", "args": ["/home/YOUR_USERNAME/MCP/KiCAD-MCP-Server/dist/index.js"], "env": { "PYTHONPATH": "/usr/lib/kicad/lib/python3/dist-packages", "LOG_LEVEL": "info" } } } } ``` ### Verify Configuration ```bash # List available MCP servers claude-code mcp list # Test KiCAD server connection claude-code mcp test kicad ``` --- ## 4. Generic MCP Client For any MCP-compatible client that supports STDIO transport: ### Basic Configuration ```json { "command": "node", "args": ["/path/to/KiCAD-MCP-Server/dist/index.js"], "transport": "stdio", "env": { "PYTHONPATH": "/path/to/kicad/python/packages" } } ``` ### With Custom Config File ```json { "command": "node", "args": [ "/path/to/KiCAD-MCP-Server/dist/index.js", "--config", "/path/to/custom-config.json" ], "transport": "stdio" } ``` --- ## Environment Variables ### Required | Variable | Description | Example | |----------|-------------|---------| | `PYTHONPATH` | Path to KiCAD Python modules | `/usr/lib/kicad/lib/python3/dist-packages` | ### Optional | Variable | Description | Default | |----------|-------------|---------| | `LOG_LEVEL` | Logging verbosity | `info` | | `NODE_ENV` | Node environment | `development` | | `KICAD_BACKEND` | Force backend (`swig` or `ipc`) | Auto-detect | --- ## Finding KiCAD Python Path ### Linux (Ubuntu/Debian) ```bash # Method 1: dpkg query dpkg -L kicad | grep "site-packages" | head -1 # Method 2: Python auto-detect python3 -c "from pathlib import Path; import sys; print([p for p in Path('/usr').rglob('pcbnew.py')])" # Method 3: Use platform helper cd /path/to/KiCAD-MCP-Server PYTHONPATH=python python3 -c "from utils.platform_helper import PlatformHelper; print(PlatformHelper.get_kicad_python_paths())" ``` ### macOS ```bash # Typical location /Applications/KiCad/KiCad.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.11/site-packages # Find dynamically find /Applications/KiCad -name "pcbnew.py" -type f ``` ### Windows ```cmd REM Typical location (KiCAD 9.0) C:\Program Files\KiCad\9.0\bin\Lib\site-packages REM Search for pcbnew.py where /r "C:\Program Files\KiCad" pcbnew.py ``` --- ## Testing Your Configuration ### 1. Verify Server Starts ```bash # Start server manually node dist/index.js # Should see output like: # [INFO] Using STDIO transport for local communication # [INFO] Registering KiCAD tools, resources, and prompts... # [INFO] Successfully connected to STDIO transport ``` Press Ctrl+C to stop. ### 2. Test with Claude Desktop 1. Restart Claude Desktop 2. Start a new conversation 3. Look for a "hammer" icon or "Tools" indicator 4. The KiCAD tools should be listed ### 3. Test with Cline 1. Open Cline panel in VSCode 2. Start a new chat 3. Type: "List available KiCAD tools" 4. Cline should show KiCAD MCP tools are available ### 4. Test with Claude Code ```bash # Start Claude Code with MCP claude-code # In the conversation, ask: # "What KiCAD tools are available?" ``` --- ## Troubleshooting ### Server Not Starting **Error:** `Cannot find module 'pcbnew'` **Solution:** Verify `PYTHONPATH` is correct: ```bash python3 -c "import sys; sys.path.append('/usr/lib/kicad/lib/python3/dist-packages'); import pcbnew; print(pcbnew.GetBuildVersion())" ``` **Error:** `ENOENT: no such file or directory` **Solution:** Check that `dist/index.js` exists: ```bash cd /path/to/KiCAD-MCP-Server npm run build ls -lh dist/index.js ``` ### Client Can't Connect **Issue:** Claude Desktop doesn't show KiCAD tools **Solutions:** 1. Restart Claude Desktop completely (quit, not just close window) 2. Check config file syntax with `jq`: ```bash jq . ~/.config/Claude/claude_desktop_config.json ``` 3. Check Claude Desktop logs: - Linux: `~/.config/Claude/logs/` - macOS: `~/Library/Logs/Claude/` - Windows: `%APPDATA%\Claude\logs\` ### Python Module Errors **Error:** `ModuleNotFoundError: No module named 'kicad_api'` **Solution:** Server is looking for the wrong Python modules. This is an internal error. Check: ```bash # Verify PYTHONPATH in server config includes both KiCAD and our modules "PYTHONPATH": "/usr/lib/kicad/lib/python3/dist-packages:/path/to/KiCAD-MCP-Server/python" ``` --- ## Advanced Configuration ### Multiple KiCAD Versions If you have multiple KiCAD versions installed: ```json { "mcpServers": { "kicad-9": { "command": "node", "args": ["/path/to/KiCAD-MCP-Server/dist/index.js"], "env": { "PYTHONPATH": "/usr/lib/kicad-9/lib/python3/dist-packages" } }, "kicad-8": { "command": "node", "args": ["/path/to/KiCAD-MCP-Server/dist/index.js"], "env": { "PYTHONPATH": "/usr/lib/kicad-8/lib/python3/dist-packages" } } } } ``` ### Custom Logging Create a custom config file `config/production.json`: ```json { "logLevel": "debug", "python": { "executable": "python3", "timeout": 30000 } } ``` Then use it: ```json { "command": "node", "args": [ "/path/to/dist/index.js", "--config", "/path/to/config/production.json" ] } ``` ### Development vs Production Development (verbose logging): ```json { "env": { "NODE_ENV": "development", "LOG_LEVEL": "debug" } } ``` Production (minimal logging): ```json { "env": { "NODE_ENV": "production", "LOG_LEVEL": "info" } } ``` --- ## Platform-Specific Examples ### Ubuntu 24.04 LTS ```json { "mcpServers": { "kicad": { "command": "node", "args": ["/home/chris/MCP/KiCAD-MCP-Server/dist/index.js"], "env": { "PYTHONPATH": "/usr/share/kicad/scripting/plugins:/usr/lib/kicad/lib/python3/dist-packages" } } } } ``` ### Arch Linux ```json { "mcpServers": { "kicad": { "command": "node", "args": ["/home/user/KiCAD-MCP-Server/dist/index.js"], "env": { "PYTHONPATH": "/usr/lib/python3.12/site-packages" } } } } ``` ### Windows 11 with WSL2 Running server in WSL2, client on Windows: ```json { "mcpServers": { "kicad": { "command": "wsl", "args": [ "node", "/home/user/KiCAD-MCP-Server/dist/index.js" ], "env": { "PYTHONPATH": "/usr/lib/kicad/lib/python3/dist-packages" } } } } ``` --- ## Security Considerations ### File Permissions Ensure config files are only readable by your user: ```bash chmod 600 ~/.config/Claude/claude_desktop_config.json ``` ### Network Isolation The KiCAD MCP Server uses STDIO transport (no network ports), providing isolation by default. ### Code Execution The server executes Python scripts from the `python/` directory. Only run servers from trusted sources. --- ## Next Steps After configuration: 1. **Test Basic Functionality** - Ask: "Create a new KiCAD project called 'test'" - Ask: "What tools are available for PCB design?" 2. **Explore Resources** - Ask: "Show me board information" - Ask: "What layers are in my PCB?" 3. **Try Advanced Features** - Ask: "Add a resistor to my schematic" - Ask: "Route a trace between two points" --- ## Support If you encounter issues: 1. Check logs in `~/.kicad-mcp/logs/` (if logging is enabled) 2. Verify KiCAD installation: `kicad-cli version` 3. Test Python modules: `python3 -c "import pcbnew; print(pcbnew.GetBuildVersion())"` 4. Review server startup logs (manual start with `node dist/index.js`) 5. Check client-specific logs (see Troubleshooting section) For bugs or feature requests, open an issue on GitHub. --- **Last Updated:** October 25, 2025 **Version:** 2.0.0-alpha.1

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mixelpixx/KiCAD-MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server