JLCPCB MCP服务器

一 MCP(模型上下文协议) 用于搜索和检索JLCPCB汇编库组件(LCSC部件)的服务器-由官方JLCPCB API支持,本地SQLite层纯粹用作短期缓存。
旨在补充人工智能辅助的PCB设计工作流程,特别是在 KiCAD MCP服务器.
______________________________________________________________________
特性
- 参数化搜索 用于电阻器、电容器和电感器(值、封装、公差、电压、额定功率等)
- 自由文本搜索 跨JLCPCB装配库(基本+扩展)
- API第一个 --本地SQLite数据库被视为6h/24h缓存,而不是事实来源(请参见 缓存模型)
- 自动刷新 --每次搜索前,会员资格和股票/价格数据都会透明地刷新
- 备选建议 按库类型(基本优先)、价格和库存排名
- KiCAD组件下载 --直接从LCSC获取EasyEDA符号、封装和3D模型
______________________________________________________________________
需求
- Python 3.11+
- 紫外线 包管理器
- JLCPCB API证书(
JLCPCB_APP_ID,JLCPCB_API_KEY,JLCPCB_API_SECRET)
正在获取API凭据
在以下网址注册 JLCPCB开发人员门户 以获取您的凭据。
______________________________________________________________________
安装
git clone https://github.com/mageoch/JLCPCB-MCP-Server.git
cd JLCPCB-MCP-Server
uv sync______________________________________________________________________
配置
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
JLCPCB_APP_ID | 是 | 您的JLCPCB申请ID |
JLCPCB_API_KEY | 是 | 您的JLCPCB API密钥 |
JLCPCB_API_SECRET | 是 | 您的JLCPCB API秘密 |
JLCPCB_DB_PATH | 否 | 自定义SQLite数据库路径(默认: ./data/lcsc_parts.db) |
JLCPCB_CACHE_TTL_HOURS | 否 | 每行库存/价格TTL(以小时为单位)(默认值: 6) |
JLCPCB_MEMBERSHIP_TTL_HOURS | 否 | 库成员TTL(以小时为单位)(默认值: 24) |
克劳德代码
添加到您的项目 .mcp.json 或 ~/.claude.json:
{
"mcpServers": {
"jlcpcb": {
"command": "uv",
"args": [
"run",
"--project", "/path/to/JLCPCB-MCP-Server",
"jlcpcb-mcp"
],
"env": {
"JLCPCB_APP_ID": "your_app_id",
"JLCPCB_API_KEY": "your_api_key",
"JLCPCB_API_SECRET": "your_api_secret"
}
}
}
}克劳德桌面版
编辑 ~/.config/Claude/claude_desktop_config.json (Linux/macOS)或 %APPDATA%\Claude\claude_desktop_config.json (Windows)--使用与上述相同的格式。
______________________________________________________________________
用法
首次运行
无需手动设置。第一次搜索将触发JLCPCB装配库的自动成员刷新(基本+扩展-通常为数万个零件;需要几分钟)。后续搜索将重用缓存的成员资格 JLCPCB_MEMBERSHIP_TTL_HOURS (默认为24小时),并在返回的行超过以下时间时按行刷新库存/价格 JLCPCB_CACHE_TTL_HOURS (默认为6小时)。
要强制完全重新获取(例如,一次刷新整个库的库存/价格),请调用 download_library 明确地。
工具
| 工具 | 说明 |
|---|---|
download_library | 强制刷新整个JLCPCB装配库(基本+扩展) |
search_parts | 自由文本和类别搜索;自动刷新缓存 |
search_resistors | 参数搜索(值、公差、功率、封装) |
search_capacitors | 参数搜索(值、电压、电介质、封装) |
search_inductors | 参数搜索(值、当前额定值、包) |
get_part | 按LCSC代码列出零件的全部细节;如果时间超过,则刷新 JLCPCB_CACHE_TTL_HOURS |
download_kicad_component | 下载零件的EasyEDA符号、封装和3D模型 |
suggest_alternatives | 寻找更便宜或库存更好的替代品 |
get_stats | 数据库统计(零件数量、库存、数据库大小、会员年龄) |
rebuild_component_specs | 重新提取参数规格(在数据库升级后运行) |
查询示例
# Find a Basic 10kΩ 0402 resistor
search_resistors(value="10k", package="0402", library_type="Basic")
# Find 100nF X7R capacitors rated 50V or more
search_capacitors(value="100nF", dielectric="X7R", voltage_min_v=50)
# Look up a specific part
get_part("C25804")
# Find cheaper alternatives
suggest_alternatives("C25804")
# Download KiCAD files for a component
download_kicad_component("C25804", output="/path/to/project/libs/EasyEDA")______________________________________________________________________
建筑
jlcpcb_mcp/
├── server.py # FastMCP server — tool definitions and entry point
├── client.py # JLCPCB API client (HMAC-SHA256 authentication)
└── db.py # SQLite manager — import, FTS5, parametric spec extraction- 用途 FastMCP 对于MCP协议层
- 具有全文搜索(FTS5)和
component_specs数值范围查询表 - 所有无源值(Ω、kΩ、MΩ、nF、µF、µH、mH等)的SI前缀解析
缓存模型
服务器将本地SQLite数据库视为JLCPCB API之上的短暂缓存,而不是真相的来源:
- 成员缓存(
JLCPCB_MEMBERSHIP_TTL_HOURS,24小时默认) --通过跟踪basic_library_refreshed_at。当过时时,服务器会分页getComponentLibraryList,将返回的代码与本地数据库进行比较,通过以下方式获取新代码的完整详细信息getComponentDetailByCode(每次调用最多1000个),并删除不再属于库的代码。 - 每行详细信息缓存(
JLCPCB_CACHE_TTL_HOURS,默认6小时) --通过跟踪last_updated在每一行。在搜索返回结果后,时间戳早于TTL的行在返回给调用方之前,会在单个批处理的API调用中被重新蚀刻,因此显示的股票和价格在实践中最多只有几秒钟的历史。
这意味着搜索偶尔会在成员刷新时被阻止(存根分页约30秒+每1000个新代码几秒钟),但日常调用只会为实际返回的行的小细节刷新付费。
JLCPCB API不公开delta或“modifiedsince”过滤器,因此成员身份分页必须是满的,但 componentLibraryInfoVOS payload很小(每个存根3个字段),细节丰富仅限于服务器没有的代码,这使得典型的24小时刷新比完全重新获取便宜得多。
______________________________________________________________________
许可证
麻省理工学院-版权所有(c)2026 mageo服务有限公司见 许可证.
由创建和维护 @mageo.
