mcpField
E
element14

element14

github.com/aklofas其他1.5k471 次安装6 天前更新
代码仓库

关于 element14

此技能介绍通过 element14 API 搜索元件和获取数据手册,涵盖 Newark 与 Farnell 店面。适用于采购元件或为 KiCad 项目维护数据手册的电子工程师,并可查询不同地区目录及直接 PDF 链接。

主要功能

  1. 01按关键词、MPN 或分销商料号搜索
  2. 02查询 Newark、Farnell 和 element14 地区目录
  3. 03获取库存、价格和参数数据
  4. 04同步 KiCad 项目的数据手册
  5. 05下载并验证单个数据手册

适用场景

  1. 01在不同地区店面查找元件
  2. 02查看价格、库存和 RoHS 状态
  3. 03为 KiCad 项目收集数据手册
  4. 04按 MPN 或料号下载数据手册

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aklofas/kicad-happy --skill element14

安装后在 Claude Code 中输入/element14确认已加载。

附带文件scripts/fetch_datasheet_element14.pyscripts/sync_datasheets_element14.py

详细介绍

element14 / Newark / Farnell — 元器件搜索、数据手册与订购

相关技能

技能用途
kicad原理图分析 — 提取 MPN 以查找元器件
bomBOM 管理 — 协调多个分销商的货源
spice使用 element14 参数数据生成行为 SPICE 模型

一个 API 覆盖三个地区的网上商城 — 产品目录和数据手册相同,只有价格和库存因地区而异:

网上商城地区商店 ID
Newark北美www.newark.com
Farnell英国 / 欧洲uk.farnell.com
element14亚太地区au.element14.com

有关 BOM 管理和导出工作流,请参阅 bom。

与 DigiKey/Mouser 的主要区别

  • 简单身份验证 — 将 API 密钥作为查询参数,无需 OAuth 流程
  • 免费 API 密钥 — 在 partner.element14.com 注册,即可获得免费使用额度
  • 全球覆盖 — 同一 API 覆盖美国(Newark)、欧盟(Farnell)和亚太地区(element14)
  • 不受保护的 PDF — 数据手册托管在 farnell.com CDN 上,可自由下载,无机器人保护
  • API 响应中包含数据手册 URL — responseGroup=medium 会包含 datasheets[].url

API 凭据设置

  1. 注册 partner.element14.com/member/register
    • 免费账户 — 只需用户名、电子邮件和密码。无需信用卡。
    • 提供“免费使用额度”(每秒 2 次调用,每天 1,000 次调用 — 足以满足日常使用)
  2. 注册应用程序 — 登录后,前往 我的 API 密钥,点击“Get API Keys”
    • 应用名称:任意(例如,“kicad-happy”)
    • 类型:“桌面应用程序”
    • 用户:“1-10”
    • 商业用途:否
    • 广告:否
    • 勾选“Issue a new key for Product Search API” → 选择“Basic”层级
    • 同意服务条款,然后点击“Register Application”
  3. 复制 API 密钥 — 在“My API Keys”页面上显示的 24 位字母数字字符串
  4. 运行脚本前,设置环境变量 ELEMENT14_API_KEY:
    export ELEMENT14_API_KEY=your_api_key_here
    
    如果凭据存储在集中管理的密钥文件中(例如,~/.config/secrets.env),请先加载:
    export $(grep -v '^#' ~/.config/secrets.env | grep -v '^$' | xargs)
    

产品搜索 API

基础 URL: https://api.element14.com/catalog/products

所有请求均使用带查询参数的 GET 方法。通过 callInfo.apiKey 进行身份验证。

搜索模式

term 参数支持三种搜索类型:

模式格式示例
关键词any:<keywords>term=any:100nF 0402 X7R
MPNmanuPartNum:<mpn>term=manuPartNum:GRM155R71C104KA88D
分销商货号id:<sku>term=id:94AK6874
完整示例
GET https://api.element14.com/catalog/products
  ?term=manuPartNum:GRM155R71C104KA88D
  &storeInfo.id=www.newark.com
  &resultsSettings.offset=0
  &resultsSettings.numberOfResults=10
  &resultsSettings.responseGroup=medium
  &callInfo.responseDataFormat=JSON
  &callInfo.apiKey=YOUR_KEY
响应组
组字段
smallSKU、displayName、brandName、MPN、attributes
medium+ datasheets[]、prices[]、stock
large+ 图片、相关产品、原产国
prices仅分级定价
inventory按仓库 / 地区划分的库存水平
响应格式

使用 responseGroup=medium 时,响应如下:

{
  "manufacturerPartNumberSearchReturn": {
    "numberOfResults": 5,
    "products": [
      {
        "sku": "94AK6874",
        "displayName": "Murata GRM155R71C104KA88D",
        "translatedManufacturerPartNumber": "GRM155R71C104KA88D",
        "brandName": "Murata Electronics",
        "datasheets": [
          {
            "type": "TechnicalDataSheet",
            "description": "Datasheet",
            "url": "https://www.farnell.com/datasheets/74273.pdf"
          }
        ],
        "prices": [
          {
            "from": 1,
            "to": 9,
            "cost": 0.156
          }
        ],
        "stock": {
          "level": 45000,
          "leastLeadTime": 0,
          "status": 4,
          "statusMessage": "In Stock"
        },
        "attributes": [
          {"attributeLabel": "Capacitance", "attributeUnit": "", "attributeValue": "100nF"},
          {"attributeLabel": "Voltage Rating", "attributeUnit": "V", "attributeValue": "16"}
        ],
        "rohsStatusCode": "YES"
      }
    ]
  }
}

主要字段:

  • sku — Newark/Farnell/element14 货号
  • translatedManufacturerPartNumber — MPN
  • brandName — 制造商
  • datasheets[].url — 直接 PDF URL(farnell.com CDN,无机器人保护)
  • datasheets[].type — 通常为 TechnicalDataSheet
  • prices[] — 分级定价,包含 from、to、cost
  • stock.level — 库存数量
  • stock.statusMessage — 易读的供货状态
  • attributes[] — 参数规格(标签、单位、数值)
  • rohsStatusCode — RoHS 合规状态(YES/NO)
商店 ID

storeInfo.id 参数的常用商店 ID:

商店 ID地区
www.newark.com美国(默认)
uk.farnell.com英国
www.farnell.com欧盟
au.element14.com澳大利亚
sg.element14.com新加坡
in.element14.com印度
速率限制

除礼貌使用额度外,没有记录在案的速率限制。请注意使用方式——调用之间间隔 0.5s。

筛选器

添加到查询参数:

  • resultsSettings.refinements.filter=rohsCompliant — 仅限符合 RoHS 的零件
  • resultsSettings.refinements.filter=inStock — 仅限有库存的零件
分页
  • resultsSettings.offset — 起始索引(从 0 开始)
  • resultsSettings.numberOfResults — 每页最多 50 条结果
  • 只有前 100 条结果可可靠分页

数据手册下载与同步

element14 的 farnell.com CDN 可直接提供数据手册 PDF——没有反机器人保护,也不需要特殊标头。数据手册 URL 来自 API 响应(datasheets[].url)。

数据手册目录同步

使用 sync_datasheets_element14.py 在 KiCad 项目旁维护 datasheets/ 目录。工作流和 manifest.json 格式与 DigiKey、Mouser 和 LCSC 技能相同。

# Sync datasheets for a KiCad project
python3 <skill-path>/scripts/sync_datasheets_element14.py <file.kicad_sch>

# Preview what would be downloaded
python3 <skill-path>/scripts/sync_datasheets_element14.py <file.kicad_sch> --dry-run

# Retry previously failed downloads
python3 <skill-path>/scripts/sync_datasheets_element14.py <file.kicad_sch> --force

# Use a specific store (default: www.newark.com)
python3 <skill-path>/scripts/sync_datasheets_element14.py <file.kicad_sch> --store uk.farnell.com

# Custom output directory
python3 <skill-path>/scripts/sync_datasheets_element14.py <file.kicad_sch> -o ./my-datasheets

# Parallel downloads (3 workers)
python3 <skill-path>/scripts/sync_datasheets_element14.py <file.kicad_sch> --parallel 3

# Batch mode — sync from a plain MPN list (no KiCad project required)
python3 <skill-path>/scripts/sync_datasheets_element14.py --mpn-list mpns.txt --output ./datasheets

MPN 列表批处理模式(KH-312)——适用于有 MPN 列表但没有可供其使用的 KiCad 项目的情况。每行一个 MPN;会跳过空行和 # 注释(整行注释和行内注释);通过 is_real_mpn() 过滤通用值并去重。若未指定 --output,输出默认保存到当前工作目录下的 ./datasheets/。注意:启动时会无条件检查 ELEMENT14_API_KEY,因此即使 --dry-run 不会发起网络调用,也仍需设置该环境变量。

该脚本:

  • 运行 KiCad 原理图分析器以提取元件、MPN 和分销商 PN
  • 接受任意标识符——MPN、Newark/Farnell PN,或 KiCad 符号属性中的其他分销商 PN
  • 优先使用 MPN 搜索(manuPartNum:)以精确匹配——未找到时回退到关键词搜索
  • 从 farnell.com CDN 下载——使用直接 PDF URL,没有反机器人保护
  • 写入 manifest.json 清单——格式与 DigiKey/Mouser/LCSC 技能相同
  • 验证 PDF 内容——检查 MPN、制造商和描述关键词
  • 限制速率——API 调用之间间隔 0.5s(可用 --delay 配置)
  • 增量保存进度——可安全中断
下载单个数据手册

使用 fetch_datasheet_element14.py 下载单个文件。

# Search by MPN
python3 <skill-path>/scripts/fetch_datasheet_element14.py --search "GRM155R71C104KA88D" -o datasheet.pdf

# Search by Newark/Farnell part number
python3 <skill-path>/scripts/fetch_datasheet_element14.py --search "94AK6874" -o datasheet.pdf

# Direct URL download
python3 <skill-path>/scripts/fetch_datasheet_element14.py "https://www.farnell.com/datasheets/74273.pdf" -o datasheet.pdf

# JSON output
python3 <skill-path>/scripts/fetch_datasheet_element14.py --search "GRM155R71C104KA88D" --json

该脚本:

  • 兼容各种操作系统——使用 requests → urllib → playwright 回退链
  • 验证 PDF 标头——拒绝 HTML 错误页面
  • element14 URL 失败时回退到制造商的其他来源
  • 退出代码:0 = 成功,1 = 下载失败,2 = 搜索/API 错误
  • 依赖项:
    • pip install requests(推荐;针对 element14 的 urllib 回退方式运行正常)
    • pip install playwright && playwright install chromium(可选;很少需要)

网络搜索回退方案

如果 API 不可用,可直接获取产品页面进行搜索:

https://www.newark.com/search?st=<query>
https://uk.farnell.com/search?st=<query>

提示

  • 使用 responseGroup=medium——包含数据手册和定价信息,且不像 large 那样开销较大
  • 使用 manuPartNum: 前缀精确匹配 MPN;使用 any: 进行关键词搜索
  • 通过 translatedManufacturerPartNumber(MPN)在 DigiKey/Mouser/LCSC 之间交叉查询
  • 适合 DigiKey/Mouser 运费昂贵的国际用户

评论

支持 Markdown