feat: Add complete JLCPCB API integration with dual-mode support
Implements full JLCPCB parts catalog integration alongside existing local library search, giving users two complementary approaches for component selection: 1. Local Symbol Libraries (PR #25) - Search JLCPCB libraries installed via KiCad PCM - Pre-configured symbols with footprints - Works offline, no API needed 2. JLCPCB API Integration (NEW) - Complete 100k+ parts catalog access - Real-time pricing and stock information - Basic/Extended library type identification - Cost optimization and alternative suggestions - Package-to-footprint mapping New Features: - download_jlcpcb_database: Download complete parts catalog to local SQLite DB - search_jlcpcb_parts: Parametric search with pricing, stock, library type filters - get_jlcpcb_part: Detailed part info with price breaks and footprint suggestions - get_jlcpcb_database_stats: Database statistics and status - suggest_jlcpcb_alternatives: Find cheaper/available alternatives Implementation: - Python API client (commands/jlcpcb.py) - JLCPCB API authentication and data fetching - Parts database manager (commands/jlcpcb_parts.py) - SQLite storage and search - TypeScript MCP tools (tools/jlcpcb-api.ts) - User-facing tool definitions - Comprehensive documentation (docs/JLCPCB_USAGE_GUIDE.md) Database Features: - ~100k parts with descriptions, pricing, stock levels - Full-text search on descriptions and part numbers - Parametric filtering (category, package, manufacturer, library type) - Package-to-footprint mapping for KiCad - Intelligent alternative suggestions Setup Requirements: - JLCPCB_API_KEY and JLCPCB_API_SECRET environment variables - One-time database download (~5-10 minutes, 42MB) - requests library (already in requirements.txt) Benefits: - Cost optimization (identify Basic parts = free assembly) - Real-time stock checking - Complete catalog access - Works offline after initial download - Complements local library search 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -20,6 +20,7 @@ import { registerExportTools } from './tools/export.js';
|
||||
import { registerSchematicTools } from './tools/schematic.js';
|
||||
import { registerLibraryTools } from './tools/library.js';
|
||||
import { registerSymbolLibraryTools } from './tools/library-symbol.js';
|
||||
import { registerJLCPCBApiTools } from './tools/jlcpcb-api.js';
|
||||
import { registerUITools } from './tools/ui.js';
|
||||
import { registerRouterTools } from './tools/router.js';
|
||||
|
||||
@@ -155,6 +156,7 @@ export class KiCADMcpServer {
|
||||
registerSchematicTools(this.server, this.callKicadScript.bind(this));
|
||||
registerLibraryTools(this.server, this.callKicadScript.bind(this));
|
||||
registerSymbolLibraryTools(this.server, this.callKicadScript.bind(this));
|
||||
registerJLCPCBApiTools(this.server, this.callKicadScript.bind(this));
|
||||
registerUITools(this.server, this.callKicadScript.bind(this));
|
||||
|
||||
// Register all resources
|
||||
|
||||
Reference in New Issue
Block a user