关于 mouser
mouser 技能通过 Mouser Search API 或网页搜索查询元件,返回规格、价格、库存及生命周期等信息。它支持按原理图或 MPN 列表同步数据手册 PDF,并采用多种来源尝试处理下载受限的情况。
主要功能
- 01按关键词、MPN 和制造商搜索
- 02查询规格、价格与库存
- 03查看生命周期和替代型号
- 04按原理图或 MPN 列表同步 PDF
- 05多来源尝试下载数据手册
适用场景
- 01在 DigiKey 缺货时查找备选货源
- 02比较元件价格、库存与订购限制
- 03为 KiCad 项目同步数据手册
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ aklofas/ kicad-happy --skill mouser安装后在 Claude Code 中输入/mouser确认已加载。
附带文件scripts/fetch_datasheet_mouser.pyscripts/sync_datasheets_mouser.py
详细介绍
Mouser Electronics 零件搜索与分析
相关技能
| 技能 | 用途 |
|---|---|
kicad | 原理图分析 — 提取 MPN 以查询零件 |
bom | BOM 管理 — 协调从多个分销商采购 |
digikey | 原型采购的首选来源(数据手册优先使用此来源 — 提供直接 PDF 链接) |
spice | 使用 Mouser 参数数据构建行为级 SPICE 模型 |
Mouser 是原型订单的次选来源——当 DigiKey 缺货或价格更高时使用。生产订单请参阅 lcsc/jlcpcb。BOM 管理和导出工作流请参阅 bom。数据手册优先使用 DigiKey 的 API(提供直接 PDF 链接)——Mouser 会阻止自动下载 PDF。
API 凭据设置
Mouser 使用简单的 API 密钥身份验证——无需 OAuth、令牌或回调 URL。Search API 密钥是作为查询参数传递的 UUID。
获取 API 密钥
- 前往 mouser.com → My Mouser → My Account
- 在“APIs”部分下,点击“Manage”
- 注册 Search API 密钥——这是查询零件和下载数据手册所需的密钥
- Search API 密钥可能需要审批(状态最初会显示为“pending authorization”)
设置凭据
运行脚本前设置环境变量:
export MOUSER_SEARCH_API_KEY=your-search-api-key-uuid
如果凭据存储在中央机密文件中(例如 ~/.config/secrets.env),请先加载:
export $(grep -v '^#' ~/.config/secrets.env | grep -v '^$' | xargs)
Mouser Search API 参考
所有搜索端点都将 Search API 密钥用作查询参数:?apiKey=<key>。所有 POST 请求的 Content-Type 均为 application/json。
V1 端点
关键词搜索
POST /api/v1/search/keyword?apiKey=<key>
{
"SearchByKeywordRequest": {
"keyword": "100nF 0402 ceramic capacitor",
"records": 50,
"startingRecord": 0,
"searchOptions": "InStock"
}
}
searchOptions:"None"|"Rohs"|"InStock"|"RohsAndInStock"records:每次请求最多 50 条记录startingRecord:分页偏移量
零件编号搜索
POST /api/v1/search/partnumber?apiKey=<key>
{
"SearchByPartRequest": {
"mouserPartNumber": "GRM155R71C104KA88D|RC0402FR-0710KL",
"partSearchOptions": "Exact"
}
}
- 最多 10 个零件编号,以竖线 (
|) 分隔 - 同时支持 Mouser 零件编号和制造商零件编号(MPN)
partSearchOptions:"Exact"|"BeginsWith"|"Contains"
V2 端点
V2 新增制造商筛选,并支持按页码分页。
关键词 + 制造商搜索
POST /api/v2/search/keywordandmanufacturer?apiKey=<key>
{
"SearchByKeywordMfrNameRequest": {
"keyword": "LMR51450",
"manufacturerName": "Texas Instruments",
"records": 25,
"pageNumber": 1,
"searchOptions": "InStock"
}
}
注意:包装对象名称为 SearchByKeywordMfrNameRequest(不是 SearchByKeywordMfrRequest——V1 名称已弃用)。
零件编号 + 制造商搜索
POST /api/v2/search/partnumberandmanufacturer?apiKey=<key>
制造商列表
GET /api/v2/search/manufacturerlist?apiKey=<key>
返回用于筛选搜索的完整制造商名称列表。
已弃用的 V1 端点
这些端点仍可用,但优先使用对应的 V2 端点:
POST /api/v1/search/keywordandmanufacturer→ 使用 V2POST /api/v1/search/partnumberandmanufacturer→ 使用 V2GET /api/v1/search/manufacturerlist→ 使用 V2
搜索响应结构
所有搜索端点都返回相同格式的响应:
{
"Errors": [],
"SearchResults": {
"NumberOfResult": 142,
"Parts": [...]
}
}
关键零件字段
| 字段 | 类型 | 描述 |
|---|---|---|
MouserPartNumber | string | Mouser 的内部零件编号(带前缀,例如 81-GRM155R71C104KA88) |
ManufacturerPartNumber | string | 制造商零件编号(MPN)——用于跨分销商匹配 |
Manufacturer | string | 制造商名称 |
Description | string | 产品描述 |
Category | string | 产品类别 |
DataSheetUrl | string | 规格书 PDF 的 URL(由 Mouser 托管——参见“规格书”部分) |
ProductDetailUrl | string | Mouser 产品页面的 URL |
ImagePath | string | 产品图片 URL |
Availability | string | 易读的库存文本(例如,“2648712 In Stock”) |
AvailabilityInStock | string | 数字形式的库存数量(字符串) |
AvailabilityOnOrder | array | 在途库存:[{Quantity, Date}] |
LeadTime | string | 工厂交货周期(例如,“84 Days”) |
LifecycleStatus | string|null | “New Product”、“End of Life”等 |
IsDiscontinued | string | “true”或“false”(字符串,而非布尔值) |
SuggestedReplacement | string | 停产产品的替代 MPN |
Min | string | 最小订购数量(字符串) |
Mult | string | 订购倍数(字符串) |
Reeling | bool | 是否提供编带卷盘包装 |
ROHSStatus | string | RoHS 合规状态 |
PriceBreaks | array | 阶梯价格:[{Quantity, Price, Currency}] |
ProductAttributes | array | 参数规格:[{AttributeName, AttributeValue}] |
AlternatePackagings | array|null | 其他包装的 MPN:[{APMfrPN}] |
SurchargeMessages | array | 关税/附加费信息:[{code, message}] |
ProductCompliance | array | HTS 编码、ECCN:[{ComplianceName, ComplianceValue}] |
UnitWeightKg | object | 以千克为单位的 {UnitWeight: <float>} |
特性与注意事项
- 价格是字符串,包含货币符号:
"$0.10",而不是浮点数。比较前请先解析。 - 库存是字符串:
AvailabilityInStock返回"2648712",而不是2648712。 - IsDiscontinued 是字符串:“true”或“false”,而不是布尔值。
- Mouser 零件编号带有前缀:
81-GRM155R71C104KA88——此前缀由 Mouser 专用。请使用ManufacturerPartNumber进行交叉引用。 - V2 包装器名称与 V1 不同:V2 使用
SearchByKeywordMfrNameRequest,而不是SearchByKeywordMfrRequest。 - 关税信息:
SurchargeMessages可能包含美国关税比例,可用于成本估算。 - 在途数据:
AvailabilityOnOrder显示在途库存数量和预计日期。
规格书下载与同步
Mouser 的 DataSheetUrl 字段指向 Mouser 托管的 URL(mouser.com/datasheet/...)。这些 URL 会阻止自动下载——使用 Python/curl/wget 获取时,即使设置了浏览器 User-Agent 标头,也会返回 HTML“Access denied”页面。下载脚本通过多种策略处理此问题:
- 直接尝试 Mouser 规格书 URL(对部分零件有效)
- 从 Mouser 产品页面 HTML 中抓取替代规格书链接
- 尝试制造商专用的替代 URL 模式
注意:Mouser 产品页面会对大多数自动请求返回 403,因此策略 2 的成功率有限。DigiKey 和 LCSC 是更可靠的规格书来源。
数据手册目录同步
使用 sync_datasheets_mouser.py 在 KiCad 项目旁维护 datasheets/ 目录。工作流和 manifest.json 格式与 DigiKey 技能相同。
# Sync datasheets for a KiCad project
python3 <skill-path>/scripts/sync_datasheets_mouser.py <file.kicad_sch>
# Preview what would be downloaded
python3 <skill-path>/scripts/sync_datasheets_mouser.py <file.kicad_sch> --dry-run
# Retry previously failed downloads
python3 <skill-path>/scripts/sync_datasheets_mouser.py <file.kicad_sch> --force
# Custom output directory
python3 <skill-path>/scripts/sync_datasheets_mouser.py <file.kicad_sch> -o ./my-datasheets
# Parallel downloads (3 workers)
python3 <skill-path>/scripts/sync_datasheets_mouser.py <file.kicad_sch> --parallel 3
# Batch mode — sync from a plain MPN list (no KiCad project required)
python3 <skill-path>/scripts/sync_datasheets_mouser.py --mpn-list mpns.txt --output ./datasheets
MPN 列表批处理模式(KH-312)——当你有 MPN 列表,但没有可供指定的 KiCad 项目时使用(用于 harness 数据手册填充、批量填充零件库)。每行一个 MPN;空行和 # 注释(整行及行内注释)都会跳过;通用值(100nF、DNP)会通过 is_real_mpn() 过滤,并进行去重。省略 --output 时,输出默认为当前工作目录下的 ./datasheets/。
速率限制——脚本默认在请求之间延迟 1.0s,以控制 API 调用速度(Mouser 的 Search API 在免费套餐下每分钟允许 30 次调用;1.0s 的间隔远低于此限制)。如果你使用更高级别的密钥,或希望进一步放慢速度,可使用 --delay <seconds> 覆盖默认值。
下载单个数据手册
使用 fetch_datasheet_mouser.py 下载单个文件。
# Search by MPN (uses Mouser API)
python3 <skill-path>/scripts/fetch_datasheet_mouser.py --search "TPS61023DRLR" -o datasheet.pdf
# Direct URL download
python3 <skill-path>/scripts/fetch_datasheet_mouser.py "https://example.com/datasheet.pdf" -o datasheet.pdf
# JSON output
python3 <skill-path>/scripts/fetch_datasheet_mouser.py --search "ADP1706" --json
下载策略
脚本会按顺序尝试多个来源:
- 原理图 URL——使用 KiCad 符号中嵌入的数据手册 URL(仅同步时使用)
- Mouser API 搜索——从 API 响应中获取
DataSheetUrl - 制造商备用来源——当 Mouser URL 被屏蔽时,尝试主要制造商(TI、Microchip 等)的已知 URL 模式
- 无头浏览器备用方案——如果已安装
playwright,则最后尝试使用无头 Chromium
所有方法都失败时,向用户提供 ProductDetailUrl,以便他们在浏览器中从 Mouser 产品页面下载。
网页搜索备用方案
如果没有 API 密钥,可直接获取产品页面来搜索 Mouser:
- 搜索 URL:
https://www.mouser.com/c/?q=<query> - 产品页面包含完整规格、价格阶梯、库存和数据手册
- Mouser 的搜索结果可能较嘈杂(页面大量依赖 JS)
在查询中加入关键参数:
- 无源器件:数值、封装(0402/0603/0805)、容差、电压/功率额定值、介质(C0G/X7R)
- IC:零件编号或功能、封装(QFN/SOIC/TSSOP)、关键规格(电压、电流、接口)
- 连接器:类型(USB-C、JST-PH)、引脚数、间距、安装方式(SMD/THT)、方向
提示
- 使用竖线分隔符,可在一次 PartNumber 搜索中查询最多 10 个零件编号
Min和Mult字段很重要——某些零件有最低订购数量,或必须按倍数订购SurchargeMessages可能包含美国关税百分比——估算成本时应将其考虑在内AvailabilityOnOrder显示预计到货日期和在途库存- 选择零件前,检查
IsDiscontinued和LifecycleStatus