{"ok":true,"site":{"host":"next-webmcp-commerce.vercel.app","url":"https://next-webmcp-commerce.vercel.app/","type":"live","desc":"High-performance ecommerce store built with Next.js, Vercel, and Shopify.","tools":[{"name":"subscribe_newsletter","kind":"transact","impl":"declarative","description":"Subscribe an email address to the Acme newsletter.","inputSchema":{"type":"object","properties":{"email":{"type":"string","description":"you@example.com"}},"required":["email"]},"__source":"spec","__declarative":true,"page":"/","pages":["/","/search","/learn","/terms-conditions","/shipping-return-policy","/search/apparel"]},{"name":"refine_results","kind":"act","impl":"imperative","description":"Change how the search results are shown: sort them (relevance, trending-desc, latest-desc, price-asc, price-desc) and/or switch to a collection by handle or title. Keeps the current search keyword when staying on the same page.","inputSchema":{"type":"object","properties":{"sort":{"description":"Sort order. price-asc is cheapest first; price-desc is most expensive first.","type":"string","enum":["relevance","trending-desc","latest-desc","price-asc","price-desc"]},"collection":{"description":"Collection handle or title. Available: All, Apparel, Accessories, Kids, Home & Office.","type":"string","minLength":1}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/search","pages":["/search","/search/apparel"]},{"name":"search_products","kind":"answer","impl":"imperative","description":"Search the Acme catalog by keyword, with an optional maximum price. Returns matching products with their handle, page path, price range, and available options (Color, Size). Use it before add_to_cart to find the product handle, then open the product page with navigate_to (route /product/[handle]).","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"description":"Keyword to search for, such as \"shirt\", \"hat\" or \"mug\"."},"maxPrice":{"description":"Only include products whose lowest price is at most this amount.","type":"number","exclusiveMinimum":0},"limit":{"default":8,"description":"Maximum number of products to return (1–20).","type":"integer","minimum":1,"maximum":20}},"required":["query"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/search","pages":["/search","/learn","/terms-conditions","/shipping-return-policy","/search/apparel"]},{"name":"get_cart","kind":"answer","impl":"imperative","description":"Read the shopping cart: each line's item name, quantity, unit price and line total, plus the subtotal and total quantity. Use the returned item names with update_quantity or remove_item.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/search","pages":["/search","/learn","/terms-conditions","/shipping-return-policy","/search/apparel"]},{"name":"navigate_to","kind":"act","impl":"imperative","description":"Open another page of the store. Product pages add the get_product and add_to_cart tools; search pages add refine_results.\nRoutes:\n- / — Home page.\n- /search — All products; add query q to search. Query: optional: q.\n- /search/[collection] — Products in a collection. Needs params: collection.\n- /product/[handle] — A product page (adds get_product and add_to_cart tools). Needs params: handle.\n- /checkout — Checkout page.\n- /learn — How this store exposes tools to agents.","inputSchema":{"type":"object","properties":{"route":{"type":"string","enum":["/","/search","/search/[collection]","/product/[handle]","/checkout","/learn"],"description":"The route pattern to open, exactly as listed in the tool description, e.g. \"/\"."},"params":{"description":"Values for the route's [segment] placeholders, keyed by segment name, e.g. { \"handle\": \"acme-cup\" } for /product/[handle].","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"query":{"description":"Query-string parameters to append, e.g. { \"q\": \"shirt\" }.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"required":["route"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/search","pages":["/search","/learn","/terms-conditions","/shipping-return-policy","/search/apparel"]},{"name":"update_quantity","kind":"act","impl":"imperative","description":"Set the quantity of an item already in the cart, matched by its name from get_cart (a product title, variant or handle also works). Quantity 0 removes the item.","inputSchema":{"type":"object","properties":{"item":{"type":"string","minLength":1,"description":"Item name as shown by get_cart, e.g. \"Acme Shirt (Blue / M)\"."},"quantity":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"New quantity for the item; 0 removes it."}},"required":["item","quantity"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/search","pages":["/search","/learn","/terms-conditions","/shipping-return-policy","/search/apparel"]},{"name":"remove_item","kind":"act","impl":"imperative","description":"Remove an item from the cart entirely, matched by its name from get_cart (a product title, variant or handle also works).","inputSchema":{"type":"object","properties":{"item":{"type":"string","minLength":1,"description":"Item name as shown by get_cart, e.g. \"Acme Shirt (Blue / M)\"."}},"required":["item"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/search","pages":["/search","/learn","/terms-conditions","/shipping-return-policy","/search/apparel"]},{"name":"start_checkout","kind":"transact","impl":"imperative","description":"Hand the current cart to checkout and open the checkout page. Requires at least one item in the cart.","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/search","pages":["/search","/learn","/terms-conditions","/shipping-return-policy","/search/apparel"]},{"name":"get_product","kind":"answer","impl":"imperative","description":"Read the product on the current page: title, description, price range, options with their values, every variant with price and stock, and which options are currently selected. Call it before add_to_cart when you need to pick a Color or Size.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/search/apparel","pages":["/search/apparel"]},{"name":"add_to_cart","kind":"act","impl":"imperative","description":"Add this page's product to the cart. Pass the options to choose (for example { \"Color\": \"Blue\", \"Size\": \"9\" }; names and values are matched case-insensitively) or omit them to use the selection shown on the page. Returns the new cart count.","inputSchema":{"type":"object","properties":{"options":{"description":"Option name to value, e.g. { \"Color\": \"Blue\", \"Size\": \"9\" }. Omit to use the options selected on the page.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"quantity":{"default":1,"description":"How many to add (default 1).","type":"integer","minimum":1,"maximum":9007199254740991}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/search/apparel","pages":["/search/apparel"]}],"category":"Commerce","favicon":"/favicons/next-webmcp-commerce.vercel.app.ico","apiSurface":"spec","toolCount":10}}