Custom Blinds Shop
https://shop.customblinds.co.za/mcpskills: {'id': 'search_products', '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 dimensions in mm. Returns product_id, name, description, features, and in-stock colour count. Pass the product_id to get_price or configure_product as the next step.", 'tags': [], 'examples': None, 'input_modes': None, 'output_modes': None}, {'id': 'get_price', '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_price_zar and total_price_zar (VAT included). Call configure_product next to lock in colour and mount type before creating a cart.', 'tags': [], 'examples': None, 'input_modes': None, 'output_modes': None}, {'id': 'configure_product', '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 stock, then prices the blind. Returns a configuration summary to pass directly into create_cart. Call check_colour_stock first if availability is uncertain.', 'tags': [], 'examples': None, 'input_modes': None, 'output_modes': None}, {'id': 'submit_enquiry', '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 when the customer wants a sales team follow-up by email rather than paying online. Requires Bearer token. Pass a configure_product output plus customer name, email, and phone. Team responds within 24 hours.', 'tags': [], 'examples': None, 'input_modes': None, 'output_modes': None}, {'id': 'create_order', '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 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 engine — agent-supplied prices are ignored. Returns a Yoco or Ozow payment_url.', 'tags': [], 'examples': None, 'input_modes': None, 'output_modes': None}, {'id': 'search_catalog', '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 product_url. For filtering by category, colour, or dimensions use lookup_catalog instead. Pass the returned id to get_product or get_price.", 'tags': [], 'examples': None, 'input_modes': None, 'output_modes': None}, {'id': 'lookup_catalog', '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 the customer has stated a blind type. Returns matching products with id and product_url. Use search_catalog for open-ended natural language queries.', 'tags': [], 'examples': None, 'input_modes': None, 'output_modes': None}, {'id': 'get_product', '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, features, and maximum supported dimensions. Use before configure_product to confirm a colour exists and is in stock before committing.', 'tags': [], 'examples': None, 'input_modes': None, 'output_modes': None}; uptime_30d 1.0%; p95 103.2ms; conformance: pass
How to connect
https://shop.customblinds.co.za/mcp
curl -X POST https://shop.customblinds.co.za/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}'