使用说明
DigiKey MCP服务器
A. 模型上下文协议 DigiKey产品搜索API v4的服务器,使用 FastMCP首先是Docker,专为 Docker MCP工具包.
最初灵感来自 bengineer19/digike_mcp.
先决条件
- DigiKey API证书 --注册地址: developer.digikey.com,创建一个应用程序
client_credentials授权类型 - DigiKey客户编号 --订购工具所需。在你的 DigiKey帐户设置.
- 码头工人 (推荐)或Python 3.10+
- Docker MCP工具包 --包含在 Docker 桌面版 (需要MCP工具包支持)
项目结构
digikey-mcp/
├── mcp_app.py # Shared FastMCP instance
├── digikey_mcp_server.py # Main server — authenticated tools (OAuth2)
├── digikey_noauth_tools.py # No-auth tools (cart URL, MyList link)
├── Dockerfile # Docker image with embedded metadata
├── server.yaml # Registry entry for docker/mcp-registry
└── tests/ # Unit tests
快速入门——Docker MCP工具包
运行此服务器的推荐方式。Docker MCP网关管理容器生命周期,注入机密,并向MCP客户端(如Claude Code或Claude Desktop)公开工具。
1.构建Docker镜像
git clone https://github.com/simon-77/digikey-mcp.git
cd digikey-mcp
docker build -t digikey-mcp:latest .
2.创建自定义目录
网关通过目录文件发现服务器。创建一个 ~/.docker/mcp/catalogs/custom.yaml:
version: 3
name: custom
displayName: Custom MCP Servers
registry:
digikey:
description: DigiKey component search, pricing, ordering, and order status
title: DigiKey
type: server
image: digikey-mcp:latest
secrets:
- name: digikey.CLIENT_ID
env: CLIENT_ID
- name: digikey.CLIENT_SECRET
env: CLIENT_SECRET
- name: digikey.DIGIKEY_ACCOUNT_ID
env: DIGIKEY_ACCOUNT_ID
env:
- name: USE_SANDBOX
value: "false"
- name: DIGIKEY_LOCALE_SITE
value: "US"
- name: DIGIKEY_LOCALE_LANGUAGE
value: "en"
- name: DIGIKEY_LOCALE_CURRENCY
value: "USD"
tools:
- name: keyword_search
- name: product_details
- name: search_manufacturers
- name: search_categories
- name: get_category_by_id
- name: search_product_substitutions
- name: get_product_media
- name: get_product_pricing
- name: get_digi_reel_pricing
- name: generate_cart_url
- name: create_mylist_link
- name: list_orders
- name: get_order_status
prompts: 0
resources: {}
更改 env 值以匹配您的区域设置(例如。, AT/en/EUR 奥地利)。
注: 这
tools列表必须与服务器中定义的工具匹配。网关使用此列表向MCP客户端注册工具。prompts: 0和resources: {}表示服务器不公开MCP提示或资源。
3.注册目录并启用服务器
docker mcp catalog import ~/.docker/mcp/catalogs/custom.yaml
docker mcp server enable digikey
重新运行 catalog import 无论何时修改 custom.yaml.
4.设定秘密
docker mcp secret set digikey.CLIENT_ID
docker mcp secret set digikey.CLIENT_SECRET
docker mcp secret set digikey.DIGIKEY_ACCOUNT_ID
系统将提示您输入每个值。秘密姓名 必须 以服务器名称作为前缀(digikey.).
帐户ID是您的DigiKey客户编号,订购工具需要此编号(list_orders, get_order_status).
5.连接MCP客户端
docker mcp client connect claude-code
这将为您的项目添加网关 .mcp.json:
{
"mcpServers": {
"MCP_DOCKER": {
"command": "docker",
"args": ["mcp", "gateway", "run"],
"type": "stdio"
}
}
}
当MCP客户端启动时,网关启动 digikey-mcp:latest 容器,将机密作为环境变量注入,并代理工具调用。
变更后重建
docker build -t digikey-mcp:latest .
# Restart your MCP client to pick up the new image
无需重新导入目录或重新设置机密,只需重建并重新启动即可。
替代方案:Docker独立版
不使用MCP工具包直接运行容器。你自己管理秘密和生命周期。
docker build -t digikey-mcp .
docker run --rm -i \
-e CLIENT_ID=your_client_id \
-e CLIENT_SECRET=your_client_secret \
-e DIGIKEY_ACCOUNT_ID=your_customer_number \
-e USE_SANDBOX=false \
-e DIGIKEY_LOCALE_SITE=US \
-e DIGIKEY_LOCALE_LANGUAGE=en \
-e DIGIKEY_LOCALE_CURRENCY=USD \
digikey-mcp
.mcp.json 对于MCP客户:
{
"mcpServers": {
"digikey": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "CLIENT_ID=your_client_id",
"-e", "CLIENT_SECRET=your_client_secret",
"-e", "DIGIKEY_ACCOUNT_ID=your_customer_number",
"-e", "USE_SANDBOX=false",
"-e", "DIGIKEY_LOCALE_SITE=US",
"-e", "DIGIKEY_LOCALE_LANGUAGE=en",
"-e", "DIGIKEY_LOCALE_CURRENCY=USD",
"digikey-mcp"
]
}
}
}
Locale环境变量是可选的——默认值为 US/en/USD (参见 配置).
替代方案:独立(pip)
不使用Docker运行。需要Python 3.10+。
git clone https://github.com/simon-77/digikey-mcp.git
cd digikey-mcp
pip install .
cat > .env <<EOF
CLIENT_ID=your_client_id
CLIENT_SECRET=your_client_secret
DIGIKEY_ACCOUNT_ID=your_customer_number
USE_SANDBOX=false
DIGIKEY_LOCALE_SITE=US
DIGIKEY_LOCALE_LANGUAGE=en
DIGIKEY_LOCALE_CURRENCY=USD
EOF
python digikey_mcp_server.py
.mcp.json 对于MCP客户:
{
"mcpServers": {
"digikey": {
"command": "python",
"args": ["digikey_mcp_server.py"],
"cwd": "/path/to/digikey-mcp",
"env": {
"CLIENT_ID": "your_client_id",
"CLIENT_SECRET": "your_client_secret",
"DIGIKEY_ACCOUNT_ID": "your_customer_number",
"USE_SANDBOX": "false",
"DIGIKEY_LOCALE_SITE": "US",
"DIGIKEY_LOCALE_LANGUAGE": "en",
"DIGIKEY_LOCALE_CURRENCY": "USD"
}
}
}
}
Locale环境变量是可选的——默认值为 US/en/USD (参见 配置).
工具
搜索
| 工具 | 说明 |
|---|---|
keyword_search |
按关键字搜索产品,具有排序、过滤、制造商/类别限制 |
search_manufacturers |
列出所有制造商 |
search_categories |
列出所有产品类别 |
search_product_substitutions |
寻找替代产品 |
产品详情
| 工具 | 说明 |
|---|---|
product_details |
零件号的完整产品信息 |
get_category_by_id |
按ID分类的详细信息 |
get_product_media |
产品的图像、文档、视频 |
get_product_pricing |
详细定价,含数量折扣 |
get_digi_reel_pricing |
DigiReel特定定价 |
写入/推送
| 工具 | 说明 |
|---|---|
generate_cart_url |
构建FastAdd URL以填充DigiKey购物车 |
create_mylist_link |
创建一次性URL以将零件导入DigiKey MyLists |
支持区域设置的URL: 这两个工具都使用从中派生的域生成URL
DIGIKEY_LOCALE_SITE(例如。,AT→www.digikey.at,DE→www.digikey.de).这确保了链接在正确的区域DigiKey网站上打开。默认为www.digikey.com(美国)。
订单状态
| 工具 | 说明 |
|---|---|
list_orders |
列出日期范围内的订单(默认为最近30天) |
get_order_status |
获取特定销售订单的完整详细信息 |
注: 订购工具需要
DIGIKEY_ACCOUNT_ID(您的DigiKey客户编号)。如果没有它,这些工具将返回400个错误请求。
搜索选项
过滤器(逗号分隔) search_options): LeadFree, RoHSCompliant, InStock, HasDatasheet, HasProductPhoto, Has3DModel, NewProduct
排序字段: Packaging, ProductStatus, DigiKeyProductNumber, ManufacturerProductNumber, Manufacturer, MinimumQuantity, QuantityAvailable, Price, Supplier, PriceManufacturerStandardPackage
配置
所有设置均通过环境变量进行控制。在Docker MCP Toolkit模式下,这些在目录中设置 env 封锁或作为秘密。在独立模式下,使用 .env 文件。
| 变量 | 默认值 | 描述 |
|---|---|---|
CLIENT_ID |
(必填) | DigiKey API客户ID |
CLIENT_SECRET |
(必填) | DigiKey API客户机密 |
DIGIKEY_ACCOUNT_ID |
(可选) | DigiKey客户编号。订购工具所需(list_orders, get_order_status). |
USE_SANDBOX |
true |
使用沙箱API(true)或生产(false).Dockerfile和目录示例将其重写为 false. |
DIGIKEY_LOCALE_SITE |
US |
DigiKey网站(例如。, AT, DE, UK).还为购物车和MyList URL设置网站域(见下文)。 |
DIGIKEY_LOCALE_LANGUAGE |
en |
响应语言 |
DIGIKEY_LOCALE_CURRENCY |
USD |
定价货币(例如。, EUR) |
Docker MCP注册表
此回购的结构是为了提交给 docker/mcp注册表The server.yaml 文件包含注册表项引用——这是 不 与上面的本地目录相同。当服务器发布到注册表时,用户不需要创建自定义目录;他们将直接通过安装 docker mcp server enable digikey.
故障排除
Gateway显示0个工具: 服务器使用惰性OAuth初始化——在第一次工具调用之前,它不会进行身份验证。如果网关仍然没有显示任何工具,请验证 tools 目录中的列表与上面的工具名称匹配。
第一次工具调用时出现OAuth错误: 使用验证您的凭据 docker mcp secret list。机密名称必须加前缀: digikey.CLIENT_ID,不 CLIENT_ID.
订购工具返回400错误请求: 订单端点需要 DIGIKEY_ACCOUNT_ID.设置它 docker mcp secret set digikey.DIGIKEY_ACCOUNT_ID。该值是您的DigiKey客户号,可以在您的 账户设置.
API调用运行一段时间后失败,401: 服务器在启动时获取一次OAuth令牌,不会刷新它。DigiKey令牌将在约30分钟后过期。重新启动MCP客户端(或容器)以获取新令牌。
目录更改未生效: 重新运行 docker mcp catalog import ~/.docker/mcp/catalogs/custom.yaml 编辑目录文件后。之后重新启动MCP客户端。
许可证
MIT许可证——见 许可证.