bol-mcp
](https://www.npmjs.com/package/bol-mcp)  ](https://nodejs.org/)   
一个 模型上下文协议 (MCP)服务器 bol.com零售商API管理订单、报价、运输、退货、发票和佣金,所有这些都是通过人工智能应用程序中的自然语言进行的。
让我们来: 这是一个非官方的,由社区维护的项目,不与bol.com相关或批准。
社区建设 模型上下文协议 (MCP)服务器 bol.com零售商API.管理订单、报价、发货、退货、发票和佣金——所有这些都可以通过任何兼容MCP的AI客户端通过自然语言完成。
注: 这是一个非官方的、由社区维护的项目,不隶属于bol.com或得到其认可。
快速启动
你不需要克隆这个仓库。
- 确保安装了 Node.js 20+(您的 AI 应用程序正在运行)
npxop-je机器) - 获取bol.com API数据(见 认证)
- 将服务器添加为 AI 应用程序中的 MCP 服务器(复制下面的配置)
- 用简单的荷兰语提问(见 例子)
快速入门(非开发人员)
您不需要克隆此仓库。
- 确保已安装Node.js 20+(您的AI应用程序将运行
npx在您的机器上) - 获取bol.com API凭据(请参阅 认证)
- 将服务器作为MCP服务器添加到您的AI应用程序中(复制/粘贴下面的配置)
- 用通俗易懂的语言提问(见 示例用法)
添加到Claude桌面(也适用于协作)
Cowork在Claude Desktop内部运行,并使用相同的连接MCP服务器和权限。
- 打开您的Claude Desktop MCP配置文件:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - 窗户: %APPDATA%\\Claude\\claude_desktop_config.json
- 添加此服务器条目(或将其合并到现有的
mcpServers):
{
"mcpServers": {
"bol-mcp": {
"command": "npx",
"args": ["-y", "bol-mcp"],
"env": {
"BOL_CLIENT_ID": "your-client-id",
"BOL_CLIENT_SECRET": "your-client-secret"
}
}
}
}- 重新启动克劳德桌面
添加到其他AI应用程序
大多数MCP应用程序都有一个类似“添加MCP服务器”的屏幕,您可以在其中填写:
- 命令:
npx - Args:
-y bol-mcp - 环境:
BOL_CLIENT_ID=your-client-id和BOL_CLIENT_SECRET=your-client-secret
如果你的应用程序需要JSON,粘贴它并将顶级键名调整到你的客户端(常见的是 mcpServers, servers,或 context_servers):
{
"": {
"bol-mcp": {
"command": "npx",
"args": ["-y", "bol-mcp"],
"env": {
"BOL_CLIENT_ID": "your-client-id",
"BOL_CLIENT_SECRET": "your-client-secret"
}
}
}
}故障排除
- 错误:
Missing required env vars: BOL_CLIENT_ID, BOL_CLIENT_SECRET
- 修复:将两个env变量添加到MCP服务器配置中,然后重新启动应用程序。
- 错误:
npx: command not found或服务器无法启动
- 修复:安装Node.js 20+并重新启动应用程序。
- 您可以连接,但API调用失败
401/403
- 修复:在bol.com卖家仪表板中验证客户端ID/密钥是否正确且处于活动状态。
API覆盖范围
bol.com为不同目的公开了几个API。此MCP服务器涵盖 零售商API v10 和那个 共享API --市场卖家管理日常运营的核心API。
| API | 状态 | 说明 |
|---|---|---|
| 零售商API v10 | 涵盖 | 核心卖家运营:订单、报价、发货、退货、发票、佣金、产品、库存、促销、补货、订阅等 |
| 共享API v10 | 涵盖 | 用于跟踪异步进程状态的Cross-API实用程序 |
| 提供API v11 | 未涵盖 | 下一代产品管理(经销商API产品端点的v11后续产品) |
| 广告客户API v11 | 未涵盖 | 赞助的产品活动、广告组、关键字、预算和绩效报告 |
| 经济运营商API | 未涵盖 | 经济运营商信息和监管合规数据 |
此MCP中包含的零售商API v10提供的端点功能齐全。Offer API v11是一个更新的版本,具有更新的端点结构-可能会在未来的版本中添加支持。
特性
- 76工具 包括bol.com零售商API v10在内的17个类别
- 订单管理 --通过状态和履行过滤列出、检查和取消订单
- 提供CRUD --使用价格/库存管理和导出报告创建、更新、删除报价
- 装运处理 --创建具有部分数量支持和发票请求的装运
- 退货处理 --列出、检查、创建和处理退货
- 发票访问 --按期间检索发票,包括完整的UBL详细信息和规格
- 佣金计算器 --按EAN、条件和价格计算的单笔和批量佣金率
- 产品目录 --浏览类别、搜索产品、查看竞争对手的报价、评级和资产
- 产品内容 --管理目录内容、上传报告和块推荐
- 洞察 --提供访问量、购买框百分比、绩效指标、产品排名、销售预测和搜索词
- 库存 --带过滤的LVB/FBB库存水平
- 促销 --列出并检查促销活动及其产品
- 补充资金 --完整的FBB补货生命周期:创建、更新、交货日期、取货槽、标签
- 零售商 --零售商账户信息
- 运输标签 --交付选项和标签创建
- 订阅 --带有签名密钥管理的webhook/pubsub/SQS事件订阅
- 运输 --更新运输跟踪信息
- 进程状态 --按ID、实体或批量跟踪异步操作
- OAuth2身份验证 具有自动令牌刷新功能
- 输入验证 通过每个工具上的Zod模式实现安全、可预测的操作
- 响应缓存 具有可配置的TTL和写入时自动失效功能
- 费率限制处理 具有指数回退和
Retry-After标头支持 - 工具集过滤 仅公开所需的工具类别
- Docker支持 用于集装箱化部署
- 可操作的错误消息 具有上下文感知的恢复建议
支持的客户
Advanced setup and supported clients (expand)
此MCP服务器未绑定到一个编码代理。它适用于任何可以启动stdio MCP服务器的MCP兼容客户端或代理运行时。
| 客户端/运行时 | 文档 |
|---|---|
| 克劳德代码 | 克劳德代码中的MCP |
| 人类API(信息API) | 远程MCP服务器 |
| Codex CLI(OpenAI) | Codex CLI文档 |
| Gemini CLI(谷歌) | Gemini CLI MCP服务器文档 |
| VS代码(副本) | 在VS代码中使用MCP服务器 |
| 克劳德桌面 | Claude Desktop中的MCP |
| 光标 | 光标文档 |
| 风帆冲浪 | Windsurf MCP文件 |
| 克莱恩 | 临床MCP文档 |
| Zed | Zed上下文服务器文档 |
| 任何其他MCP主机 | 使用命令/args/env 通用MCP服务器配置 |
克劳德生态系统笔记
Claude目前有多个易于混淆的MCP相关概念:
- 本地MCP服务器(克劳德桌面): 定义于
claude_desktop_config.json然后在你的机器上开始(文档). - 合作: 重用Claude Desktop中连接的MCP服务器(文档).
- 连接器: 在Claude中管理远程MCP集成(文档).
- 协作插件: Claude特定的工作流打包(说明+工具/数据集成)(文档).在Claude中很有用,但不能作为其他代理客户端的通用MCP服务器配置进行移植。
根据供应商文件验证 2026-03-05.
设置(高级用户)
如果快速入门在您的客户中有效,您可以跳过此部分。这些是额外的每个客户端设置选项和CLI单行程序。
通用MCP服务器配置
在任何主机中使用此作为基线:
- 命令:
npx - Args:
["-y", "bol-mcp"] - 必需的环境变量:
BOL_CLIENT_ID,BOL_CLIENT_SECRET - 可选环境变量:
BOL_CACHE_TTL,BOL_MAX_RETRIES,BOL_TOOLSETS(参见 配置)
最小JSON(使顶级密钥适应您的主机):
{
"": {
"bol-mcp": {
"command": "npx",
"args": ["-y", "bol-mcp"],
"env": {
"BOL_CLIENT_ID": "your-client-id",
"BOL_CLIENT_SECRET": "your-client-secret"
}
}
}
}主机密钥映射:
| 主持人 | 顶级密钥 | 备注 |
|---|---|---|
| VS代码 | servers | 添加 "type": "stdio" 在服务器对象上 |
| 克劳德桌面/光标/风帆/克莱恩 | mcpServers | 相同的命令/args/env块 |
| Zed | context_servers | 相同的命令/args/env块 |
| 食品法典委员会CLI(TOML) | mcp_servers | 使用TOML,如下所示 |
克劳德代码
claude mcp add --scope user bol-mcp \
--env BOL_CLIENT_ID=your-client-id \
--env BOL_CLIENT_SECRET=your-client-secret \
-- npx -y bol-mcpCodex CLI(OpenAI)
codex mcp add bol-mcp \
--env BOL_CLIENT_ID=your-client-id \
--env BOL_CLIENT_SECRET=your-client-secret \
-- npx -y bol-mcp~/.codex/config.toml 备选方案:
[mcp_servers.bol-mcp]
command = "npx"
args = ["-y", "bol-mcp"]
env = { "BOL_CLIENT_ID" = "your-client-id", "BOL_CLIENT_SECRET" = "your-client-secret" }Gemini CLI(谷歌)
gemini mcp add bol-mcp -- npx -y bol-mcp集 BOL_CLIENT_ID 和 BOL_CLIENT_SECRET 在 ~/.gemini/settings.json.
VS代码(副本)
打开命令选项板(Cmd+Shift+P / Ctrl+Shift+P) > MCP: Add Server > 命令(stdio),或使用 .vscode/mcp.json 使用顶级密钥 servers 以及来自的规范命令/args/env块 通用MCP服务器配置.
克劳德桌面+协作/光标/风帆/克莱恩/泽德
Cowork在Claude Desktop内部运行,并使用相同的连接MCP服务器和权限。在Claude Desktop中配置一次,服务器就可以在Cowork中使用。
使用规范配置块,并将其与匹配的顶级密钥一起放置在下面的主机文件中。
| 客户端 | 配置位置 | 顶级密钥 |
|---|---|---|
| 克劳德桌面(macOS) | ~/Library/Application Support/Claude/claude_desktop_config.json | mcpServers |
| 克劳德桌面(Windows) | %APPDATA%\\Claude\\claude_desktop_config.json | mcpServers |
| 光标(项目) | .cursor/mcp.json | mcpServers |
| 光标(全局) | ~/.cursor/mcp.json | mcpServers |
| 风帆冲浪 | ~/.codeium/windsurf/mcp_config.json | mcpServers |
| 临床 | MCP设置UI | mcpServers |
| Zed(macOS/Linux) | ~/.zed/settings.json 或 ~/.config/zed/settings.json | context_servers |
码头工人
docker run -i --rm \
-e BOL_CLIENT_ID=your-client-id \
-e BOL_CLIENT_SECRET=your-client-secret \
ghcr.io/bartwaardenburg/bol-mcp其他MCP客户端
使用以下值 通用MCP服务器配置.
术语
什么是可跨主机移植的:
- MCP服务器运行时设置(
command,args,env) - 运输模型(
stdio命令服务器) - 此服务器公开的工具名称和工具模式
什么是特定于主机/供应商的(不可移植):
- 主机配置密钥名称(
servers,mcpServers,context_servers,mcp_servers) - 主机UX/添加服务器的工作流(CLI命令、UI菜单、设置路径)
- 人类特有的概念,如 Claude Desktop本地MCP服务器, Claude连接器通过远程MCP,以及 Claude代码插件 用于联合工作流程
安全说明
- 信任模型: 允许调用此MCP服务器的任何提示或代理都可以使用配置的凭据执行bol.com API操作。
- 最低权限凭据: 每个环境/团队/用例使用单独的bol.com API凭据,并在访问更改时轮换/撤销。
- 书面行动批准: 为变异工具启用主机端审批(
create_*,update_*,delete_*,cancel_*,handle_return装运/补货行动)。 - 团队配置治理: 将共享MCP配置保留在版本控制中,要求检查命令/args/env/toolset过滤的更改,并将机密保存在vault或主机机密管理器中(而不是纯文本仓库文件中)。
配置
必需的
| 变量 | 描述 |
|---|---|
BOL_CLIENT_ID | 您的bol.com API客户端ID |
BOL_CLIENT_SECRET | 您的bol.com API客户机密 |
在中生成您的凭据 bol.com合作伙伴平台 在...之下 设置>API设置.
可选的
| 变量 | 描述 | 默认值 |
|---|---|---|
BOL_CACHE_TTL | 响应缓存生存期(秒)。设置为 0 禁用缓存。 | 120 |
BOL_MAX_RETRIES | 具有指数回退的速率限制(429)请求的最大重试尝试次数。 | 3 |
BOL_TOOLSETS | 要启用的工具类别的逗号分隔列表(请参见 工具集筛选). | 所有工具集 |
认证
此服务器使用 OAuth2客户端凭据流。它会自动获取和刷新访问令牌——您只需提供客户端ID和密码。
有关完整详细信息,请参阅 官方bol.com身份验证文档.
创建您的凭据
- 登录到 bol.com卖家仪表板
- 导航至 设置 > 服务 > API设置
- 提供技术联系方式(创建凭据前需要)
- 创建新的API凭据集
- 复制 客户端ID 和 客户端密钥
运作原理
服务器通过bol.com令牌端点将您的凭据交换为短期访问令牌:
- 端点:
POST https://login.bol.com/token - 认证: HTTP基础版
base64(clientId:clientSecret) - 资助类型:
client_credentials - 令牌寿命: 约5分钟(299秒)
令牌在到期前会自动重用和刷新,不需要手动令牌管理。
安全最佳实践
看 安全说明.bol.com特定的证书卫生:
- 切勿共享您的客户端ID或客户端机密,也不要在源文件中硬编码它们
- 使用环境变量或主机密钥存储传递凭据
- 如果怀疑存在泄露,请立即撤销并替换凭据
可用工具
订单
| 工具 | 说明 |
|---|---|
list_orders | 列出具有可选状态和履行方式过滤的订单 |
get_order | 通过订单ID获取详细的订单信息 |
cancel_order_items | 取消带有原因代码的订单项目 |
优惠
| 工具 | 说明 |
|---|---|
get_offer | 通过报价ID获取报价详细信息 |
create_offer | 创建新报价(EAN、条件、价格、库存、履行方式) |
update_offer | 更新优惠详情(参考、onHoldByRetailor、未知产品名称、履行) |
delete_offer | 永久删除优惠 |
update_offer_price | 更新报价的定价 |
update_offer_stock | 更新报价的库存水平 |
request_offer_export | 请求所有报价的CSV导出 |
get_offer_export | 下载以前请求的报价导出 |
request_unpublished_offer_report | 要求提供未发布报价的报告 |
get_unpublished_offer_report | 下载之前请求的未发布的报价报告 |
货运
| 工具 | 说明 |
|---|---|
list_shipments | 列出带有可选订单ID和履行方式过滤的货物 |
get_shipment | 按装运ID获取装运详细信息 |
create_shipment | 为订单项创建装运(支持部分数量) |
get_shipment_invoice_requests | 列出装运发票请求 |
退货
| 工具 | 说明 |
|---|---|
list_returns | 包含可选已处理状态和履行方式过滤的列表返回 |
get_return | 通过RMA ID获取退货详细信息 |
handle_return | 处理/处理退货(接受、拒绝、维修等) |
create_return | 为订单项创建退货 |
发票
| 工具 | 说明 |
|---|---|
list_invoices | 按日期段列出发票(最多31天,格式:YYYY-MM-DD) |
get_invoice | 按发票ID获取完整的发票详细信息 |
get_invoice_specification | 获取详细的发票规格/行项目 |
佣金
| 工具 | 说明 |
|---|---|
get_commission | 按EAN、条件和单价计算产品的佣金 |
get_bulk_commissions | 一次计算多个产品的佣金 |
产品
| 工具 | 说明 |
|---|---|
get_product_categories | 浏览产品类别 |
get_product_list | 按类别或搜索词搜索和浏览产品 |
get_product_list_filters | 获取可用的产品列表筛选器 |
get_product_assets | 通过EAN获取产品图片和资产 |
get_competing_offers | 通过EAN获取产品的竞争报价 |
get_product_placement | 获取产品植入信息 |
get_price_star_boundaries | 获取产品的价格星级界限 |
get_product_ids | 通过EAN获取产品标识符 |
get_product_ratings | 获取产品评级和评论 |
产品内容
| 工具 | 说明 |
|---|---|
get_catalog_product | 通过EAN获取目录产品详细信息 |
create_product_content | 创建或更新产品内容 |
get_upload_report | 获取产品内容上传报告 |
get_chunk_recommendations | 获取产品内容推荐 |
洞察
| 工具 | 说明 |
|---|---|
get_offer_insights | 获取优惠访问和购买盒子的见解 |
get_performance_indicators | 获取零售商绩效指标 |
get_product_ranks | 获取产品搜索和浏览排名 |
get_sales_forecast | 获取报价的销售预测 |
get_search_terms | 获取搜索词数量数据 |
库存
| 工具 | 说明 |
|---|---|
get_inventory | 通过按库存级别、状态和EAN过滤来获取LVB/FBB库存 |
促销
| 工具 | 说明 |
|---|---|
list_promotions | 按类型列出可用促销活动 |
get_promotion | 获取促销详情 |
get_promotion_products | 在促销活动中获取产品 |
补充资金
| 工具 | 说明 |
|---|---|
list_replenishments | 列出带有过滤功能的FBB补货 |
get_replenishment | 获取补货详细信息 |
create_replenishment | 创建新的FBB补货 |
update_replenishment | 更新或取消补货 |
get_delivery_dates | 获取可用的FBB交货日期 |
get_pickup_time_slots | 获取交货日期的取货时间段 |
request_product_destinations | 请求产品仓库目的地 |
get_product_destinations | 获取产品仓库目的地 |
零售商
| 工具 | 说明 |
|---|---|
get_retailer_information | 获取零售商帐户信息 |
运输标签
| 工具 | 说明 |
|---|---|
get_delivery_options | 获取订单商品的可用运输/交付选项 |
create_shipping_label | 为订单项目创建发货标签 |
订阅
| 工具 | 说明 |
|---|---|
list_subscriptions | 列出所有事件订阅 |
get_subscription | 获取订阅详细信息 |
create_subscription | 创建事件订阅(webhook、GCP发布/订阅或AWS SQS) |
update_subscription | 更新事件订阅 |
delete_subscription | 删除事件订阅 |
test_subscription | 向订阅发送测试通知 |
get_signature_keys | 获取用于webhook签名验证的公钥 |
运输
| 工具 | 说明 |
|---|---|
update_transport | 更新运输/跟踪信息 |
进程状态
| 工具 | 说明 |
|---|---|
get_process_status | 通过进程状态ID获取异步进程的状态 |
get_process_status_by_entity | 按实体ID和事件类型获取流程状态 |
get_process_status_bulk | 通过ID获取多个进程的状态(最多1000个) |
工具集筛选
通过仅启用所需的工具类别来减少上下文窗口的使用。设置 BOL_TOOLSETS 将环境变量转换为逗号分隔的列表:
BOL_TOOLSETS=orders,offers| 工具集 | 包含的工具 |
|---|---|
orders | 订单列表、详细信息和取消 |
offers | 全面提供CRUD、价格/库存管理、出口报告 |
shipments | 发货清单、详细信息、创建和发票请求 |
returns | 退货清单、详细信息、创建和处理 |
invoices | 发票清单、详细信息和规格 |
commissions | 单笔和批量佣金计算 |
products | 产品类别、搜索、资产、竞争报价、评级、位置 |
product-content | 产品目录、内容创建、上传报告、推荐 |
insights | 提供见解、绩效指标、产品排名、销售预测、搜索词 |
inventory | LVB/FBB库存水平 |
promotions | 促销列表和产品详细信息 |
replenishments | FBB补货生命周期、交货日期、提货槽、目的地 |
retailers | 零售商帐户信息 |
shipping-labels | 交付选项和运输标签创建 |
subscriptions | 事件订阅管理和签名密钥 |
transports | 运输跟踪更新 |
process-status | 异步进程状态跟踪(按ID、实体或批量) |
如果未设置,则启用所有工具集。无效名称将被忽略;如果所有名称都无效,则启用所有工具集作为回退。
例子
一旦连接,您可以用简单的荷兰语提问:
- “显示我的所有未决订单”
- “输入订单详情 1234567890”
- “报价 EAN 9781234567890 价格 19,99 EUR 有库存 50 件”
- “将库存更新为报价 abc-123 至 25 件”
- “使用TNT运输代码发送订单项目1234567890”
- “显示所有未处理的回报”
- “EAN 9781234567890的佣金为29.99欧元?”
- “显示我的2025年1月发票”
示例用法
连接后,您可以使用自然语言与bol.com API进行交互:
- “列出我的所有未结订单”
- “显示订单1234567890的详细信息”
- “以19.99欧元的价格为EAN 9781234567890创建报价,有50件库存”
- “将报价库存abc-123更新为25个单位”
- “运送订单1234567890中的订单项目,运输代码TNT”
- “显示所有未处理的退货”
- “29.99欧元的EAN 9781234567890的佣金是多少?”
- “列出我2025年1月的发票”
社区
发展
# Install dependencies
pnpm install
# Run in development mode
pnpm dev
# Build for production
pnpm build
# Run tests
pnpm test
# Type check
pnpm typecheck项目结构
src/
index.ts # Entry point (stdio transport)
server.ts # MCP server setup and toolset filtering
bol-client.ts # bol.com API HTTP client with OAuth2, caching, and retry
cache.ts # TTL-based in-memory response cache
types.ts # TypeScript interfaces for bol.com API v10
tool-result.ts # Error formatting with recovery suggestions
update-checker.ts # NPM update notifications
tools/
orders.ts # Order listing, details, and cancellation
offers.ts # Offer CRUD, pricing, stock, and export reports
shipments.ts # Shipment listing, details, creation, and invoices
returns.ts # Return listing, details, creation, and handling
invoices.ts # Invoice listing, details, and specifications
commissions.ts # Single and bulk commission calculation
products.ts # Product catalog, search, competing offers, ratings
product-content.ts # Catalog content management and recommendations
insights.ts # Offer insights, performance, ranks, forecasts
inventory.ts # LVB/FBB inventory management
promotions.ts # Promotion listing and products
replenishments.ts # FBB replenishment lifecycle
retailers.ts # Retailer account information
shipping-labels.ts # Delivery options and label creation
subscriptions.ts # Event subscription management
transports.ts # Transport tracking updates
process-status.ts # Asynchronous process status tracking需求
- Node.js>=20
- A. bol.com 网站 具有API证书的卖家帐户
许可证
麻省理工学院-见 许可证 了解详情。
