← Tool reference

get_product

A WebMCP tool distributed by Shopify. 99,664 of the sites we crawled carry a tool set that includes it (99.7% of vendor-distributed detections). This is a documented platform feature, not a vulnerability. Individual sites did not each choose it one by one.

What the tool declares

The description below is quoted as Shopify publishes it, in the distributed bundle:

Get product details, OR navigate the browser to the product page. Set catalog.navigate=true whenever the user wants to see/view the product in the browser (triggers: "show me", "open", "view", "go to", "take me to", "navigate to" a product). Set catalog.navigate=false (default) only when you need data (description, options, variants, prices, availability) to answer a question or to prepare an add_to_cart call — the browser stays on the current page. Defaults to the current page's product if no catalog.id is provided. Does NOT add anything to the cart; use add_to_cart for that. For a specific variant (color/size/etc.), use show_variant instead — it accepts partial option selections like "purple" without needing every option. With catalog.navigate=true this MOVES the browser to the product page; the tool result then confirms the destination and instructs you not to navigate again — follow it.
VendorShopify
Sites99,664 in 3 tool sets (64,429 + 31,153 + 4,082)
Declared by bundle versions0.1.0, 0.1.1, 1cd8a9f0, f427de6a
Read-only hintreadOnlyHint: false
Other hintsuntrustedContentHint: true

The wording of this description differs between bundle versions; the one above is from the newest version that declares the tool (f427de6a).

The input it asks for

FieldTypeRequiredDescription
catalogobjectnoProduct detail parameters.

The full input schema, as declared:

{
  "type": "object",
  "properties": {
    "catalog": {
      "type": "object",
      "description": "Product detail parameters.",
      "properties": {
        "id": {
          "type": "string",
          "description": "Storefront API Product GID, product handle, or product URL path. Custom app product paths and Shopify standard /products/<handle> paths are supported. The id field from search_catalog or browse_store can be passed directly. If omitted, uses the current page's product."
        },
        "navigate": {
          "type": "boolean",
          "description": "When true, navigate the browser to the product page after fetching details. Set true for user intents like \"show me\", \"open\", \"view\", \"go to\", \"take me to\" a product. Defaults to false. If the user specified partial options (e.g. only a color), prefer show_variant with selected_options instead."
        },
        "selected_options": {
          "type": "array",
          "description": "Known product option selections to filter available_options. Use exact option names and values from search_catalog options or a prior get_product available_options entry.",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Option name, e.g. \"Size\" or \"Color\"."
              },
              "value": {
                "type": "string",
                "description": "Option value, e.g. \"160cm\" or \"Fiberglass\"."
              }
            },
            "required": [
              "name",
              "value"
            ]
          }
        }
      }
    }
  }
}

What we checked

We read the tool set the page declares and we never invoke a tool. We fetched and analysed the distributed bundle that declares this tool, so these copies carry no unverified-implementation signal. What a tool does is inferred from its name and description, and we have not yet published an accuracy measurement for that inference. These are measured indicators, not audits. The crawl is a sample, not a census.

Vendor documentation: https://shopify.dev/docs/api/web-mcp

Other tools in the same sets

Source

Counts: sealed file 2026-10-11, sha256 25d8fb700a3a3e973ea18e6ac678d15762cce58a46690334defa5b05b9142e13. Declarations: captured from the vendor's distributed bundles, each checked against a recorded sha256. See the Shopify tool sets and what a tool declares and what a crawler cannot see.