{"ok":true,"site":{"host":"webmcp-shop-demo.vercel.app","url":"https://webmcp-shop-demo.vercel.app/","type":"live","desc":"A WebMCP-native product discovery site: every capability is a document.modelContext tool; the floating input is just one client of them.","tools":[{"name":"ask","kind":"act","impl":"imperative","description":"Natural-language entry point. Accepts a shopping request (\"running shoes under $100\"), a dynamic-landing-page command (\"#dlp gifts for a new dog owner | leashes; treats --max 60\") or a slash command (/home /more /next /open 2 /buy 2 /up /down). Routes to the matching tool.","title":"Ask the catalog","annotations":{"readOnlyHint":true,"handsfree":{"role":"text-sink"}},"inputSchema":{"type":"object","properties":{"text":{"type":"string","description":"What the user typed or said"}},"required":["text"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"search_products","kind":"answer","impl":"imperative","description":"Search the cross-merchant product catalog (Nohi global catalog, MCP tool search_global_catalog) with a natural-language shopping query. English queries work best. Renders a results grid.","title":"Search products","annotations":{"readOnlyHint":true,"handsfree":{"phrases":["search for","search","find me","find","show me","look for","looking for","i'm looking for","i am looking for","i want","i need","get me","do you have","any","shop for","cheapest","most expensive","lowest price"]}},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Descriptive shopping query"},"max_price":{"type":"number","description":"Upper price bound, USD"},"min_price":{"type":"number","description":"Lower price bound, USD"},"vendor":{"type":"string","description":"Brand / vendor filter"},"product_type":{"type":"string"},"sort":{"type":"string","enum":["relevance","price_asc","price_desc"],"description":"relevance (default), price_asc (cheapest first), price_desc"}},"required":["query"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"open_landing_page","kind":"act","impl":"imperative","description":"Open a custom landing page for a shopping intent — the page a paid shopping click should land on instead of the generic catalog: a hero for the intent plus auto-built sections (editor's picks, under $X, worth the splurge, explicit sub-themes) assembled from the catalog in milliseconds. format \"listicle\" renders a ranked top-5 with a reason per pick (advertorial style). Links carry utm_medium=nile_paid.","title":"Open a dynamic landing page","annotations":{"readOnlyHint":true,"handsfree":{"phrases":["landing page for","landing page about","landing page on","make a page for","make me a page for","make me a page about","build a page for","build me a page for","create a landing page for","create a page for","open a page for","page for","page about","curate","put together a page for","show me a page for","top 5","top five","best 5"]}},"inputSchema":{"type":"object","properties":{"intent":{"type":"string","description":"The intent / theme, e.g. \"gifts for a new dog owner\""},"sections":{"type":"array","items":{"type":"string"},"description":"Optional explicit section themes, each becomes a sub-search"},"max_price":{"type":"number","description":"Upper price bound, USD"},"min_price":{"type":"number","description":"Lower price bound, USD"},"format":{"type":"string","enum":["collection","listicle"],"description":"collection (default) or listicle (ranked top 5 with reasons)"}},"required":["intent"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"gamification_landingpage","kind":"act","impl":"imperative","description":"Open a gamified landing page for a shopping intent — the \"custom LP for paid shopping traffic\" format: a scratch card reveals a reward (demo code), followed by curated picks to claim it on. Links carry utm_medium=nile_paid, utm_campaign=scratch_to_win.","title":"Scratch-to-win landing page","annotations":{"readOnlyHint":true,"handsfree":{"phrases":["try my luck with","try my luck on","scratch card for","scratch to win","game for","play for","surprise me with","gamified page for"]}},"inputSchema":{"type":"object","properties":{"intent":{"type":"string","description":"What the visitor came for, e.g. \"cozy fall home\""},"prize":{"type":"string","description":"Optional reward text, e.g. \"15% off\"; random if omitted"},"max_price":{"type":"number","description":"Upper price bound for the picks, USD"}},"required":["intent"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"show_home","kind":"act","impl":"imperative","description":"Go back to the home feed (mixed product / editorial stream).","title":"Home feed","annotations":{"readOnlyHint":true,"handsfree":{"phrases":["go home","home page","go back home","start over"]}},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"load_more","kind":"act","impl":"imperative","description":"Load the next page of the current search results.","title":"Load more results","annotations":{"readOnlyHint":true,"handsfree":{"phrases":["load more","more results","show more","next page","keep going"]}},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"scroll_page","kind":"act","impl":"imperative","description":"Scroll the page: down, up, top or bottom. amount is a fraction of the viewport (default 0.8).","title":"Scroll the page","annotations":{"readOnlyHint":true,"handsfree":{"role":"scroll","phrases":["scroll down","scroll up","go down","go up","top of page","bottom of page"]}},"inputSchema":{"type":"object","properties":{"direction":{"type":"string","enum":["down","up","top","bottom"]},"amount":{"type":"number","description":"Viewport fraction, default 0.8"}},"required":["direction"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"focus_product","kind":"act","impl":"imperative","description":"Highlight a product card on screen: \"next\", \"prev\", \"first\", \"last\", a 1-based number, or a title fragment. Subsequent open_product / buy_now default to the focused card.","title":"Focus a product card","annotations":{"readOnlyHint":true,"handsfree":{"phrases":["next one","next product","previous one","previous product","go to number","select number","the first one"]}},"inputSchema":{"type":"object","properties":{"target":{"description":"\"next\" | \"prev\" | \"first\" | \"last\" | number | title fragment"}},"required":["target"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"open_product","kind":"act","impl":"imperative","description":"Open the merchant product detail page (\"Learn more\") for the focused card or a given target, in a new tab.","title":"Open product","annotations":{"readOnlyHint":true,"openWorldHint":true,"handsfree":{"phrases":["open it","open this","learn more","show details","open number"]}},"inputSchema":{"type":"object","properties":{"target":{"description":"Optional: same forms as focus_product; defaults to focused card"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"buy_now","kind":"act","impl":"imperative","description":"Jump to the merchant checkout (\"Buy now\") for the focused card or a given target, in a new tab. Nothing is purchased on this site; the merchant checkout handles payment.","title":"Buy now","annotations":{"readOnlyHint":true,"openWorldHint":true,"handsfree":{"phrases":["buy it","buy this","buy now","checkout","buy number"],"confirm":true}},"inputSchema":{"type":"object","properties":{"target":{"description":"Optional: same forms as focus_product; defaults to focused card"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"show_brands","kind":"act","impl":"imperative","description":"Open the brands page: every independent brand in the catalog with product counts; pick one to see its products.","title":"Brands","annotations":{"readOnlyHint":true,"handsfree":{"phrases":["show brands","brands","all brands","brand list"]}},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"refine_results","kind":"act","impl":"imperative","description":"Re-run the current search or landing page with a tighter price band: \"cheaper\" halves the median price as the new maximum, \"pricier\" uses it as the new minimum.","title":"Cheaper / pricier","annotations":{"readOnlyHint":true,"handsfree":{"phrases":["cheaper","pricier","less expensive","more expensive"]}},"inputSchema":{"type":"object","properties":{"direction":{"type":"string","enum":["cheaper","pricier"]}},"required":["direction"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"browse_all","kind":"act","impl":"imperative","description":"Open the endless browse page over the whole catalog (optionally filtered by brand).","title":"Browse everything","annotations":{"readOnlyHint":true,"handsfree":{"phrases":["browse everything","browse all","browse","show everything","everything","the whole catalog"]}},"inputSchema":{"type":"object","properties":{"vendor":{"type":"string","description":"Optional brand filter"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"describe_focused","kind":"answer","impl":"imperative","description":"Return a one-sentence description (title, brand, price, type) of the focused product card.","title":"Describe this product","annotations":{"readOnlyHint":true,"handsfree":{"phrases":["describe it","what is this","tell me about this","read it"]}},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"close_panel","kind":"act","impl":"imperative","description":"Close the product sheet (or any open panel) and return to the list.","title":"Close panel","annotations":{"readOnlyHint":true,"handsfree":{"role":"dismiss","phrases":["close","close it","dismiss","back to the list"]}},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"help","kind":"act","impl":"imperative","description":"Show the input grammar and the list of registered WebMCP tools.","title":"Help","annotations":{"readOnlyHint":true,"handsfree":{"phrases":["help","what can i say","show commands"]}},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Commerce","favicon":"/favicons/webmcp-shop-demo.vercel.app.svg","apiSurface":"spec","toolCount":16}}