Adds macOS-specific detection for KiCad's bundled Python, eliminating manual
PYTHONPATH configuration for macOS users.
Changes:
- Detects KiCad bundled Python at standard macOS install path (Python 3.9-3.12)
- Makes KICAD_PYTHON environment variable cross-platform (not just Windows)
- Adds logging for Python detection to aid debugging
- Updates documentation with simplified macOS setup (no PYTHONPATH needed)
Fixes server startup on macOS where existsSync('python3') was failing validation
because it doesn't check PATH.
Based on PR #18 by @hexatriene - applied manually due to merge conflict with
router implementation. Full credit to hexatriene for the solution design and
implementation.
Co-authored-by: hexatriene <106840313+hexatriene@users.noreply.github.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Major improvements to schematic editing capabilities:
## Python Implementation (connection_schematic.py)
- Implemented pin-to-pin connection logic using kicad-skip
- Added get_pin_location() to find absolute pin positions
- Implemented add_connection() for wire connections between component pins
- Added add_net_label() for creating net labels
- Added connect_to_net() to connect pins to named nets
- Implemented get_net_connections() to query net connectivity
- Added generate_netlist() for schematic netlist extraction
## MCP Handlers (kicad_interface.py)
- Added 5 new command handlers:
- add_schematic_connection - Pin-to-pin wiring
- add_schematic_net_label - Net label placement
- connect_to_net - Connect pin to named net
- get_net_connections - Query net connectivity
- generate_netlist - Export netlist data
## TypeScript Tools (schematic.ts)
- Added 5 new MCP tools with proper schemas and validation
- Enhanced user feedback with descriptive messages
- Total schematic tools increased from 3 to 8
## Features
- Pin location calculation with symbol rotation support
- Automatic wire stub creation for net labels
- Comprehensive netlist generation with component and net info
- Full logging for debugging connection issues
This resolves the schematic editing limitations and enables users to:
- Wire component pins together directly
- Use net labels for cleaner schematics
- Query schematic connectivity
- Generate netlists for manufacturing
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- Added missing schematic tools registration (fixes#12)
- Created library tools TypeScript implementation
- Added 4 library management tools (list_libraries, search_footprints, list_library_footprints, get_footprint_info)
- Now properly exports and registers all 10 tool categories
- Total of 54 TypeScript tools now properly registered
This resolves the issue where schematic and library tools were defined in Python but not visible to MCP clients.
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
This commit fixes two critical issues for MCP STDIO transport:
1. Logger fix (src/logger.ts) - CRITICAL MCP protocol compliance
- Change all log levels to use console.error() (stderr) exclusively
- Previous code sent info/debug logs to stdout via console.log()
- MCP protocol uses stdout for JSON-RPC messages
- Logging to stdout corrupts protocol communication
- Impact: Prevents intermittent MCP failures from log pollution
2. Windows compatibility fix (src/index.ts)
- Remove import.meta.url conditional check that fails on Windows
- Path separator differences (forward slash vs backslash) cause
the file:// URL comparison to fail
- Server now runs main() unconditionally as intended
- Impact: Reliable server startup on Windows
Changes:
- src/logger.ts: Use console.error() for all log levels
- src/index.ts: Remove 'if (import.meta.url === ...)' check
- src/index.ts: Add explanatory comment about Windows issue
Tested on Windows 11 with KiCAD 9.0.6.
Integration tests confirm 36KB logs to stderr, 0 bytes to stdout.
Fixes: MCP protocol corruption, Windows startup failures
- Added comprehensive documentation (BUILD_AND_TEST, CLIENT_CONFIG, KNOWN_ISSUES, ROADMAP, etc.)
- Updated core functionality for board outline, size, and utilities
- Added new tools for project, routing, schematic, and UI management
- Included TypeScript SDK with full MCP implementation
- Updated configuration examples for all platforms
- Added changelog and status tracking
- Improved Python utilities with KiCAD process management
- Enhanced resource helpers and server capabilities
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>