面向 AI 编程助手的 MCP 服务器,统一搜索 JLCPCB、Mouser、DigiKey 三大元器件分销商,支持参数化搜索、BOM 验证与 KiCad 封装下载。
项目简介#
PCB Parts MCP Server 是一个面向 AI 编程助手的 MCP(Model Context Protocol)服务器,通过统一的接口连接 JLCPCB、Mouser、DigiKey 三大电子元器件分销商,让工程师可以在 Claude、Cursor、VS Code 等 AI 编程环境中直接进行元器件搜索、BOM 验证和 KiCad 封装下载。
版本:3.1.0
作者:Avery (Averyy)
许可证:MIT License
开发语言:Python 87.8%(要求 ≥ 3.11)
解决的核心问题#
- 多平台分散搜索:JLCPCB、Mouser、DigiKey 各自独立,缺乏统一查询入口
- 规格参数复杂:元器件电气参数繁多,手工过滤效率低
- BOM 准备繁琐:需逐一核查库存、成本、扩展库费用
- 缺货替代困难:难以快速定位规格兼容的替代品
目标用户#
- PCB 设计工程师
- 电子产品开发者
- 使用 AI 编程助手进行硬件开发的创客
支持的 AI 助手:Claude Desktop、Claude Code、Cursor、VS Code(Cline/Roo Code 等)
支持的 EDA 工具:KiCad(通过 SamacSys 封装下载)、EasyEDA(引脚信息提取)
核心能力#
16 个 MCP 工具覆盖 4 个数据源#
JLCPCB(本地数据库 + 实时 API)
jlc_search:智能查询解析 + 参数化规格过滤(本地 400K+ 高库存元器件)jlc_search_api:实时 API,完整 1.5M 目录,支持分页jlc_get_part:获取 LCSC 料号或 MPN 完整详情jlc_get_pinout:从 EasyEDA 符号获取引脚信息jlc_find_alternatives:规格兼容替代件查找jlc_list_categories:52 个主分类列表jlc_get_subcategories:分类下子分类jlc_list_attributes:子分类可过滤属性jlc_validate_bom:库存检查、成本计算、问题标记jlc_export_bom:JLCPCB 兼容 CSV 导出
Mouser(需 MOUSER_API_KEY)
mouser_search:关键词搜索mouser_get_part:料号/MPN 查询(支持批量)
DigiKey(需 DIGIKEY_CLIENT_ID + SECRET)
digikey_search:关键词搜索digikey_get_part:料号/MPN 查询
SamacSys(无需密钥)
cse_search:搜索 ECAD 模型、数据手册、封装cse_get_kicad:下载 KiCad 符号与封装
智能特性#
- 自然语言解析:自动解析 "10k 0603 1%" 为阻值/封装/精度过滤条件
- 规格参数过滤:支持
Vgs(th) < 2V、Rds(on) < 10mΩ、Id >= 5A等表达式 - 封装变体扩展:自动扩展 SOT-23 → SOT-23-3, SOT-23-3L, SOT-23(TO-236)
- MPN 映射:制造商料号 → JLCPCB LCSC 料号
数据规模#
| 指标 | 数值 |
|---|---|
| 元器件总数 | 1.5M+ |
| 主分类 | 52 个 |
| 子分类别名 | 220+ |
| 高库存元器件(stock ≥ 100) | 400K+ |
库类型说明#
| 库类型 | 组装费 | 说明 |
|---|---|---|
| basic | 无 | JLCPCB 标准库常用元器件 |
| preferred | 无 | 推荐元器件,供应稳定 |
| extended | $3/种 | 非常用元器件 |
| no_fee | 无 | basic + preferred 快捷过滤 |
安装部署#
托管服务(推荐)#
Claude Code
claude mcp add -s user --transport http pcbparts https://pcbparts.dev/mcp
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json)
{
"mcpServers": {
"pcbparts": {
"type": "http",
"url": "https://pcbparts.dev/mcp"
}
}
}
Cursor (~/.cursor/mcp.json) 和 VS Code (.vscode/mcp.json) 配置类似。
自托管部署#
源码方式
git clone https://github.com/Averyy/pcbparts-mcp
cd pcbparts-mcp
uv venv && uv pip install -e .
.venv/bin/python -m pcbparts_mcp.server # http://localhost:8080/mcp
Docker
docker compose up -d # 生产环境(GHCR 镜像)
docker compose -f docker-compose.local.yml up --build # 本地构建
环境变量#
| 变量 | 默认值 | 说明 |
|---|---|---|
HTTP_PORT | 8080 | 服务器端口 |
RATE_LIMIT_REQUESTS | 100 | 每 IP 每分钟请求数 |
MOUSER_API_KEY | — | Mouser API 密钥(可选) |
DIGIKEY_CLIENT_ID | — | DigiKey OAuth2 客户端 ID(可选) |
DIGIKEY_CLIENT_SECRET | — | DigiKey OAuth2 客户端密钥(可选) |
示例查询#
"Find logic-level MOSFETs with Vgs(th) < 2V and Id >= 5A"
"100nF 25V capacitors in 0402 or 0603"
"Find alternatives for C82899 in basic library"
"STM32 microcontrollers with 10000+ stock"
"Validate my BOM and check for stock issues"
"Get KiCad footprint for ESP32-S3-WROOM-1"
技术架构#
依赖栈:MCP SDK ≥ 1.3.0、FastMCP ≥ 3.0.0、curl_cffi ≥ 0.7.0、httpx ≥ 0.27.0、uvicorn + starlette、pydantic ≥ 2.0
关键技术:
- TLS 指纹伪装(curl_cffi 模拟浏览器,规避 JLCPCB API 403 拒绝)
- Streamable HTTP 无状态传输
- 速率限制:100 requests/minute/IP