bol.com MCP by usefulapi

Read bol orders, returns, offers and inventory; update an offer’s stock, price or sale status.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
97%
命名质量
79%
投毒风险
80%
权限匹配度
100%
协议合规性
100%

发现(3)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains suspicious base64-like encoded string在 bol_get_performance_indicator 中
  • LOWTool 'bol_get_offer_not_for_sale_reasons' name length outside 3-30 range在 bol_get_offer_not_for_sale_reasons 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~4,232token 数(工具定义)
~1.4 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 3.31%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "bol-com": {
      "url": "https://bol-com.usefulapi.io/mcp"
    }
  }
}

远程端点

https://bol-com.usefulapi.io/mcpstreamable-http

它能做什么

工具清单

工具(18)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢bol_list_orders(status, fulfilment_method, change_interval_minute, latest_change_date, page)

List the seller's bol orders (50 per page), each with its order items, EANs, quantities, prices, fulfilment method and the buyer's shipment details (personal data). By default only OPEN orders fulfilled by the retailer (FBR). Use change_interval_minute or latest_change_date to poll for recent changes. GET /retailer/orders.

输入模式

{
  "type": "object",
  "properties": {
    "status": {
      "description": "Order status (default OPEN).",
      "type": "string",
      "enum": [
        "OPEN",
        "SHIPPED",
        "ALL"
      ]
    },
    "fulfilment_method": {
      "description": "Fulfilled by the retailer (FBR, default), by bol (FBB) or both (ALL).",
      "type": "string",
      "enum": [
        "FBR",
        "FBB",
        "ALL"
      ]
    },
    "change_interval_minute": {
      "description": "Only order items changed in the last N minutes (1-60).",
      "type": "integer",
      "minimum": 1,
      "maximum": 60
    },
    "latest_change_date": {
      "description": "Only order items last changed on this date, yyyy-mm-dd (up to 3 months back).",
      "type": "string"
    },
    "page": {
      "description": "Page number, from 1 (default 1). Use the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bol_get_order(order_id)

One order by id: the order items (with their order item ids), prices, quantities, fulfilment, the buyer's shipment and billing details (personal data) and the latest delivery dates. GET /retailer/orders/{order-id}.

输入模式

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,64}$",
      "description": "The bol order id (from bol_list_orders)."
    }
  },
  "required": [
    "order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bol_list_shipments(order_id, fulfilment_method, page)

List shipments up to 3 months old, newest first (50 per page): shipment id, date, the order items shipped and the transport (track and trace). Filter by order_id OR fulfilment_method (order_id wins). GET /retailer/shipments.

输入模式

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,64}$",
      "description": "Only the shipments of this order."
    },
    "fulfilment_method": {
      "description": "FBR or FBB (ignored when order_id is given).",
      "type": "string",
      "enum": [
        "FBR",
        "FBB"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Use the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bol_get_shipment(shipment_id)

One shipment by id: shipment date, order items, transport and track and trace details, the buyer's delivery address (personal data). GET /retailer/shipments/{shipment-id}.

输入模式

{
  "type": "object",
  "properties": {
    "shipment_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,64}$",
      "description": "The shipment id (from bol_list_shipments)."
    }
  },
  "required": [
    "shipment_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bol_list_returns(handled, fulfilment_method, page)

List customer returns (RMA): return id, registration date, fulfilment method and the return items with their handling status. Set handled explicitly: true = handled returns (newest first), false = returns still to handle (oldest first); bol documents no default. GET /retailer/returns.

输入模式

{
  "type": "object",
  "properties": {
    "handled": {
      "description": "true = handled returns, false = returns still to handle. Set it explicitly.",
      "type": "boolean"
    },
    "fulfilment_method": {
      "description": "FBR or FBB.",
      "type": "string",
      "enum": [
        "FBR",
        "FBB"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Use the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bol_get_return(return_id)

One return by id: return items, reasons, handling results, the customer's details (personal data). GET /retailer/returns/{return-id}.

输入模式

{
  "type": "object",
  "properties": {
    "return_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,64}$",
      "description": "The return id (from bol_list_returns)."
    }
  },
  "required": [
    "return_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bol_list_offers(offer_ids, eans, reference, for_sale, last_modified_since, ...)

List the seller's offers (Offers API v11): offer id, EAN, condition, price bundles, stock, fulfilment, on-hold flag and last-modified time. Filter by offer ids, EANs, your reference, for-sale state or last-modified time. Cursor paging: pass the previous reply's next_cursor. GET /retailer/offers (v11).

输入模式

{
  "type": "object",
  "properties": {
    "offer_ids": {
      "description": "Only these offer ids (UUIDs).",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
        "description": "An offer id."
      }
    },
    "eans": {
      "description": "Only these EANs.",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^\\d{8,14}$",
        "description": "EAN (8 to 14 digits)."
      }
    },
    "reference": {
      "description": "Only offers with this seller reference.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "for_sale": {
      "description": "true = only offers currently for sale, false = only those not for sale.",
      "type": "boolean"
    },
    "last_modified_since": {
      "description": "Only offers modified since this UTC time, e.g. 2026-10-01T08:00:00Z.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
    },
    "page_size": {
      "description": "Offers per page, 1-100.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "cursor": {
      "description": "The next_cursor of the previous reply.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bol_get_offer(offer_id)

One offer by id (Offers API v11): condition, price bundles, stock, fulfilment, countries, product. GET /retailer/offers/{offer-id} (v11).

输入模式

{
  "type": "object",
  "properties": {
    "offer_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
      "description": "The offer id (UUID, from bol_list_offers)."
    }
  },
  "required": [
    "offer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bol_get_offer_not_for_sale_reasons(offer_id)

The reasons an offer is not for sale per country (an offer that is for sale everywhere has none) (content, price, stock, shop status, selling rights, on hold, assortment policy), each with a code and description. GET /retailer/offers/{offer-id}/not-for-sale-reasons (v11).

输入模式

{
  "type": "object",
  "properties": {
    "offer_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
      "description": "The offer id (UUID)."
    }
  },
  "required": [
    "offer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴bol_update_offer(offer_id, on_hold, reference, prices, stock_amount, ...)

WRITE: change an existing offer on bol (Offers API v11 PATCH): put it on hold or back on sale, set your reference, replace its price bundles and/or its own stock. Only the fields you pass change. A price or stock change goes live on bol.com. Use bol_list_offers first to see the current values. PATCH /retailer/offers/{offer-id} (v11).

输入模式

{
  "type": "object",
  "properties": {
    "offer_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
      "description": "The offer id (UUID)."
    },
    "on_hold": {
      "description": "true = take the offer off sale (hold), false = list it for sale again.",
      "type": "boolean"
    },
    "reference": {
      "description": "Your own reference for the offer (max 100 chars; empty clears it).",
      "type": "string",
      "maxLength": 100
    },
    "prices": {
      "description": "Replaces ALL price bundles: [{quantity: 1, unit_price: 9.99}, ...]. The first quantity must be 1; quantities rise, unit prices (incl. VAT, 2 decimals) fall.",
      "minItems": 1,
      "maxItems": 4,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 24
          },
          "unit_price": {
            "type": "number",
            "minimum": 1,
            "maximum": 9999
          }
        },
        "required": [
          "quantity",
          "unit_price"
        ]
      }
    },
    "stock_amount": {
      "description": "Stock in your own warehouse (not FBB stock).",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "stock_managed_by_retailer": {
      "description": "true = you manage stock levels; false = bol corrects stock for open orders.",
      "type": "boolean"
    }
  },
  "required": [
    "offer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bol_list_inventory(query, stock, state, quantity, page)

Fulfilment by bol (FBB/LVB) inventory only, not your own stock (50 per page): EAN, title, regular and graded stock, and the stock level. Filter by EAN or title, stock level, stock type or a quantity range. GET /retailer/inventory.

输入模式

{
  "type": "object",
  "properties": {
    "query": {
      "description": "EAN or product title.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "stock": {
      "description": "Stock level filter.",
      "type": "string",
      "enum": [
        "SUFFICIENT",
        "INSUFFICIENT"
      ]
    },
    "state": {
      "description": "Stock type filter.",
      "type": "string",
      "enum": [
        "REGULAR",
        "GRADED"
      ]
    },
    "quantity": {
      "description": "Quantity range \"min-max\", e.g. \"0-10\".",
      "type": "string",
      "pattern": "^\\d+-\\d+$"
    },
    "page": {
      "description": "Page number, from 1 (default 1). Use the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bol_list_invoices(period_start_date, period_end_date)

List bol invoices (the seller's statements from bol), by default the past 4 weeks: invoice id, issue date, type, period and the media types it can be downloaded in. Pass both dates to look further back (max 31 days). GET /retailer/invoices.

输入模式

{
  "type": "object",
  "properties": {
    "period_start_date": {
      "description": "Period start, yyyy-mm-dd (give both dates, max 31 days apart).",
      "type": "string"
    },
    "period_end_date": {
      "description": "Period end, yyyy-mm-dd.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bol_get_invoice_specification(invoice_id, page)

The transactions (sales, commissions, shipping, returns) behind one bol invoice, as JSON, up to 25,000 lines per page. GET /retailer/invoices/{invoice-id}/specification.

输入模式

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,64}$",
      "description": "The invoice id (from bol_list_invoices)."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Use the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    }
  },
  "required": [
    "invoice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bol_get_commissions(products)

Calculate bol's commission for up to 100 products: for each EAN, a selling price and optionally a condition, returns the fixed amount, the percentage, total cost and any reductions. Read-only (a POST because of the request body). POST /retailer/commission.

输入模式

{
  "type": "object",
  "properties": {
    "products": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "ean": {
            "type": "string",
            "pattern": "^\\d{8,14}$",
            "description": "EAN (8 to 14 digits)."
          },
          "unit_price": {
            "type": "number",
            "minimum": 0,
            "maximum": 9999,
            "description": "Selling price per unit incl. VAT."
          },
          "condition": {
            "description": "Offer condition (default NEW).",
            "type": "string",
            "enum": [
              "NEW",
              "AS_NEW",
              "GOOD",
              "REASONABLE",
              "MODERATE"
            ]
          }
        },
        "required": [
          "ean",
          "unit_price"
        ]
      },
      "description": "The products to calculate."
    }
  },
  "required": [
    "products"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bol_get_competing_offers(ean, country_code, best_offer_only, condition, page)

The offers on bol.com for one EAN from all retailers: price, condition, fulfilment, the best offer. Optionally only the best offer or one condition and country. GET /retailer/products/{ean}/offers.

输入模式

{
  "type": "object",
  "properties": {
    "ean": {
      "type": "string",
      "pattern": "^\\d{8,14}$",
      "description": "EAN (8 to 14 digits)."
    },
    "country_code": {
      "description": "Webshop country (default NL).",
      "type": "string",
      "enum": [
        "NL",
        "BE"
      ]
    },
    "best_offer_only": {
      "description": "true = only the best offer.",
      "type": "boolean"
    },
    "condition": {
      "description": "Offer condition filter.",
      "type": "string",
      "enum": [
        "ALL",
        "BAD",
        "MODERATE",
        "REASONABLE",
        "GOOD",
        "AS_NEW",
        "NEW",
        "REFURBISHED_A",
        "REFURBISHED_B",
        "REFURBISHED_C"
      ]
    },
    "page": {
      "description": "Page number, 1-200.",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    }
  },
  "required": [
    "ean"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bol_get_performance_indicator(name, year, week)

The seller's weekly measurements of one bol performance indicator (cancellations, fulfilment, phone availability, response time, case/item ratio, track and trace, returns, reviews) for an ISO year and week. GET /retailer/insights/performance/indicator.

输入模式

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "enum": [
        "CANCELLATIONS",
        "FULFILMENT",
        "PHONE_AVAILABILITY",
        "RESPONSE_TIME",
        "CASE_ITEM_RATIO",
        "TRACK_AND_TRACE",
        "RETURNS",
        "REVIEWS"
      ],
      "description": "The indicator."
    },
    "year": {
      "type": "integer",
      "minimum": 2000,
      "maximum": 2100,
      "description": "Year, e.g. 2026."
    },
    "week": {
      "type": "integer",
      "minimum": 1,
      "maximum": 53,
      "description": "ISO week number, 1-53."
    }
  },
  "required": [
    "name",
    "year",
    "week"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bol_get_sales_forecast(offer_id, weeks_ahead)

bol's sales forecast for one offer: expected sales on the whole bol.com platform for the next 1-12 weeks. GET /retailer/insights/sales-forecast.

输入模式

{
  "type": "object",
  "properties": {
    "offer_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
      "description": "The offer id (UUID)."
    },
    "weeks_ahead": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12,
      "description": "Weeks ahead, 1-12."
    }
  },
  "required": [
    "offer_id",
    "weeks_ahead"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bol_get_process_status(process_status_id)

The status of an asynchronous bol process (a write that answered 202) by its process status id: PENDING, SUCCESS, FAILURE or TIMEOUT, with the error message on failure. GET /shared/process-status/{process-status-id}.

输入模式

{
  "type": "object",
  "properties": {
    "process_status_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,64}$",
      "description": "The process status id."
    }
  },
  "required": [
    "process_status_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本18 个工具