← WebMCP Directory

Tool tree

webmcp-shop-demo.vercel.app

CommerceTools verified
Website
A WebMCP-native product discovery site: every capability is a document.modelContext tool; the floating input is just one client of them.
Explore capabilities
    askAction

    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.

    View tool JSON
    {
      "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.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "What the user typed or said"
          }
        },
        "required": [
          "text"
        ]
      }
    }
    search_productsAnswer

    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.

    View tool JSON
    {
      "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.",
      "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"
        ]
      }
    }
    open_landing_pageAction

    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.

    View tool JSON
    {
      "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.",
      "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"
        ]
      }
    }
    gamification_landingpageAction

    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.

    View tool JSON
    {
      "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.",
      "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"
        ]
      }
    }
    show_homeAction

    Go back to the home feed (mixed product / editorial stream).

    View tool JSON
    {
      "name": "show_home",
      "kind": "act",
      "impl": "imperative",
      "description": "Go back to the home feed (mixed product / editorial stream).",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
    load_moreAction

    Load the next page of the current search results.

    View tool JSON
    {
      "name": "load_more",
      "kind": "act",
      "impl": "imperative",
      "description": "Load the next page of the current search results.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
    scroll_pageAction

    Scroll the page: down, up, top or bottom. amount is a fraction of the viewport (default 0.8).

    View tool JSON
    {
      "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).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "direction": {
            "type": "string",
            "enum": [
              "down",
              "up",
              "top",
              "bottom"
            ]
          },
          "amount": {
            "type": "number",
            "description": "Viewport fraction, default 0.8"
          }
        },
        "required": [
          "direction"
        ]
      }
    }
    focus_productAction

    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.

    View tool JSON
    {
      "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.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "target": {
            "description": "\"next\" | \"prev\" | \"first\" | \"last\" | number | title fragment"
          }
        },
        "required": [
          "target"
        ]
      }
    }
    open_productAction

    Open the merchant product detail page ("Learn more") for the focused card or a given target, in a new tab.

    View tool JSON
    {
      "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.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "target": {
            "description": "Optional: same forms as focus_product; defaults to focused card"
          }
        }
      }
    }
    buy_nowAction

    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.

    View tool JSON
    {
      "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.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "target": {
            "description": "Optional: same forms as focus_product; defaults to focused card"
          }
        }
      }
    }
    show_brandsAction

    Open the brands page: every independent brand in the catalog with product counts; pick one to see its products.

    View tool JSON
    {
      "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.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
    refine_resultsAction

    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.

    View tool JSON
    {
      "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.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "direction": {
            "type": "string",
            "enum": [
              "cheaper",
              "pricier"
            ]
          }
        },
        "required": [
          "direction"
        ]
      }
    }
    browse_allAction

    Open the endless browse page over the whole catalog (optionally filtered by brand).

    View tool JSON
    {
      "name": "browse_all",
      "kind": "act",
      "impl": "imperative",
      "description": "Open the endless browse page over the whole catalog (optionally filtered by brand).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "vendor": {
            "type": "string",
            "description": "Optional brand filter"
          }
        }
      }
    }
    describe_focusedAnswer

    Return a one-sentence description (title, brand, price, type) of the focused product card.

    View tool JSON
    {
      "name": "describe_focused",
      "kind": "answer",
      "impl": "imperative",
      "description": "Return a one-sentence description (title, brand, price, type) of the focused product card.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
    close_panelAction

    Close the product sheet (or any open panel) and return to the list.

    View tool JSON
    {
      "name": "close_panel",
      "kind": "act",
      "impl": "imperative",
      "description": "Close the product sheet (or any open panel) and return to the list.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
    helpAction

    Show the input grammar and the list of registered WebMCP tools.

    View tool JSON
    {
      "name": "help",
      "kind": "act",
      "impl": "imperative",
      "description": "Show the input grammar and the list of registered WebMCP tools.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }