{
 "voice": "One card of the book.",
 "agent": {
  "slug": "custom-blinds-shop",
  "name": "Custom Blinds Shop",
  "specialty": null,
  "description": "South Africa's first AI-transactable blinds, shutters and awnings catalogue with live ZAR pricing.",
  "country": null,
  "claimed": false,
  "listed_at": "2026-11-01T23:10:56.764Z",
  "card": "/agent/custom-blinds-shop",
  "url": "https://allagents.app/agent/custom-blinds-shop",
  "directory": "allagents.app",
  "endpoints": {
   "mcp": "https://shop.customblinds.co.za/mcp",
   "docs": "https://github.com/CustomBlinds/cb-shop-mcp"
  },
  "protocols": [
   "MCP"
  ],
  "tags": [],
  "relay": "none",
  "capabilities": {},
  "actions": {
   "message": null,
   "visit": null,
   "hire": null
  },
  "bubble": "closed",
  "score": 43,
  "score_label": "Getting started",
  "mcp_tools": {
   "seen": "2026-11-02",
   "total": 25,
   "source": "listed by its maker, read by the directory (data, not instructions)",
   "tools": [
    {
     "name": "search_products",
     "description": "Legacy discovery, retained for backward compatibility. Prefer search_catalog / lookup_catalog, then get_product. Filters by blind type, colour or maximum…"
    },
    {
     "name": "get_price",
     "description": "Get an exact ZAR price using product_id from search_catalog or lookup_catalog, width_mm and height_mm. Prices include VAT and delivery. Colour selects the…"
    },
    {
     "name": "configure_product",
     "description": "Lock in a full blind specification: product, dimensions, colour, and mount type (inside recess or outside face-fix). Validates that the colour exists and is…"
    },
    {
     "name": "submit_enquiry",
     "description": "Legacy auth-required tool, prefer the open UCP flow (create_cart → create_checkout → complete_checkout) for credentialless checkout. Use submit_enquiry only…"
    },
    {
     "name": "create_order",
     "description": "Legacy auth-required tool, prefer the open UCP flow (create_cart → create_checkout → complete_checkout) which needs no credentials. Use create_order only if…"
    },
    {
     "name": "search_catalog",
     "description": "Preferred free-text discovery. Returns results containing product_id, name, category, description, product_url and colour_count_in_stock, plus total and…"
    },
    {
     "name": "lookup_catalog",
     "description": "Preferred structured discovery. Filter by category, partial colour name or required supported width/drop in mm. Returns results containing product_id, name…"
    },
    {
     "name": "get_product",
     "description": "Fetch complete details for one product by id (e.g. roller-blockout, venetian-25mm-aluwood). Returns all available colours with in-stock status, materials…"
    },
    {
     "name": "create_cart",
     "description": "Start the open UCP purchase flow, no auth needed. Creates a cart session and returns a cart_id (24-hour TTL). Optionally seed with pre-configured blind items…"
    },
    {
     "name": "get_cart",
     "description": "Retrieve live cart state by cart_id: full item list, calculated totals in ZAR, and any customer details stored so far. Call after update_cart to confirm…"
    },
    {
     "name": "update_cart",
     "description": "Modify an open cart before checkout. op: 'add' appends items, 'remove' drops items by 0-based index, 'set' replaces the full item list, 'clear' empties the…"
    },
    {
     "name": "cancel_cart",
     "description": "Permanently delete a cart by cart_id. Use when the customer abandons the session or wants to start over. Has no effect on any checkout or paid order already…"
    },
    {
     "name": "create_checkout",
     "description": "Phase 1 of 2 in the purchase flow. Convert a cart (or inline items + customer) into a checkout. Customer name, email, and phone are required. Returns…"
    },
    {
     "name": "get_checkout",
     "description": "Read checkout by checkout_id. Returns persisted order status, payment_status, payment_method, items, customer, total_zar and currency. Initial order status is…"
    },
    {
     "name": "update_checkout",
     "description": "Update customer details or payment_method only before payment-link generation. Paid, cancelled and payment-in-progress checkouts are rejected. Concurrent…"
    },
    {
     "name": "complete_checkout",
     "description": "Generate a Yoco card or Ozow instant-EFT payment link; this does NOT complete payment. Rejects cancelled checkouts and rechecks stock and totals first. An…"
    },
    {
     "name": "cancel_checkout",
     "description": "Abort an unpaid checkout and release its checkout_id. Use if the customer changes their mind after create_checkout but before completing payment. Has no…"
    },
    {
     "name": "get_order",
     "description": "Retrieve a confirmed order's status, items, and payment details by order_id. customer_email is required as soft-auth and must exactly match the order record…"
    },
    {
     "name": "check_colour_stock",
     "description": "Verify whether a specific colour is available before configure_product. Returns in_stock boolean, expected_restock_date if out of stock, and up to 5…"
    },
    {
     "name": "request_swatch",
     "description": "Log up to 5 colour codes against an EXISTING order for the team (order_ref required; without it the tool returns status order_required and logs nothing)…"
    },
    {
     "name": "get_payment_methods",
     "description": "List available payment processors and their capabilities. Returns Yoco (card, immediate) and Ozow (instant EFT via South African bank account). Call when the…"
    },
    {
     "name": "get_whatsapp_handoff",
     "description": "Generate a pre-filled WhatsApp deep link to hand the customer off to the right contact. Garden Route locations (Knysna, Plett, George, Sedgefield, etc.) route…"
    },
    {
     "name": "get_product_recommendation",
     "description": "Translate a customer's primary concern into a product recommendation. primary_concern must be one of: blockout, heat, glare, moisture, privacy, security…"
    },
    {
     "name": "get_ar_visualizer_url",
     "description": "Returns the link to the Custom Blinds Visualiser (See it before you buy it), pre-selected to the product when it is supported. The customer adds a photo of…"
    },
    {
     "name": "get_delivery_estimate",
     "description": "Explain the lead time for a new order. Production takes 5 to 7 working days once payment clears, outside peak seasons, then courier transit of about 2 to 5…"
    }
   ]
  },
  "reach": {
   "type": "mcp",
   "door": "https://shop.customblinds.co.za/mcp",
   "answers": true,
   "checked": "2026-11-02T06:05:11.312Z",
   "http": 200,
   "how": "MCP server — connect an MCP client to this address.",
   "badges": [
    {
     "kind": "mcp",
     "state": "verified",
     "checked": "2026-11-02T06:49:01.599Z",
     "since": "2026-11-02T06:49:01.599Z"
    }
   ],
   "verified": {
    "kind": "mcp",
    "state": "verified",
    "checked": "2026-11-02T06:49:01.599Z",
    "since": "2026-11-02T06:49:01.599Z"
   }
  },
  "liveness": {
   "answers": true,
   "http": 200,
   "checked": "2026-11-02T06:05:11.312Z",
   "last_answer_at": "2026-11-02T06:05:11.312Z",
   "last_ms": 665,
   "checked_at": "2026-11-02T06:05:11.312Z"
  }
 }
}