MCP servers / Commerce Preflight
Commerce Preflight
Search retail products, read current offers in integer cents, compare them as a value table, and hand a human an official buy link — before anyone spends anything. Searching and comparing are market-agnostic; only the connected source is local, and every answer declares the markets it covers.
Jithox · Global access · source covers BE/NL · Retail commerce · Temporarily unavailable
Temporarily unavailable
Overview
Who it is for: Shopping and procurement agents anywhere, and any workflow that must check a real price before acting. The first connected source covers Belgium and the Netherlands.
- Endpoint
- https://commerce.mcp.jithox.com/mcp
- Protocol
- 2026-07-28 (also 2025-11-25, 2025-06-18, 2025-03-26)
- Authentication
- OAuth 2.1 with PKCE (S256). Its own OAuth resource.
- Source
- The official bol.com partner API, read live at the stated retrieval time. An outage is reported as unavailable — never as a price, and never as 'not sold'.
Tool explorer
Every tool this server prices, with its input schema, its output shape and an example. This explorer is read-only documentation: nothing on this page calls the server, so reading it executes nothing and costs nothing.
search_retail_products
Search the connected retail source by free text or EAN.
When to use it: First step: turn a product name or barcode into candidate public records.
- Required input
- —
- Optional input
- query, ean
- Output fields
- state, matches[], sources[]
- Price
- Not sold while unavailable
Example input
{ "query": "espresso machine" }Example output
{ "state": "multiple_matches",
"matches": [{ "publicRecordId": "prd_9200000031", "title": "Espresso machine X", "ean": "8712345678901" }] }- Charges you
- exact_public_record, possible_match, multiple_matches, no_match_in_queried_source, not_configured
- Costs €0.00
- unavailable, plus every error
get_product_offer
One product's current offer: price in integer cents, availability, delivery promise.
When to use it: When an agent needs the real current price before it plans anything.
- Required input
- —
- Optional input
- ean, publicRecordId
- Output fields
- state, priceCents, availability, sellerCount, sources[]
- Price
- Not sold while unavailable
Example input
{ "ean": "8712345678901" }Example output
{ "state": "exact_public_record",
"priceCents": 12999,
"availability": "in_stock",
"sources": [{ "name": "bol.com partner API", "retrievedAt": "2026-08-07T15:40:00Z" }] }- Charges you
- exact_public_record, no_match_in_queried_source, not_configured
- Costs €0.00
- unavailable, plus every error
compare_product_offers
Compare 2–5 products as a value table on a stated criterion.
When to use it: When the question is 'which of these is cheapest right now', answered as a table — never as advice.
- Required input
- eans
- Optional input
- —
- Output fields
- state, criterion, rows[]
- Price
- Not sold while unavailable
Example input
{ "eans": ["8712345678901", "8712345678902"] }Example output
{ "state": "compared",
"criterion": "price_ascending",
"rows": [{ "ean": "8712345678902", "priceCents": 10999 }, { "ean": "8712345678901", "priceCents": 12999 }] }- Charges you
- compared, not_configured
- Costs €0.00
- insufficient_identifiers, unavailable, plus every error
build_affiliate_buy_link
Build the official product link with partner tracking — for a human to click.
When to use it: The hand-over: the agent found the offer, a person decides and buys on the retailer's own site.
- Required input
- publicRecordId
- Optional input
- —
- Output fields
- state, url
- Price
- Not sold while unavailable
Example input
{ "publicRecordId": "prd_9200000031" }Example output
{ "state": "ready",
"url": "https://www.bol.com/be/nl/p/-/9200000031/?partner=..." }- Charges you
- not_configured
- Costs €0.00
- ready, plus every error
get_commerce_readiness
One plain state of this server: is the retail source and the partner programme configured.
When to use it: Before relying on the other tools — a truthful self-description, never a claim about a retailer.
- Required input
- —
- Optional input
- —
- Output fields
- state, sourceConfigured, affiliateConfigured
- Price
- Not sold while unavailable
Example input
{}Example output
{ "state": "ready",
"sourceConfigured": true,
"affiliateConfigured": true }- Charges you
- not_configured
- Costs €0.00
- ready, plus every error
How charging works
- Authorize — your credential, its scope and the product are checked.
- Reserve — the price is held against your trial or balance before anything runs.
- Execute — the tool does its work.
- Capture or release — an accepted, usable answer captures; anything else releases the hold in full.
- Receipt — an accepted call produces a signed receipt you can verify offline.
Failed calls cost €0.00. Errors, refusals, rate limits, kill switches and upstream outages never charge you and never consume a free call.
Your usage and balance
One workspace has one prepaid balance and one free allowance, both covering every available Jithox MCP server. You do not buy a balance per server, you do not get a fresh allowance per server, and a credential never holds money of its own.
Free allowance
25 accepted calls
14 days, once per workspace — not once per server. No card. The clock starts when you create your first key, and the allowance goes to the server you connect first.
Balance
One prepaid EUR balance
For all available Jithox MCP servers. Spend it wherever you like. No subscription and no automatic top-up.
How the balance works
One workspace → one free allowance → one prepaid EUR balance → a key per MCP server → paid calls → receipts.
- You do not buy a balance per MCP server — one balance covers all of them.
- Your workspace gets ONE free allowance: 25 accepted calls for 14 days, not 25 per server. Connecting a second server does not add more free calls.
- The allowance is held on the first server you connect. A key for another server still works — its calls are charged from your balance.
- Prices differ per server, so the same balance buys a different number of calls on each. The price list shows how many.
- A credential holds no money. Rotating or replacing one leaves your balance and your free calls exactly as they were — and it does not restart the 14 days.
- Future paid Jithox MCP servers draw on this same balance and this same allowance; they do not create a second one.
- Tax is calculated separately and is never spendable balance.
- There is no automatic top-up and no automatic subscription — funds are added only when you choose to add them.
Errors
| Code | Meaning |
|---|---|
| 401 | Authentication required — re-run the OAuth flow. |
| 403 | Insufficient scope, or a token for a different server. |
| 402 | Free calls used up and the balance cannot cover this call. Nothing ran, nothing was charged. |
| 429 | Rate limited. Honour retry-after; nothing was charged. |
| 503 | The product or its source is unavailable. This does NOT mean the server crashed — it means we will not answer without a source we trust. |
Limits and disclaimers
- Read-only: it never orders, never pays and holds no basket. The buy link is an official affiliate link a human clicks.
- A no-match means 'not found in the queried source', which declares the markets it covers — never 'not sold'.
- Prices are the queried source's own figures at the stated retrieval time; nothing is guessed and no partial comparison is served.