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 個工具