← WebMCP Directory

Tool tree

next-webmcp-commerce.vercel.app

CommerceTools verified
Website
High-performance ecommerce store built with Next.js, Vercel, and Shopify.
Explore capabilities

    page: Every page

    subscribe_newsletterSensitive Action

    Subscribe an email address to the Acme newsletter.

    View tool JSON
    {
      "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"
        ]
      },
      "page": "/"
    }

    page: Search

    refine_resultsAction

    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.

    View tool JSON
    {
      "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
          }
        }
      },
      "page": "/search"
    }
    search_productsAnswer

    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]).

    View tool JSON
    {
      "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]).",
      "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"
        ]
      },
      "page": "/search"
    }
    get_cartAnswer

    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.

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

    Open another page of the store. Product pages add the get_product and add_to_cart tools; search pages add refine_results. Routes: - / — Home page. - /search — All products; add query q to search. Query: optional: q. - /search/[collection] — Products in a collection. Needs params: collection. - /product/[handle] — A product page (adds get_product and add_to_cart tools). Needs params: handle. - /checkout — Checkout page. - /learn — How this store exposes tools to agents.

    View tool JSON
    {
      "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"
        ]
      },
      "page": "/search"
    }
    update_quantityAction

    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.

    View tool JSON
    {
      "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"
        ]
      },
      "page": "/search"
    }
    remove_itemAction

    Remove an item from the cart entirely, matched by its name from get_cart (a product title, variant or handle also works).

    View tool JSON
    {
      "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"
        ]
      },
      "page": "/search"
    }
    start_checkoutSensitive Action

    Hand the current cart to checkout and open the checkout page. Requires at least one item in the cart.

    View tool JSON
    {
      "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": {}
      },
      "page": "/search"
    }

    page: Apparel

    get_productAnswer

    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.

    View tool JSON
    {
      "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.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/search/apparel"
    }
    add_to_cartAction

    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.

    View tool JSON
    {
      "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
          }
        }
      },
      "page": "/search/apparel"
    }