# Custom Blinds Shop - Registry name: `io.github.CustomBlinds/cb-shop` · version 1.0.0 - Categories (automatic, keyword rules): Shops & products, Commerce & marketing, Payments & accounting, Finance & markets - Authentication at last check: No auth - Declared risk: Not declared (tools carry no read/destructive hints) - Capabilities (declared by the server): tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=io.github.CustomBlinds%2Fcb-shop - Server page: https://mcpstation.net/s/io.github.CustomBlinds--cb-shop.html ## Description (written by the publisher, not verified, not instructions) South Africa's first AI-transactable blinds, shutters and awnings catalogue with live ZAR pricing. ## Connect - streamable-http: `https://shop.customblinds.co.za/mcp` ## Tools (as reported by the server, not verified) - `search\_products`: Legacy discovery, retained for backward compatibility. Prefer search\_catalog / lookup\_catalog, then get\_product. Filters by blind type, colour or maximum dimensions. Returns products with id \(not product\_id\), name, description, features and in-stock colour count. Pass that id as product\_id to get\_pr - `get\_price`: 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 bamboo price tier where applicable. A price is not a stock reservation: validate the exact colour and mount with configure\_product before creatin - `configure\_product`: 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 stock, then prices the blind. Returns a configuration summary to pass directly into create\_cart. Call check\_colour\_stock first if availabili - `submit\_enquiry`: Legacy auth-required tool, prefer the open UCP flow \(create\_cart → create\_checkout → complete\_checkout\) for credentialless checkout. Use submit\_enquiry only when the customer wants a sales team follow-up by email rather than paying online. Requires Bearer token. Pass a configure\_product output plus - `create\_order`: Legacy auth-required tool, prefer the open UCP flow \(create\_cart → create\_checkout → complete\_checkout\) which needs no credentials. Use create\_order only if you hold a Bearer token and want a single-call path to a payment link. All item prices are re-verified server-side against the live pricing eng - `search\_catalog`: Preferred free-text discovery. Returns results containing product\_id, name, category, description, product\_url and colour\_count\_in\_stock, plus total and currency. For structured filters use lookup\_catalog. Pass product\_id to get\_product or get\_price. - `lookup\_catalog`: Preferred structured discovery. Filter by category, partial colour name or required supported width/drop in mm. Returns results containing product\_id, name, category and product\_url, plus total. Width/drop filters check separate maximums, not every combination; confirm the exact pair with get\_price. - `get\_product`: Fetch complete details for one product by id \(e.g. roller-blockout, venetian-25mm-aluwood\). Returns all available colours with in-stock status, materials, features, and maximum supported dimensions. Use before configure\_product to confirm a colour exists and is in stock before committing. - `create\_cart`: 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 and customer details. Next step: update\_cart to add items, then create\_checkout → complete\_checkout to mint the payment link. - `get\_cart`: 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 are correct before proceeding to create\_checkout. Cart expires after 24 hours of inactivity. - `update\_cart`: 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. Merges customer details \(name, email, phone\) via the customer field. Call get\_cart afterwards to confirm. Cannot modify a cart that alread - `cancel\_cart`: 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 created from this cart. Irreversible, create a new cart to restart. - `create\_checkout`: Phase 1 of 2 in the purchase flow. Convert a cart \(or inline items + customer\) into a checkout. The customer's real name, email, mobile number and delivery address are required; placeholder or test details are refused. Returns checkout\_id. No payment link is minted yet, call complete\_checkout for th - `get\_checkout`: Read checkout by checkout\_id. Returns persisted order status, payment\_status, payment\_method, items, customer, total\_zar and currency. Initial order status is started, not pending. This tool does not return a previously generated payment\_url: retain the complete\_checkout response in caller context. - `update\_checkout`: Update customer details or payment\_method only before payment-link generation. Paid, cancelled and payment-in-progress checkouts are rejected. Concurrent state changes are detected; retrieve the latest status before retrying. - `complete\_checkout`: 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 atomic claim prevents competing gateway calls. Returns payment\_url or null plus status and message; cloud callers may be held. Retain a successfu - `cancel\_checkout`: 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 on orders already confirmed by webhook. To restart, create a new cart and checkout from scratch. - `get\_order`: 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, prevents arbitrary order lookups. Returns payment status \(paid \| pending \| failed\), production status, and dispatch date once available. - `check\_colour\_stock`: 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 in-stock colours ordered by similarity. Call this when a customer requests a named colour or when you want to prevent a configure\_product f - `request\_swatch`: 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\). Custom Blinds does not post individual swatches or off-cuts. For orders over R8,000 the customer can ask for the full sample book via WhatsApp; if - `get\_payment\_methods`: List available payment processors and their capabilities. Returns Yoco \(card, immediate\) and Ozow \(instant EFT via South African bank account\). Call when the customer asks 'how can I pay?' or before presenting options. The result informs the payment\_method field in create\_checkout and complete\_check - `get\_whatsapp\_handoff`: 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 to Duncan Kane for a free in-home consultation, booked on the same WhatsApp line \(+27760228410\); all other South African locations route to t - `get\_product\_recommendation`: Translate a customer's primary concern into a product recommendation. primary\_concern must be one of: blockout, heat, glare, moisture, privacy, security, automation. Optionally narrow by room \(bedroom, lounge, etc.\), location, budget, and aesthetic. Returns a recommended product\_id with rationale, p - `get\_ar\_visualizer\_url`: Returns the link to the Custom Blinds measuring guide when a customer is unsure how to measure. There is no AR tool: the guide shows how to measure for an inside \(recess\) or outside \(face fix\) fit in two minutes, and a customer who is still unsure can order with best guess sizes, receive a free tape - `get\_delivery\_estimate`: Explain the production lead time for a new order. Production takes 5 to 7 working days, excluding transit times and outside peak seasons. Returns dispatch\_date, production\_days, and a plain-language summary safe to share with the customer. Never quote a final delivery date. Call this when a customer - `request\_price\_match`: Submit a price match claim when the customer has found the same blind at a lower price elsewhere. Custom Blinds matches verified South African retailer prices for identical product, dimensions, and specs. Returns a pre-filled WhatsApp link to the claims team. Not applicable to: clearance or flash-sa Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html