ByteBard
bc7de47053
Fix Gerber drill file export for KiCAD 9.0
...
Replace EXCELLON_WRITER.SetOptions() Python API with kicad-cli subprocess for reliable drill file generation across KiCAD versions.
Issue:
- KiCAD 9.0 changed EXCELLON_WRITER.SetOptions() signature
- Added 3 required parameters: aMinimalHeader, aOffset, aMerge_PTH_NPTH
- API signature unstable across versions
Fix:
- Replace Python API with kicad-cli subprocess approach
- Use 'kicad-cli pcb export drill' command
- More stable and version-independent
- Generates separate PTH/NPTH drill files correctly
Command used:
```
kicad-cli pcb export drill \
--output <dir> \
--format excellon \
--drill-origin absolute \
--excellon-separate-th \
<board_file>
```
Testing:
- Integration test: 12/12 tests passed (100% success)
- Generates PTH.drl and NPTH.drl files correctly
- Works with KiCAD 9.0.6 on Windows
Related to earlier fixes:
- design_rules.py: SetCurrent* → SetCustom* API migration
- view.py: PlotLayer() signature update
- component.py: FP_VIRTUAL → FP_BOARD_ONLY
Status: All KiCAD 9.0 API changes resolved ✅
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-17 16:12:22 -05:00
ByteBard
afcfe842cf
Fix KiCAD 9.0 API compatibility for board, export, and view commands
...
This commit resolves critical KiCAD 9.0 API compatibility issues identified
through comprehensive testing and code audit.
## Major Fixes
### board/size.py - Board Outline Creation
- **Issue:** Stub implementation didn't create actual board edges
- **Fix:** Delegate to BoardOutlineCommands for proper Edge.Cuts geometry creation
- **Impact:** set_board_size() now creates actual rectangular board outlines
- **Tested:** 100x80mm and 4x3 inch board creation validated
### board/view.py - Board Extents Query
- **Issue:** get_board_extents() command not implemented
- **Fix:** New implementation returns complete bounding box data
- **Returns:** left, top, right, bottom, width, height, center coordinates
- **Tested:** Successfully returns 93.55mm × 212.05mm for test board
### board/__init__.py - Delegation Wiring
- **Fix:** Added get_board_extents() delegation to BoardViewCommands
- **Impact:** Completes board query API surface
### export.py - 3D Model Export
- **Issue:** Get3DViewer() doesn't work in headless KiCAD 9.0
- **Fix:** Replace with kicad-cli subprocess calls for STEP/VRML export
- **New:** _find_kicad_cli() helper for cross-platform CLI detection
- **Features:**
- STEP export with component/copper/silkscreen/soldermask options
- VRML export with configurable units
- 5-minute timeout for large boards
- Proper error handling and validation
- **Tested:**
- STEP export: 144.65 MB (full), 114.61 MB (board-only)
- VRML export: 60.69 MB
- All exports successful on 415-component board
## Test Results
All changes validated with test_kicad_9_fixes.py:
- ✅ Board outline creation (mm and inch units)
- ✅ Board extents query
- ✅ STEP 3D export (full and board-only)
- ✅ VRML 3D export
- ✅ Error handling and validation
## Compatibility
- **KiCAD Version:** 9.0.6 (tested)
- **Backward Compatible:** Yes (kicad-cli available in KiCAD 8.0+)
- **Platform:** Windows, macOS, Linux
## Breaking Changes
None - all changes are additions or fixes to broken functionality.
## Related
- Complements previous fixes: design_rules.py, component.py, layers.py
- Part of comprehensive KiCAD 9.0 compatibility effort
- Documentation: PYTHON_AUDIT_REPORT_FINAL.md, TEST_RESULTS.md
Fixes #<issue-number-if-applicable>
2025-11-17 15:40:20 -05:00
ByteBard
8c04038371
various fixes for kicad 9
2025-11-14 16:38:16 -05:00
KiCAD MCP Bot
d23e90b847
feat: Implement comprehensive MCP capabilities with tool schemas and resources
...
This major update brings the KiCAD MCP server to full MCP 2025-06-18 spec
compliance with proper tool schemas and resources capability.
## Dependencies Updated
- @modelcontextprotocol/sdk: 1.10.0 → 1.21.0 (critical update)
- dotenv: 16.0.3 → 17.0.0 (latest stable)
- typescript: 5.2.2 → 5.9.3
- zod: 3.22.2 → 3.25.0
- @types/node: 20.5.6 → 20.19.0
- @types/express: 5.0.1 → 5.0.5
- requests (Python): 2.31.0 → 2.32.5
- Added @cfworker/json-schema for MCP SDK compatibility
## Tool Schemas (52 tools)
Created comprehensive JSON Schema definitions for all tools organized by category:
- **Project Tools** (4): create_project, open_project, save_project, get_project_info
- **Board Tools** (9): set_board_size, add_board_outline, add_layer, etc.
- **Component Tools** (10): place_component, move_component, rotate_component, etc.
- **Routing Tools** (8): add_net, route_trace, add_via, route_differential_pair, etc.
- **Library Tools** (4): list_libraries, search_footprints, etc.
- **Design Rule Tools** (4): set_design_rules, run_drc, get_drc_violations, etc.
- **Export Tools** (5): export_gerber, export_pdf, export_svg, export_3d, export_bom
- **Schematic Tools** (6): create_schematic, add_schematic_component, etc.
- **UI Tools** (2): check_kicad_ui, launch_kicad_ui
Each tool now has:
- Detailed descriptions explaining purpose
- Complete JSON Schema for input validation
- Required/optional parameter specifications
- Type constraints and validation rules
## Resources Capability (8 resources)
Implemented MCP resources to expose project state:
- `kicad://project/current/info` - Project metadata
- `kicad://project/current/board` - Board properties
- `kicad://project/current/components` - Component list
- `kicad://project/current/nets` - Electrical nets
- `kicad://project/current/layers` - Layer stack
- `kicad://project/current/design-rules` - Design rules
- `kicad://project/current/drc-report` - DRC violations
- `kicad://board/preview.png` - Board preview image
## Protocol Compliance
- Updated initialize response with proper capabilities declaration
- Added `tools: { listChanged: true }`
- Added `resources: { subscribe: false, listChanged: true }`
- Enhanced serverInfo with title and version
- Added instructions field for user guidance
- Implemented resources/list method
- Implemented resources/read method with proper error handling
- All responses follow MCP 2025-06-18 spec exactly
## Benefits
✅ Claude/LLMs can now understand what each tool does
✅ Automatic parameter validation via JSON Schema
✅ Better error messages for invalid inputs
✅ Access to project state via resources (no need to call tools)
✅ Full MCP protocol compliance
✅ Better developer experience with latest SDK features
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-05 21:50:33 -05:00
KiCAD MCP Bot
1ca3e1b5db
feat: Add JSON-RPC 2.0 MCP protocol support for Claude Desktop
...
This commit fixes Windows Claude Desktop compatibility by implementing
proper MCP JSON-RPC 2.0 protocol handling in the Python interface.
Changes:
- Added JSON-RPC 2.0 message detection and handling
- Implemented MCP protocol methods: initialize, tools/list, tools/call
- Maintained backwards compatibility with legacy custom format
- Removed accidentally included typescript-sdk directory
Fixes #5 - Claude Desktop not working on Windows
Credit to @spplecxer for identifying the issue and providing the fix.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-05 21:27:41 -05:00
KiCAD MCP Bot
5717a91a59
Add comprehensive Windows support and documentation
...
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 >
2025-11-05 09:10:45 -05:00
KiCAD MCP Bot
89247fffe0
Update repository with project files and documentation
...
- 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 >
2025-11-01 19:30:39 -04:00
KiCAD MCP Bot
e4c7119c51
feat: Week 1 complete - Linux support + IPC API prep
...
🎉 Major v2.0 rebuild kickoff - Week 1 accomplished!
## Highlights
### Cross-Platform Support 🌍
- ✅ Linux primary platform (Ubuntu/Debian tested)
- ✅ Windows fully supported
- ✅ macOS experimental support
- ✅ Platform-agnostic path handling (XDG spec)
- ✅ Auto-detection of KiCAD installation
### Infrastructure 🏗️
- ✅ GitHub Actions CI/CD pipeline
- ✅ Pytest framework with 20+ tests
- ✅ Pre-commit hooks (Black, MyPy, ESLint)
- ✅ Automated Linux installation script
- ✅ Enhanced npm scripts
### IPC API Migration Prep 🚀
- ✅ Comprehensive migration plan (30 pages)
- ✅ Backend abstraction layer (800+ lines)
- ✅ Factory pattern with auto-detection
- ✅ SWIG backward compatibility wrapper
- ✅ IPC backend skeleton ready
### Documentation 📚
- ✅ Updated README (Linux installation)
- ✅ CONTRIBUTING.md guide
- ✅ Linux compatibility audit
- ✅ IPC API migration plan
- ✅ Session summaries
- ✅ Platform-specific config templates
## Files Changed
- 27 files created
- ~3,000 lines of code/docs
- 8 comprehensive documentation pages
- 20+ unit tests
- 5 abstraction layer modules
## Next Steps
- Week 2: IPC API migration (project.py → component.py → routing.py)
- Migrate from deprecated SWIG to official IPC API
- JLCPCB/Digikey integration prep
🤖 Generated with Claude Code
https://claude.com/claude-code
Co-Authored-By: Claude <noreply@anthropic.com >
2025-10-25 20:48:00 -04:00