{"ok":true,"site":{"host":"kshitijijari09.github.io","url":"https://kshitijijari09.github.io/webmcp-schemas/","type":"live","desc":"webmcp-schemas storefront demo","tools":[{"name":"search_products","kind":"answer","impl":"imperative","description":"Search the store's product catalog by free-text query, with optional price and category filters. Use this first when you don't yet know a specific product's ID or exact name. Use check_stock instead once you already have a productId and only need to know availability. Use apply_filters instead of repeating this call if you just need to narrow the current results without changing the search term.","inputSchema":{"type":"object","properties":{"query":{"type":"string","minLength":1},"category":{"type":"string"},"minPrice":{"type":"number","minimum":0},"maxPrice":{"type":"number","minimum":0},"sortBy":{"type":"string","enum":["relevance","price_asc","price_desc","rating"]}},"required":["query"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/webmcp-schemas/"},{"name":"apply_filters","kind":"act","impl":"imperative","description":"Narrow the current product listing using structured filters (category, brand, price range, minimum rating, in-stock only) without changing the search term. Use this after search_products when refining an existing result set with facets; use search_products directly instead if the user wants a different search term, not just narrower results.","inputSchema":{"type":"object","properties":{"category":{"type":"string"},"brand":{"type":"string"},"minPrice":{"type":"number","minimum":0},"maxPrice":{"type":"number","minimum":0},"minRating":{"type":"number","minimum":0,"maximum":5},"inStockOnly":{"type":"boolean"}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/webmcp-schemas/"},{"name":"check_stock","kind":"answer","impl":"imperative","description":"Check real-time availability for one specific, already-identified product by its productId, optionally at a given quantity or delivery postal code. Use this only when you already know which product you want; use search_products or apply_filters first if you don't yet have a productId. Unlike search_products, this never returns other products.","inputSchema":{"type":"object","properties":{"productId":{"type":"string","minLength":1},"quantity":{"type":"integer","minimum":1},"postalCode":{"type":"string"}},"required":["productId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/webmcp-schemas/"},{"name":"add_to_cart","kind":"act","impl":"imperative","description":"Add a specific, already-identified product to the shopping cart by productId and quantity. This changes the cart, so it requires user confirmation before it runs. Use check_stock first if availability at the requested quantity is uncertain; use apply_promo_code afterward to apply a discount to the resulting cart.","inputSchema":{"type":"object","properties":{"productId":{"type":"string","minLength":1},"quantity":{"type":"integer","minimum":1}},"required":["productId","quantity"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/webmcp-schemas/"},{"name":"apply_promo_code","kind":"act","impl":"imperative","description":"Apply a promotional or discount code to an existing cart, identified by cartId. This changes the cart's total, so it requires user confirmation before it runs. Distinct from add_to_cart (which adds items) and start_return (which returns already-ordered items); this only ever discounts an existing cart.","inputSchema":{"type":"object","properties":{"cartId":{"type":"string","minLength":1},"code":{"type":"string","minLength":1}},"required":["cartId","code"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/webmcp-schemas/"},{"name":"get_order_status","kind":"answer","impl":"imperative","description":"Look up the current status of a previously placed order by orderId — read-only, does not modify the order. Use start_return instead if the user wants to return items from a delivered order rather than just check where it is.","inputSchema":{"type":"object","properties":{"orderId":{"type":"string","minLength":1}},"required":["orderId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/webmcp-schemas/"},{"name":"start_return","kind":"act","impl":"imperative","description":"Begin a return for one or more items from a previously placed order. This starts a real-world return process, so it requires user confirmation before it runs. Use get_order_status first to confirm the order and which items it contains before starting a return.","inputSchema":{"type":"object","properties":{"orderId":{"type":"string","minLength":1},"items":{"type":"array","minItems":1,"items":{"type":"object","properties":{"productId":{"type":"string","minLength":1},"quantity":{"type":"integer","minimum":1}},"required":["productId","quantity"],"additionalProperties":false}},"reason":{"type":"string","enum":["defective","wrong_item","no_longer_needed","better_price_found","other"]}},"required":["orderId","items","reason"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/webmcp-schemas/"}],"category":"Commerce","apiSurface":"spec","toolCount":7}}