{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_dtp9j6ujv2nw","handle":"custom-blinds-shop","url":"https://wellknown.network/agents/custom-blinds-shop","links":{"self":"https://wellknown.network/agents/custom-blinds-shop/record.json","html":"https://wellknown.network/agents/custom-blinds-shop","markdown":"https://wellknown.network/agents/custom-blinds-shop/record.md","api":"https://wellknown.network/api/v1/agents/custom-blinds-shop","status":"https://wellknown.network/api/v1/agents/custom-blinds-shop/status","claim":"https://wellknown.network/agents/custom-blinds-shop/claim","claimApi":"https://wellknown.network/api/v1/claims","badge":"https://wellknown.network/agents/custom-blinds-shop/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air:shop.customblinds.co.za:server:custom-blinds-shop","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Custom Blinds Shop","summary":"South Africa's first AI-transactable blinds, shutters and awnings catalogue with live ZAR pricing.","description":"South Africa's first AI-transactable blinds, shutters and awnings catalogue with live ZAR pricing.","publisher":{"name":"CustomBlinds","url":null},"homepage":null,"repository":"https://github.com/CustomBlinds/cb-shop-mcp","version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://shop.customblinds.co.za/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-05-28T08:19:05.012728Z","publishedAt":"2026-05-28T08:19:05.012728Z","registryName":"io.github.CustomBlinds/cb-shop"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"commerce.payments","name":"Payments","confidence":1,"provenance":"derived"},{"slug":"commerce.ecommerce","name":"E-commerce Operations","confidence":1,"provenance":"derived"},{"slug":"communication.sms-voice","name":"SMS & Voice","confidence":1,"provenance":"derived"},{"slug":"commerce.pricing","name":"Pricing & Quotes","confidence":0.926,"provenance":"derived"},{"slug":"security.secrets","name":"Secrets Management","confidence":0.569,"provenance":"derived"},{"slug":"content.translation","name":"Translation","confidence":0.54,"provenance":"derived"},{"slug":"documents.conversion","name":"Document Conversion","confidence":0.51,"provenance":"derived"}],"categories":["commerce","communication","content","documents","security"]},"observed":{"status":"live","statusReason":"Responded 3h ago.","lastOkAt":"2026-09-06T04:25:34.604Z","lastProbedAt":"2026-09-06T04:25:34.604Z","statusComputedAt":"2026-09-06T04:26:05.201Z","reliability30d":{"probes":1,"successRate":1,"p50Ms":120},"latestObservations":[{"at":"2026-09-06T04:25:34.604Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":120,"error":null,"detail":{"tools":[{"name":"search_products","description":"Use when the customer hasn't specified a product ID yet. Filters by blind type (roller, venetian, honeycomb, vertical, outdoor), colour name, or maximum window "},{"name":"get_price","description":"Get an exact ZAR price for a product at specific dimensions. Requires product_id (from search_products or lookup_catalog), width_mm, and height_mm. Returns unit"},{"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 in "},{"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 wh"},{"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 yo"},{"name":"search_catalog","description":"Free-text search across the full catalogue — use for open queries like 'blockout for bedroom' or 'wood venetian'. Returns id, name, category, description, and p"},{"name":"lookup_catalog","description":"Structured catalogue filter: narrow by category (roller | venetian | honeycomb | vertical | outdoor), colour name, max_width_mm, or max_height_mm. Ideal when th"},{"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, featu"},{"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 a"},{"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 changes"},{"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 cart"},{"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 cre"},{"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 checkout_i"},{"name":"get_checkout","description":"Poll a checkout by checkout_id. Returns status (pending | paid | cancelled), full item list, customer details, and payment_url if already minted. Use to verify "},{"name":"update_checkout","description":"Correct customer details (name, email, phone, address) or switch payment_method (yoco | ozow) on an unpaid checkout before calling complete_checkout. Returns th"},{"name":"complete_checkout","description":"Phase 2 of 2. Finalise a checkout and mint the payment link — Yoco for card payments or Ozow for instant EFT. Returns payment_url to share with the customer. Pa"},{"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 effect "},{"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 — p"},{"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 alternative"},{"name":"request_swatch","description":"Register up to 5 colour swatches to be dispatched with the customer's order. Swatches ship at order placement only — they are NOT sent as a standalone postal sa"},{"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 cu"},{"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 t"},{"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, automa"},{"name":"get_ar_visualizer_url","description":"Surface the AR measurement tool or product visualizer when a customer wants to measure their window or preview a blind in their room. The AR tool uses a phone c"},{"name":"get_delivery_estimate","description":"Explain the production lead time for a new order. Production takes 5–7 working days, excluding transit times and outside peak seasons. Returns dispatch_date, pr"},{"name":"request_price_match","description":"Submit a price match claim when the customer has found the same blind cheaper elsewhere. Custom Blinds matches verified South African retailer prices for identi"}],"toolCount":26,"serverName":"custom-blinds-shop","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2024-11-05"}}],"tools":[{"name":"search_products","description":"Use when the customer hasn't specified a product ID yet. Filters by blind type (roller, venetian, honeycomb, vertical, outdoor), colour name, or maximum window "},{"name":"get_price","description":"Get an exact ZAR price for a product at specific dimensions. Requires product_id (from search_products or lookup_catalog), width_mm, and height_mm. Returns unit"},{"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 in "},{"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 wh"},{"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 yo"},{"name":"search_catalog","description":"Free-text search across the full catalogue — use for open queries like 'blockout for bedroom' or 'wood venetian'. Returns id, name, category, description, and p"},{"name":"lookup_catalog","description":"Structured catalogue filter: narrow by category (roller | venetian | honeycomb | vertical | outdoor), colour name, max_width_mm, or max_height_mm. Ideal when th"},{"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, featu"},{"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 a"},{"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 changes"},{"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 cart"},{"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 cre"},{"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 checkout_i"},{"name":"get_checkout","description":"Poll a checkout by checkout_id. Returns status (pending | paid | cancelled), full item list, customer details, and payment_url if already minted. Use to verify "},{"name":"update_checkout","description":"Correct customer details (name, email, phone, address) or switch payment_method (yoco | ozow) on an unpaid checkout before calling complete_checkout. Returns th"},{"name":"complete_checkout","description":"Phase 2 of 2. Finalise a checkout and mint the payment link — Yoco for card payments or Ozow for instant EFT. Returns payment_url to share with the customer. Pa"},{"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 effect "},{"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 — p"},{"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 alternative"},{"name":"request_swatch","description":"Register up to 5 colour swatches to be dispatched with the customer's order. Swatches ship at order placement only — they are NOT sent as a standalone postal sa"},{"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 cu"},{"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 t"},{"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, automa"},{"name":"get_ar_visualizer_url","description":"Surface the AR measurement tool or product visualizer when a customer wants to measure their window or preview a blind in their room. The AR tool uses a phone c"},{"name":"get_delivery_estimate","description":"Explain the production lead time for a new order. Production takes 5–7 working days, excluding transit times and outside peak seasons. Returns dispatch_date, pr"},{"name":"request_price_match","description":"Submit a price match claim when the customer has found the same blind cheaper elsewhere. Custom Blinds matches verified South African retailer prices for identi"}],"package":null},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.CustomBlinds/cb-shop","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.CustomBlinds%2Fcb-shop","firstSeenAt":"2026-09-06T02:21:27.002Z","fetchedAt":"2026-09-06T02:21:27.002Z","normalizedAt":"2026-09-06T02:21:27.002Z"}]},"firstSeenAt":"2026-09-06T02:21:27.002Z","updatedAt":"2026-09-06T04:26:13.914Z"}