Files
kicad-mcp-server/CHANGELOG.md
KiCAD MCP Bot 994965e041 feat: Complete Phase 1 & 2 - Schematic workflow fix and JLCPCB integration
Phase 1: Schematic Workflow Fix (Issue #26)
- Fixed broken schematic workflow using template-based symbol cloning
- Updated create_project to generate both PCB and schematic files
- Rewrote add_schematic_component to use kicad-skip clone() API
- Added template schematics with cloneable R, C, LED symbols
- All schematic tests now passing

Phase 2: JLCPCB Integration Complete
- Integrated JLCSearch public API (no authentication required)
- Access to ~100k JLCPCB parts with real-time stock and pricing
- Implemented parametric search for resistors, capacitors, components
- Added package-to-footprint mapping for KiCad integration
- Cost optimization with Basic vs Extended library classification
- Alternative part suggestions with price comparison

New Components:
- python/commands/jlcsearch.py - JLCSearch API client
- python/templates/ - Template schematics for symbol cloning
- docs/JLCPCB_INTEGRATION.md - Comprehensive API documentation
- docs/SCHEMATIC_WORKFLOW_FIX.md - Phase 1 technical details
- CHANGELOG.md - Consolidated unified changelog
- PHASE_2_COMPLETE.md - Phase 2 implementation summary

MCP Tools Available:
- download_jlcpcb_database - Download full parts catalog
- search_jlcpcb_parts - Parametric search with filters
- get_jlcpcb_part - Part details + footprint suggestions
- get_jlcpcb_database_stats - Database statistics
- suggest_jlcpcb_alternatives - Find similar/cheaper parts

Technical Improvements:
- SQLite database with FTS5 full-text search
- HMAC-SHA256 authentication support (official JLCPCB API)
- Improved .gitignore to exclude credentials and databases
- Template-based schematic creation workflow

Testing:
- All integration tests passing
- Database operations validated
- Live API connectivity confirmed
- Schematic workflow end-to-end verified

Credits:
- JLCSearch API: @tscircuit
- Local JLCPCB search: @l3wi

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-10 09:04:56 -05:00

7.0 KiB

Changelog

All notable changes to the KiCAD MCP Server project are documented here.

[2.1.0-alpha] - 2026-01-10

Phase 2: JLCPCB Integration Complete

Major Features:

  • Complete JLCPCB parts integration via JLCSearch public API
  • Access to ~100k JLCPCB parts catalog
  • Real-time stock and pricing data
  • Parametric component search
  • Cost optimization (Basic vs Extended library)
  • KiCad footprint mapping
  • Alternative part suggestions

New Components:

  • python/commands/jlcsearch.py - JLCSearch API client (no auth required)
  • python/commands/jlcpcb_parts.py - Enhanced with import_jlcsearch_parts()
  • docs/JLCPCB_INTEGRATION.md - Comprehensive integration guide

MCP Tools Available:

  • download_jlcpcb_database - Download full parts catalog
  • search_jlcpcb_parts - Parametric search with filters
  • get_jlcpcb_part - Part details + footprint suggestions
  • get_jlcpcb_database_stats - Database statistics
  • suggest_jlcpcb_alternatives - Find similar/cheaper parts

Technical Improvements:

  • SQLite database with full-text search (FTS5)
  • Package-to-footprint mapping for standard SMD packages
  • Price comparison and cost optimization algorithms
  • HMAC-SHA256 authentication support (for official JLCPCB API)

Testing:

  • All integration tests passing
  • Database operations validated
  • Live API connectivity confirmed
  • End-to-end MCP tool testing complete

Documentation:

  • Complete API reference with examples
  • Package mapping tables (0402, 0603, 0805, SOT-23, etc.)
  • Best practices guide
  • Troubleshooting section

[2.1.0-alpha] - 2025-11-30

Phase 1: Schematic Workflow Fix

Critical Bug Fix:

  • Fixed completely broken schematic workflow (Issue #26)
  • Created template-based symbol cloning approach
  • All schematic tests now passing

Root Cause:

  • kicad-skip library limitation: cannot create symbols from scratch, only clone existing ones

Solution:

  • Template schematic with cloneable R, C, LED symbols
  • Updated create_project to create both PCB and schematic
  • Rewrote add_schematic_component to use clone() API
  • Proper UUID generation and position setting

Files Modified:

  • python/commands/project.py - Now creates schematic files
  • python/commands/schematic.py - Uses template approach
  • python/commands/component_schematic.py - Complete rewrite

Files Created:

  • python/templates/template_with_symbols.kicad_sch
  • python/templates/empty.kicad_sch
  • docs/SCHEMATIC_WORKFLOW_FIX.md

Testing:

  • Created comprehensive test suite
  • All 7 tests passing
  • KiCad CLI validation successful

[2.0.0-alpha] - 2025-11-05

Router Pattern & Tool Organization

Major Architecture Change:

  • Implemented tool router pattern (70% context reduction)
  • 12 direct tools, 47 routed tools in 7 categories
  • Smart tool discovery system

New Router Tools:

  • list_tool_categories - Browse available categories
  • get_category_tools - View tools in category
  • search_tools - Find tools by keyword
  • execute_tool - Run any routed tool

Benefits:

  • Dramatically reduced AI context usage
  • Maintained full functionality (64 tools)
  • Improved tool discoverability
  • Better organization for users

[2.0.0-alpha] - 2025-11-01

IPC Backend Integration

Experimental Feature:

  • KiCad 9.0 IPC API integration for real-time UI sync
  • Changes appear immediately in KiCad (no manual reload)
  • Hybrid backend: IPC + SWIG fallback
  • 20+ commands with IPC support

Implementation:

  • Routing operations (interactive push-and-shove)
  • Component placement and modification
  • Zone operations and fills
  • DRC and verification

Status:

  • Under active development
  • Enable via KiCad: Preferences > Plugins > Enable IPC API Server
  • Automatic fallback to SWIG when IPC unavailable

[2.0.0-alpha] - 2025-10-26

Initial JLCPCB Integration (Local Libraries)

Features:

  • Local JLCPCB symbol library search
  • Integration with KiCad Plugin and Content Manager
  • Search by LCSC part number, manufacturer, description

Credit:

Components:

  • python/commands/symbol_library.py
  • Basic library search functionality

[1.0.0] - 2025-10-01

Initial Release

Core Features:

  • 64 fully-documented MCP tools
  • JSON Schema validation for all tools
  • 8 dynamic resources for project state
  • Cross-platform support (Linux, Windows, macOS)
  • Comprehensive error handling
  • Detailed logging

Tool Categories:

  • Project Management (4 tools)
  • Board Operations (9 tools)
  • Component Management (8 tools)
  • Routing (6 tools)
  • Export & Manufacturing (5 tools)
  • Design Rule Checking (4 tools)
  • Schematic Operations (6 tools)
  • Symbol Library (3 tools)
  • JLCPCB Integration (5 tools)

Platform Support:

  • Linux (KiCad 7.x, 8.x, 9.x)
  • Windows (KiCad 9.x)
  • macOS (KiCad 9.x)

Documentation:

  • Complete README with setup instructions
  • Platform-specific guides
  • Tool reference documentation
  • Contributing guidelines

Version Numbering

  • 2.1.0-alpha: Current development version with JLCPCB integration
  • 2.0.0-alpha: Router pattern and IPC backend
  • 1.0.0: Initial stable release

Breaking Changes

2.1.0-alpha

  • None (additive changes only)

2.0.0-alpha

  • Tool execution now requires router for 47 tools
  • Direct tool access limited to 12 high-frequency tools
  • Schema validation stricter (catches errors earlier)

Deprecations

2.1.0-alpha

  • docs/JLCPCB_USAGE_GUIDE.md - Superseded by docs/JLCPCB_INTEGRATION.md
  • docs/JLCPCB_INTEGRATION_PLAN.md - Implementation complete

Migration Guide

Upgrading to 2.1.0-alpha from 2.0.0-alpha

New Dependencies:

  • No new system dependencies
  • Python packages: requests (already in requirements.txt)

Database Setup:

  1. Run download_jlcpcb_database tool (one-time, ~5-10 minutes)
  2. Database created at data/jlcpcb_parts.db
  3. Subsequent searches use local database (instant)

API Changes:

  • All existing tools remain compatible
  • 5 new JLCPCB tools available
  • No breaking changes to existing functionality

Upgrading to 2.0.0-alpha from 1.0.0

Router Pattern:

  • Some tools now accessed via execute_tool instead of direct calls
  • Use list_tool_categories to discover available tools
  • Search with search_tools to find specific functionality

IPC Backend (Optional):

  • Enable in KiCad: Preferences > Plugins > Enable IPC API Server
  • Set KICAD_BACKEND=ipc environment variable
  • Falls back to SWIG if unavailable

Credits

  • JLCSearch API: @tscircuit
  • JLCParts Database: @yaqwsx
  • Local JLCPCB Search: @l3wi
  • KiCad: KiCad Development Team
  • MCP Protocol: Anthropic

License

See LICENSE file for details.