Debecker

AI Agents & Developers Guide

Debecker (Udo Debecker BV, Kortrijk, Belgium) sells tableware for hospitality and home: porcelain, glassware, cutlery and table lamps. This page explains how AI agents and developers can search the live catalogue, read product and store information, manage a shopper's cart and, for signed-in trade customers, read and repeat earlier orders. Every interface below uses the same tool names, descriptions and parameters.

Quick guide

  1. In the browser (WebMCP). Every shop page on www.debecker.be registers all 8 tools with document.modelContext.registerTool before the app loads. A browser agent can call them directly instead of scraping the page.
  2. MCP server. https://www.debecker.be/mcp (Streamable HTTP, stateless, JSON responses). It exposes the server-backed tools: search_catalog, get_product, list_collections, get_store_info, b2b_order_history.
  3. REST. The same server tools as POST /api/agent/{tool} with a JSON body. Specification: /openapi.json, interactive: /openapi.html (Swagger UI).

Cart and checkout tools only exist in the browser, because the cart lives in the shopper's tab. No tool places an order or takes a payment: the shopper always pays in Stripe Checkout themselves.

Tools

NamePurposeBucketLoginAvailable via
search_catalogZoeken in de catalogus2: server-backed, publicNoneWebMCP, MCP, REST
get_productProduct opvragen2: server-backed, publicNoneWebMCP, MCP, REST
list_collectionsMerken en collecties2: server-backed, publicNoneWebMCP, MCP, REST
get_store_infoWinkelinformatie2: server-backed, publicNoneWebMCP, MCP, REST
manage_cartWinkelmand beheren1: page-local (in the browser tab)NoneWebMCP
start_checkoutNaar afrekenen1: page-local (in the browser tab)NoneWebMCP
b2b_order_historyB2B-orderhistoriek3: server-backed, private (B2B login)B2B loginWebMCP, MCP, REST
b2b_reorderB2B opnieuw bestellen3: server-backed, private (B2B login)B2B loginWebMCP

search_catalog

Zoek in de live catalogus van Debecker (tafelgerei voor horeca en thuis: porselein, glaswerk, bestek, tafellampen, buffet). Gebruik dit zodra de shopper een producttype, merk, collectie, artikelnummer of budget noemt. Geeft maximaal 8 bestelbare producten met prijs in EUR en de product-URL. Met de login van een B2B-klant krijg je nettoprijzen excl. btw, anders prijzen incl. 21% btw. Roep daarna get_product aan voor varianten en verpakking.

REST: POST /api/agent/search_catalog

get_product

Haal één product op: titel, korte beschrijving, prijs, verpakkingsgrootte (aantal stuks per verpakking), alle koopbare varianten met SKU en kleur, en de URL. Gebruik dit voor manage_cart met action add, om de juiste variant_sku te kiezen.

REST: POST /api/agent/get_product

list_collections

Lijst de merken van de webshop, of de collecties van één merk met het aantal producten en de URL. Gebruik dit om te browsen of om een merk- of collectienaam exact te krijgen voor search_catalog.

REST: POST /api/agent/list_collections

get_store_info

Feitelijke informatie over Debecker: verzendkosten en drempels per land, levering, retourbeleid, betaalmethodes, kortingen, contact en de openingsuren van de showroom in Kortrijk. Alles komt uit de site zelf; wat niet vastligt, staat als unknown met een link naar de pagina.

REST: POST /api/agent/get_store_info

manage_cart

Bekijk en wijzig het winkelmandje van de shopper in deze tab, zoals met de knoppen op de site. action view toont de inhoud; add legt een product in het mandje (geef product_id of handle, en variant_sku uit get_product als het product varianten heeft; quantity is het aantal verpakkingen); set_quantity wijzigt het aantal van een regel (line_id uit view, 0 verwijdert); remove verwijdert een regel; clear maakt het mandje leeg en vraagt confirm: true na akkoord van de shopper. Plaatst geen bestelling en start geen betaling.

start_checkout

Breng de shopper naar het winkelmandje om af te rekenen. Plaatst geen bestelling en start geen betaling: de shopper klikt zelf op Afrekenen en betaalt in de beveiligde Stripe-checkout. Faalt als het mandje leeg is.

No parameters.

b2b_order_history

Toon de eerdere bestellingen van de ingelogde B2B-klant (webshop en facturen): ordernummer, datum, bedrag excl. btw en aantal regels. Met order_number krijg je ook de regels (artikel, SKU, aantal verpakkingen, prijs). Vereist de login van een goedgekeurde B2B-klant; zonder login krijg je AUTH_REQUIRED.

REST: POST /api/agent/b2b_order_history

b2b_reorder

Zet alle regels van een eerdere bestelling van de ingelogde B2B-klant terug in het winkelmandje, met dezelfde aantallen. Artikelen die niet meer in de webshop staan, komen erin als regel aan de prijs van de laatste factuur. Vraag eerst akkoord en stuur confirm: true mee. Plaatst geen bestelling; de klant rekent zelf af. Vereist de login van een goedgekeurde B2B-klant.

Authentication

Public tools need no key and no login. Consumer prices include 21% Belgian VAT. Trade (B2B) prices and the B2B tools are only available for a signed-in, approved B2B customer. Authentication is two-hop: the agent sends the customer's own Supabase access token as Authorization: Bearer <token>, and the server queries the database with that same token, so the customer only ever sees their own data. In the browser this happens automatically when the customer is signed in. There are no API keys and no shared secrets; never ask a customer for their password.

Examples

curl -s https://www.debecker.be/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
curl -s https://www.debecker.be/api/agent/search_catalog \
  -H 'Content-Type: application/json' \
  -d '{"query":"wine glasses","limit":3,"language":"en"}'

Responses and errors

Every tool returns a JSON object. Success has ok: true. Errors never throw; they return { "ok": false, "code": "...", "message": "..." } with one of the codes VALIDATION, AUTH_REQUIRED, FORBIDDEN, NOT_FOUND, VARIANT_UNAVAILABLE, EMPTY_CART, CONFIRMATION_REQUIRED, UNAVAILABLE. Over REST the HTTP status follows the code (400, 401, 403, 404, 503). Please keep to about 120 requests per minute.

More

/llms.txt · /.well-known/webmcp.json · /openapi.json · Contact (info@debecker.be)