{"ok":true,"site":{"host":"shop-mate-black.vercel.app","url":"https://shop-mate-black.vercel.app/","type":"live","desc":"ShopMate is an agent-native shopping site. Browse a 58-product catalog yourself, or let a WebMCP agent search, compare, and build a budget-aware cart for you.","tools":[{"name":"search_products","kind":"act","impl":"imperative","description":"Search the ShopMate product catalog by text query and optional category. Returns matching products with id, name, price, rating, availability and tags. The catalog page visibly updates to show the same results.","title":"Search products","annotations":{"title":"Search products","readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Free-text search across name, tags and description."},"category":{"type":"string","description":"Optional category: Electronics | Stationery | Home | Accessories | Travel | Fitness | School"},"limit":{"type":"number","description":"Optional maximum number of results (default 20)."}},"required":["query"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/products","/cart","/webmcp","/relations"]},{"name":"filter_products","kind":"act","impl":"imperative","description":"Filter products by maximum price, minimum rating, category, and availability. Applies the same filters to the visible catalog page so the human sees exactly what the agent sees.","title":"Filter products","annotations":{"title":"Filter products","readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"maxPrice":{"type":"number","description":"Maximum unit price in USD."},"minRating":{"type":"number","description":"Minimum star rating, 0-5."},"category":{"type":"string","description":"Optional category: Electronics | Stationery | Home | Accessories | Travel | Fitness | School"},"availableOnly":{"type":"boolean","description":"Exclude out-of-stock products."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/products","/cart","/webmcp","/relations"]},{"name":"compare_products","kind":"act","impl":"imperative","description":"Compare selected products by price, rating, category, tags, and value-for-money (rating per dollar). Highlights the cheapest, highest rated, and best value option and fills the comparison tray in the UI.","title":"Compare products","annotations":{"title":"Compare products","readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"productIds":{"type":"array","items":{"type":"string"},"minItems":2,"description":"Product ids to compare, e.g. [\"p-001\", \"p-003\"]."}},"required":["productIds"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/products","/cart","/webmcp","/relations"]},{"name":"add_to_cart","kind":"act","impl":"imperative","description":"Add a product to the ShopMate cart by product id and quantity. Rejects unknown ids and out-of-stock products. The cart page and header counter update immediately.","title":"Add product to cart","annotations":{"title":"Add product to cart","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"productId":{"type":"string","description":"Catalog product id, e.g. \"p-042\"."},"quantity":{"type":"number","description":"Quantity to add, 1-99."}},"required":["productId","quantity"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/products","/cart","/webmcp","/relations"]},{"name":"remove_from_cart","kind":"act","impl":"imperative","description":"Remove a product from the ShopMate cart by product id. Returns whether the item was present and the resulting cart totals.","title":"Remove product from cart","annotations":{"title":"Remove product from cart","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"productId":{"type":"string","description":"Catalog product id to remove."}},"required":["productId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/products","/cart","/webmcp","/relations"]},{"name":"update_quantity","kind":"act","impl":"imperative","description":"Change the quantity of a product in the ShopMate cart. Setting a quantity of 0 removes the line entirely.","title":"Update cart quantity","annotations":{"title":"Update cart quantity","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"productId":{"type":"string","description":"Catalog product id."},"quantity":{"type":"number","description":"New quantity, 0-99. 0 removes the item."}},"required":["productId","quantity"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/products","/cart","/webmcp","/relations"]},{"name":"get_cart","kind":"answer","impl":"imperative","description":"Return the current cart contents, line totals, item count, currency, budget, remaining budget, and budget status (under, near, over, or no_budget).","title":"Get cart","annotations":{"title":"Get cart","readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/products","/cart","/webmcp","/relations"]},{"name":"optimize_cart","kind":"act","impl":"imperative","description":"Optimize the cart against a target budget while preserving useful quality and category coverage. Swaps expensive lines for cheaper same-category alternatives, reduces quantities, then drops the worst value items only as a last resort. Applies the changes to the live cart.","title":"Optimize cart for budget","annotations":{"title":"Optimize cart for budget","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"budget":{"type":"number","description":"Target cart budget in USD."}},"required":["budget"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/products","/cart","/webmcp","/relations"]}],"category":"Commerce","favicon":"/favicons/shop-mate-black.vercel.app.png","apiSurface":"spec","toolCount":8}}