{"_id":"@jlcpcb/mcp","_rev":"8-cf9bb5c638d13389724f4c5095bceb76","name":"@jlcpcb/mcp","dist-tags":{"latest":"0.5.0"},"versions":{"0.1.0":{"name":"@jlcpcb/mcp","version":"0.1.0","keywords":["mcp","jlcpcb","jlc","easyeda","kicad","electronics","components","pcb"],"author":"","license":"MIT","_id":"@jlcpcb/mcp@0.1.0","maintainers":[{"name":"lewi","email":"freiberg.lewis@gmail.com"}],"homepage":"https://github.com/l3wi/jlc-cli#readme","bugs":{"url":"https://github.com/l3wi/jlc-cli/issues"},"bin":{"jlc-mcp":"dist/index.js"},"dist":{"shasum":"b347dde3447d62d2e97263f6cd4ebf6e8ff86596","tarball":"https://registry.npmjs.org/@jlcpcb/mcp/-/mcp-0.1.0.tgz","fileCount":24,"integrity":"sha512-dyauOGOEeFYPXCd1P6hHTlsUxEE0/SUCnHoPGL7EfcuIm7jB+SgiUy6wPRAU20yvixh653LAiGJQnwMLiqTnGA==","signatures":[{"sig":"MEYCIQDO21hcBXiYqeI1nTQlYicJv3gRM3PBgT9jI+JD0iVIIQIhALPm2MXPAfrVVpMmHmdSMuPSQYPlHHOZo1C2csYaQBwN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2197019},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"772b100b820f21bb7222a892b2f63f7ead20771a","private":false,"scripts":{"dev":"bun --watch ./src/index.ts","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target node && bun run build:search","clean":"rm -rf dist","start":"bun run ./src/index.ts","typecheck":"tsc --noEmit","build:search":"bun run scripts/build-search-page.ts"},"_npmUser":{"name":"lewi","email":"freiberg.lewis@gmail.com"},"repository":{"url":"git+https://github.com/l3wi/jlc-cli.git","type":"git","directory":"packages/jlc-mcp"},"_npmVersion":"11.0.0","description":"MCP server for JLC/EasyEDA component sourcing, library fetching, and conversion to KiCad format","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.22.0","@jlcpcb/core":"workspace:*","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.0_1767290466326_0.6327224150985891","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@jlcpcb/mcp","version":"0.1.1","keywords":["mcp","jlcpcb","jlc","easyeda","kicad","electronics","components","pcb"],"author":"","license":"MIT","_id":"@jlcpcb/mcp@0.1.1","maintainers":[{"name":"lewi","email":"freiberg.lewis@gmail.com"}],"homepage":"https://github.com/l3wi/jlc-cli#readme","bugs":{"url":"https://github.com/l3wi/jlc-cli/issues"},"bin":{"jlc-mcp":"dist/index.js"},"dist":{"shasum":"ac0b1c982c5aa1b665b5adfb4133d3483699b7dd","tarball":"https://registry.npmjs.org/@jlcpcb/mcp/-/mcp-0.1.1.tgz","fileCount":23,"integrity":"sha512-ugTGzjTG5/I+94sMDZ7HHWWTaTzSvOel8m7bp0JeFmC/QU6XNmvp123QShUKemSFVZcVLtsnXzgc+julmP+bdg==","signatures":[{"sig":"MEUCIEIN/4wOTl7Vb3zVSoSSGCv6a1uJxnsQH+4lnFMIztWgAiEA7pD9SpYjZzL+0ai0nUcOuppaj2yIuO5u+NnXFy3CxVQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1242709},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"55dd923f6a5a813be270acb216f288482640223c","private":false,"scripts":{"dev":"bun --watch ./src/index.ts","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target node && bun run build:search","clean":"rm -rf dist","start":"bun run ./src/index.ts","typecheck":"tsc --noEmit","build:search":"bun run scripts/build-search-page.ts"},"_npmUser":{"name":"lewi","email":"freiberg.lewis@gmail.com"},"repository":{"url":"git+https://github.com/l3wi/jlc-cli.git","type":"git","directory":"packages/jlc-mcp"},"_npmVersion":"10.8.2","description":"MCP server for JLC/EasyEDA component sourcing, library fetching, and conversion to KiCad format","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.22.0","@jlcpcb/core":"workspace:*","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.1_1767297554414_0.4224489686179771","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@jlcpcb/mcp","version":"0.2.0","keywords":["mcp","jlcpcb","jlc","easyeda","kicad","electronics","components","pcb"],"author":"","license":"MIT","_id":"@jlcpcb/mcp@0.2.0","maintainers":[{"name":"lewi","email":"freiberg.lewis@gmail.com"}],"homepage":"https://github.com/l3wi/jlc-cli#readme","bugs":{"url":"https://github.com/l3wi/jlc-cli/issues"},"bin":{"jlc-mcp":"dist/index.js"},"dist":{"shasum":"08352c9c2597367bef3f79ecf2f78bd66777bf3e","tarball":"https://registry.npmjs.org/@jlcpcb/mcp/-/mcp-0.2.0.tgz","fileCount":14,"integrity":"sha512-Nv2j0/t7FDho6YUmr+URMGp3hMNX+qinWZk9TCG1zDbWf+E/vbIVqsEBZo4zc8K8kPKnkvY7Whd9T6VXJwr7CQ==","signatures":[{"sig":"MEYCIQCMqan5qOUnQr+IcQyjPzn+tm0QfJwpbvW2qBvnoXZl8wIhAOY1nvtU25+3jeaxLTLSKQdOSSkWQTqIqilbFiKGCbLx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1135296},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"bf4819ba4b6b1bfa7d016318fb790372247ea0e4","private":false,"scripts":{"dev":"bun --watch ./src/index.ts","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target node","clean":"rm -rf dist","start":"bun run ./src/index.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"lewi","email":"freiberg.lewis@gmail.com"},"repository":{"url":"git+https://github.com/l3wi/jlc-cli.git","type":"git","directory":"packages/jlc-mcp"},"_npmVersion":"10.8.2","description":"MCP server for JLC/EasyEDA component sourcing, library fetching, and conversion to KiCad format","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.22.0","@jlcpcb/core":"workspace:*","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.2.0_1767346607354_0.5621326350331262","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@jlcpcb/mcp","version":"0.3.0","keywords":["mcp","jlcpcb","jlc","easyeda","kicad","electronics","components","pcb"],"author":"","license":"MIT","_id":"@jlcpcb/mcp@0.3.0","maintainers":[{"name":"lewi","email":"freiberg.lewis@gmail.com"}],"homepage":"https://github.com/l3wi/jlc-cli#readme","bugs":{"url":"https://github.com/l3wi/jlc-cli/issues"},"bin":{"jlc-mcp":"dist/index.js"},"dist":{"shasum":"6340794ae144da06ebaaf8ae696e5dd1b5ec8b79","tarball":"https://registry.npmjs.org/@jlcpcb/mcp/-/mcp-0.3.0.tgz","fileCount":15,"integrity":"sha512-JLanWzWUHqoWAm7iW/p1DsKvGAfP9WyopeO0C6/zAapoZXj0a6NDcsIlgZn5NCFTPN4NHq9DowO0iEhkY7kyVw==","signatures":[{"sig":"MEYCIQDz/7cBe9do+lus1J4253yZWDT8E23oJtaHK4DWXWa86QIhAKRivUwFEI7XbOkKq5ULFlQqnRBoDwvwG3qN3xQFAn9G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1116956},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"ddc432abb785fad9b532c9b6cd941a004d01e889","private":false,"scripts":{"dev":"bun --watch ./src/index.ts","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target node","clean":"rm -rf dist","start":"bun run ./src/index.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"lewi","email":"freiberg.lewis@gmail.com"},"repository":{"url":"git+https://github.com/l3wi/jlc-cli.git","type":"git","directory":"packages/jlc-mcp"},"_npmVersion":"10.8.2","description":"MCP server for JLC/EasyEDA component sourcing, library fetching, and conversion to KiCad format","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.22.0","@jlcpcb/core":"workspace:*","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.3.0_1767365341353_0.05268824250735915","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@jlcpcb/mcp","version":"0.3.1","keywords":["mcp","jlcpcb","jlc","easyeda","kicad","electronics","components","pcb"],"author":"","license":"MIT","_id":"@jlcpcb/mcp@0.3.1","maintainers":[{"name":"lewi","email":"freiberg.lewis@gmail.com"}],"homepage":"https://github.com/l3wi/jlc-cli#readme","bugs":{"url":"https://github.com/l3wi/jlc-cli/issues"},"bin":{"jlc-mcp":"dist/index.js"},"dist":{"shasum":"a002d84f803f14855697175bf79ea9872a8cc634","tarball":"https://registry.npmjs.org/@jlcpcb/mcp/-/mcp-0.3.1.tgz","fileCount":16,"integrity":"sha512-XdGidcu06gv+MFDCnFPPNOGZhtg884MXHvxeg7Sui5ASVJAUJklWX3rIYiKct43Zlf9gz6sgom1QbHN8fngZuA==","signatures":[{"sig":"MEYCIQCTYXCacycc3qcbu4tpzzn984WpJd7Xen4WjRLho+wbQgIhAI3S8aVQp29yEYh4m4CNRYgC2mqz++uDzTVi/TyCGMzL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1119569},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"7caf4a319bc27d89fb8fc2635b0a04004d73dc88","private":false,"scripts":{"dev":"bun --watch ./src/index.ts","lint":"eslint src --ext .ts","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target node","clean":"rm -rf dist","start":"bun run ./src/index.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"lewi","email":"freiberg.lewis@gmail.com"},"repository":{"url":"git+https://github.com/l3wi/jlc-cli.git","type":"git","directory":"packages/jlc-mcp"},"_npmVersion":"10.8.2","description":"MCP server for JLC/EasyEDA component sourcing, library fetching, and conversion to KiCad format","directories":{},"_nodeVersion":"20.20.1","dependencies":{"zod":"^3.22.0","@jlcpcb/core":"workspace:*","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.3.1_1774196712501_0.6079680622206931","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@jlcpcb/mcp","version":"0.3.2","keywords":["mcp","jlcpcb","jlc","easyeda","kicad","electronics","components","pcb"],"author":"","license":"MIT","_id":"@jlcpcb/mcp@0.3.2","maintainers":[{"name":"lewi","email":"freiberg.lewis@gmail.com"}],"homepage":"https://github.com/l3wi/jlc-cli#readme","bugs":{"url":"https://github.com/l3wi/jlc-cli/issues"},"bin":{"jlc-mcp":"dist/index.js"},"dist":{"shasum":"4dfc4979992b60c1b5c92a738a3bb0d23c2226bc","tarball":"https://registry.npmjs.org/@jlcpcb/mcp/-/mcp-0.3.2.tgz","fileCount":17,"integrity":"sha512-ilKD5AEFQoecDD+Hfrs2aDTUgz/PDXKGZRUhGZF/44BYaF4+s33acsgNBnMhGeIbMbo82WUlOe4/7C/UlEwy7A==","signatures":[{"sig":"MEUCIDbDSVvtTXrBPJDLVfXffU/7YofMbX6cdy+JKIhUmyezAiEAxG89AXRa5+2N8CxpoDvdfUFjATvKSKuaR8y2w5bKW+4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jlcpcb%2fmcp@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1120600},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"83e40fc9c747ae9f0ab2e08c54e546c96d34f654","private":false,"scripts":{"dev":"bun --watch ./src/index.ts","lint":"eslint src --ext .ts","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target node","clean":"rm -rf dist","start":"bun run ./src/index.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3573b01b-9d57-4a5b-b1f1-c529dab8dea9"}},"repository":{"url":"git+https://github.com/l3wi/jlc-cli.git","type":"git","directory":"packages/jlc-mcp"},"_npmVersion":"11.11.0","description":"MCP server for JLC/EasyEDA component sourcing, library fetching, and conversion to KiCad format","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.22.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.0.0","@jlcpcb/core":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.3.2_1776695878263_0.8872101703768678","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@jlcpcb/mcp","version":"0.4.0","keywords":["mcp","jlcpcb","jlc","easyeda","kicad","electronics","components","pcb"],"author":"","license":"MIT","_id":"@jlcpcb/mcp@0.4.0","maintainers":[{"name":"lewi","email":"freiberg.lewis@gmail.com"}],"homepage":"https://github.com/l3wi/jlc-cli#readme","bugs":{"url":"https://github.com/l3wi/jlc-cli/issues"},"bin":{"jlc-mcp":"dist/index.js"},"dist":{"shasum":"5b681ee9720b165bc69a50e5207a36154959b32c","tarball":"https://registry.npmjs.org/@jlcpcb/mcp/-/mcp-0.4.0.tgz","fileCount":19,"integrity":"sha512-cUPghvhpH6CWyc9clN7bJsiNyrkDM3AxVOQ6vnUtemq+W5pXhd3ICgq1gBIwdfAgNkhyMv/cfkjqOOqITxICpw==","signatures":[{"sig":"MEUCIDguW+tP2WnDNOgM3bD9zDGtEvzftThilveNJZUbZ/VdAiEAsw9ewT6gPn0DP7/zQSbAQMIFjYB/cdaTDin9+BZB194=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jlcpcb%2fmcp@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1127665},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"400a10e51cf8435692da62da8ddef45f7127dc51","private":false,"scripts":{"dev":"bun --watch ./src/index.ts","lint":"eslint src --ext .ts","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target node","clean":"rm -rf dist","start":"bun run ./src/index.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3573b01b-9d57-4a5b-b1f1-c529dab8dea9"}},"repository":{"url":"git+https://github.com/l3wi/jlc-cli.git","type":"git","directory":"packages/jlc-mcp"},"_npmVersion":"11.13.0","description":"MCP server for JLC/EasyEDA component sourcing, library fetching, and conversion to KiCad format","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^3.22.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.0.0","@jlcpcb/core":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.4.0_1781696125348_0.7304990731970171","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"_id":"@jlcpcb/mcp@0.5.0","bin":{"jlc-mcp":"dist/index.js"},"bugs":{"url":"https://github.com/l3wi/jlc-cli/issues"},"dist":{"shasum":"5fa8633629e526c7882232bf135e8b0c04384c7c","tarball":"https://registry.npmjs.org/@jlcpcb/mcp/-/mcp-0.5.0.tgz","fileCount":21,"integrity":"sha512-rIHe3HqBgoPoRhQjmBjQKZGsd0v+xPCMqKHHksisUorgCm3f5HaLHODBhjvNnyQYMWSiWU/qs6fgl4CZRcm08A==","signatures":[{"sig":"MEUCIEdrDQaCMZf+oGlBDOevWBVfjbkAkdLG/z5wZfF6C82hAiEAoORDWWS8fAoXJToU8klqvxdfnefp/cP04QTtorLhUyQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHxPAzPzG3IiUfRUdiRk/ly4fxo5JIGBbfrmM7Ceb0TcAiEA+ZCnO96/JrX/XPAG6GOFNqC3N9CMCr1ErW8jX8MLAJ8="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jlcpcb%2fmcp@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1155890},"main":"./dist/index.js","name":"@jlcpcb/mcp","type":"module","types":"./dist/index.d.ts","author":"","gitHead":"b671221c838f3e10216821dbe69d7f84d03b1e4d","license":"MIT","private":false,"scripts":{"dev":"bun --watch ./src/index.ts","lint":"eslint src --ext .ts","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target node","clean":"rm -rf dist","start":"bun run ./src/index.ts","typecheck":"tsc --noEmit"},"version":"0.5.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3573b01b-9d57-4a5b-b1f1-c529dab8dea9"}},"homepage":"https://github.com/l3wi/jlc-cli#readme","keywords":["mcp","jlcpcb","jlc","easyeda","kicad","electronics","components","pcb"],"repository":{"url":"git+https://github.com/l3wi/jlc-cli.git","type":"git","directory":"packages/jlc-mcp"},"_npmVersion":"11.19.0","description":"MCP server for JLC/EasyEDA component sourcing, library fetching, and conversion to KiCad format","directories":{},"maintainers":[{"name":"lewi","email":"freiberg.lewis@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"zod":"^3.22.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.0.0","@jlcpcb/core":"workspace:*"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.5.0_1790589563524_0.2633405103307298"}}},"time":{"created":"2026-01-01T18:01:06.171Z","modified":"2026-09-28T09:59:24.077Z","0.1.0":"2026-01-01T18:01:06.512Z","0.1.1":"2026-01-01T19:59:14.589Z","0.2.0":"2026-01-02T09:36:47.584Z","0.3.0":"2026-01-02T14:49:01.522Z","0.3.1":"2026-03-22T16:25:12.646Z","0.3.2":"2026-04-20T14:37:58.537Z","0.4.0":"2026-06-17T11:35:25.532Z","0.5.0":"2026-09-28T09:59:23.621Z"},"bugs":{"url":"https://github.com/l3wi/jlc-cli/issues"},"license":"MIT","homepage":"https://github.com/l3wi/jlc-cli#readme","keywords":["mcp","jlcpcb","jlc","easyeda","kicad","electronics","components","pcb"],"repository":{"url":"git+https://github.com/l3wi/jlc-cli.git","type":"git","directory":"packages/jlc-mcp"},"description":"MCP server for JLC/EasyEDA component sourcing, library fetching, and conversion to KiCad format","maintainers":[{"name":"lewi","email":"freiberg.lewis@gmail.com"}],"readme":"# jlc-mcp\n\nMCP server for JLC/LCSC component sourcing and KiCad library conversion.\n\nSearch JLCPCB's parts database, fetch components as KiCad-compatible symbols and footprints, and manage organized component libraries - all through the Model Context Protocol.\n\n## Why LCSC?\n\n**LCSC is JLC PCB's preferred supplier for assembly (PCBA).** Components with LCSC part numbers (e.g., C2040) are guaranteed to be available when ordering PCB assembly from JLCPCB.\n\n- **Basic Parts Library**: Components marked as \"Basic\" have no extended part fee ($3 savings per unique part)\n- **In-Stock Filtering**: Search only parts currently available for immediate assembly\n- **Direct Integration**: Fetched components are ready for JLC assembly without manual library work\n\n## Features\n\n- Search JLCPCB parts database with stock levels and pricing\n- Fetch components directly to KiCad-compatible symbol/footprint format\n- Category-based library organization (Resistors, Capacitors, ICs, etc.)\n- Hybrid footprint strategy: compatible unpolarized two-terminal R/C/L packages use nominal KiCad built-ins; other packages are generated from source geometry\n- EasyEDA community library support for modules and breakouts\n- 3D model downloads (STEP/OBJ formats)\n\n## Usage\n\n### Option 1: Quick Start (npx)\n\nNo installation required - run directly:\n\n```bash\nnpx -y jlc-mcp@latest\n```\n\n**Claude Desktop configuration** (`~/Library/Application Support/Claude/claude_desktop_config.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"jlc\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"jlc-mcp@latest\"]\n    }\n  }\n}\n```\n\n### Option 2: Local Development\n\nClone and build:\n\n```bash\ngit clone https://github.com/anthropics/ai-eda.git\ncd ai-eda/packages/jlc-mcp\nbun install\nbun run build\n```\n\n**Claude Desktop configuration:**\n\n```json\n{\n  \"mcpServers\": {\n    \"jlc\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/jlc-mcp/dist/index.js\"]\n    }\n  }\n}\n```\n\n> **Note:** Restart Claude Desktop after modifying the configuration.\n\n## Tools Reference\n\n### Search & Discovery\n\n| Tool | Description | Key Parameters |\n|------|-------------|----------------|\n| `component_search` | Search JLCPCB parts or EasyEDA community | `query`, `source`, `in_stock`, `basic_only`, `economic_only`, `limit` |\n\n### Library Management\n\n| Tool | Description | Key Parameters |\n|------|-------------|----------------|\n| `library_install` | Install component to KiCad library | `id`, `project_path`?, `include_3d`?, `force`? |\n| `library_batch_install` | Install up to 10 components at once | `ids`, `include_3d`?, `force`? |\n| `library_get_component` | Get installed component metadata | `id` (LCSC ID) |\n| `library_update` | Regenerate all components with latest data | `project_path`?, `dry_run`? |\n| `library_fix` | Apply pin corrections to a component | `lcsc_id`, `corrections`, `project_path`?, `force`? |\n\n## Usage Examples\n\n### Search for components\n\n```\ncomponent_search(query=\"STM32F103\", in_stock=true, basic_only=true)\n```\n\nReturns matching components with LCSC IDs, stock levels, and pricing. Results include `library_type`\n(basic/extended) and `pcba_type`: `standard-only` parts cannot be assembled with the cheaper Economic PCBA\nservice, so they force the pricier Standard PCBA order.\n\n### Install a component\n\n```\nlibrary_install(id=\"C8734\")\n```\n\nDownloads the component and returns:\n- `symbol_ref`: Reference for schematic (e.g., `JLC-MCP-ICs:STM32F103C8T6`)\n- `footprint_ref`: A KiCad standard passive reference or a generated `JLC-MCP:...` reference for PCB placement\n\nGenerated footprints preserve custom copper boundaries, plated/non-plated holes, and explicit slot geometry. Ambiguous drills and unsupported cutout semantics return conversion errors rather than guessed geometry. Existing footprints are not rewritten automatically; explicitly regenerate them to apply converter corrections. See the [core conversion policy](../core/README.md#footprintconverter) for fidelity limits.\n\n### Install to project-local library\n\n```\nlibrary_install(id=\"C8734\", project_path=\"/path/to/kicad/project\", include_3d=true)\n```\n\n### Batch install components\n\n```\nlibrary_batch_install(ids=[\"C2040\", \"C5446\", \"C14663\"])\n```\n\nInstall multiple components in parallel (up to 10 at once).\n\n### Regenerate libraries\n\n```\nlibrary_update()\n```\n\nCreates the category-based library structure if it doesn't exist:\n- Creates `JLC-MCP-Resistors.kicad_sym`, `JLC-MCP-Capacitors.kicad_sym`, etc.\n- Creates `JLC-MCP.pretty/` footprint directory\n- Creates `JLC-MCP.3dshapes/` 3D model directory\n\nFor existing libraries, only successfully refreshed symbols are replaced. Failed components and unrelated entries remain installed, and existing symbol names and library locations are retained. Directory scan errors stop the operation rather than triggering initialization. `dry_run=true` reports planned changes without writing files.\n\n`library_fix` locates the installed component by its LCSC property, including when upstream names or categories have changed. Both maintenance tools use the same global and project-local paths as installation.\n\nThe parameterless `library_update` call accepts omitted MCP `arguments` as well as an empty object. Closing the MCP client's input stream shuts down the server and its companion HTTP listener.\n\n## Library Organization\n\n### Category-Based Routing\n\nComponents are automatically sorted into category-specific libraries:\n\n| Library | Components |\n|---------|------------|\n| `JLC-MCP-Resistors.kicad_sym` | Resistors, potentiometers |\n| `JLC-MCP-Capacitors.kicad_sym` | Capacitors (ceramic, electrolytic, etc.) |\n| `JLC-MCP-Inductors.kicad_sym` | Inductors, ferrite beads |\n| `JLC-MCP-Diodes.kicad_sym` | Diodes, LEDs, Zeners |\n| `JLC-MCP-Transistors.kicad_sym` | MOSFETs, BJTs |\n| `JLC-MCP-ICs.kicad_sym` | Integrated circuits, MCUs |\n| `JLC-MCP-Connectors.kicad_sym` | Connectors, headers |\n| `JLC-MCP-Misc.kicad_sym` | Everything else |\n\n### Storage Paths\n\n**Global (default):**\n\nLibraries are stored in the KiCad 3rdparty folder for cross-platform portability:\n- macOS/Windows: `~/Documents/KiCad/9.0/3rdparty/jlc_mcp/`\n- Linux: `~/.local/share/kicad/9.0/3rdparty/jlc_mcp/`\n\nTable entries use `${KICAD9_3RD_PARTY}` for portable paths.\n\n```\n~/Documents/KiCad/9.0/3rdparty/jlc_mcp/\n├── symbols/\n│   ├── JLC-MCP-Resistors.kicad_sym\n│   ├── JLC-MCP-Capacitors.kicad_sym\n│   └── ...\n├── footprints/\n│   └── JLC-MCP.pretty/\n└── 3dmodels/\n    └── JLC-MCP.3dshapes/\n```\n\n**Project-local (when `project_path` specified):**\n```\n<project>/libraries/\n├── symbols/\n│   └── JLC-MCP-*.kicad_sym\n├── footprints/\n│   └── JLC-MCP.pretty/\n└── 3dmodels/\n    └── JLC-MCP.3dshapes/\n```\n\n### Hybrid Footprint Strategy\n\n- **Standard packages** (0603, 0805, SOIC-8, SOT-23, etc.) use KiCad's built-in footprints\n- **Non-standard packages** get custom footprints generated in `JLC-MCP.pretty/`\n\nThis keeps libraries small while ensuring compatibility.\n\n## Integration with ai-eda\n\nWhen used with the [ai-eda](https://github.com/anthropics/ai-eda) toolkit, the `/eda-source` command provides an interactive component sourcing workflow:\n\n1. Reads project constraints from `design-constraints.json`\n2. Searches local KiCad libraries first, then LCSC online\n3. Downloads and analyzes component datasheets\n4. Presents options with thermal and assembly validation\n5. Fetches selected components with proper references\n\nExample:\n```\n/eda-source main-mcu\n```\n\nThe command guides you through selecting an MCU that fits your project's requirements, validates it against design constraints, and adds it to your libraries.\n\n## Development\n\n```bash\nbun run dev        # Development with watch mode\nbun run build      # Build to ./dist\nbun run start      # Run the server\nbun run typecheck  # Type checking\nbun run test       # Run tests\nbun run clean      # Remove dist/\n```\n\n## How It Works\n\n1. **Search**: Queries JLCPCB's API for component data\n2. **Fetch**: Retrieves symbol/footprint data from EasyEDA (LCSC's component library backend)\n3. **Convert**: Transforms EasyEDA format to KiCad S-expression format\n4. **Route**: Categorizes components and routes to appropriate library files\n5. **Store**: Writes KiCad-compatible files and updates library tables\n\n## License\n\nMIT\n","readmeFilename":"README.md"}