browse_store
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:
Browse OR navigate to store collections. Set navigate=true whenever the user wants to be taken to a collection page in the browser (triggers: "browse to", "go to", "show me", "open", "take me to", "navigate to" a collection or category). With navigate=false (default), returns collection or product data without changing the page — use this only when the user is asking a question about the catalog, not asking to view it. Without a collection handle, lists all collections. With a handle, returns products from that collection; use "all" to browse everything. Does NOT add anything to the cart; use add_to_cart for cart changes. Prefer this over search_catalog when the user names a category, collection, or wants to explore. With navigate=true this MOVES the browser to the collection page; the tool result then confirms the destination and instructs you not to navigate again — follow it.
| Vendor | Shopify |
|---|---|
| Sites | 99,664 in 3 tool sets (64,429 + 31,153 + 4,082) |
| Declared by bundle versions | 0.1.0, 0.1.1, 1cd8a9f0, f427de6a |
| Read-only hint | readOnlyHint: false |
| Other hints | untrustedContentHint: 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
| Field | Type | Required | Description |
|---|---|---|---|
collection | string | no | Collection handle to browse (e.g. "best-sellers", "new-arrivals"). Omit to list all collections. Use "all" to browse every product. |
navigate | boolean | no | When true, navigate the browser to the collection page after loading data. Set true for user intents like "browse to", "go to", "show me", "open", "take me to" a collection. Requires a collection handle. Defaults to false. |
sort_by | string | no | Sort order. Options: best-selling (default), price-ascending, price-descending, title-ascending, title-descending, created-descending, created-ascending. |
page | number | no | Page number for pagination (starts at 1). Each page returns up to 30 products. |
The full input schema, as declared:
{
"type": "object",
"properties": {
"collection": {
"type": "string",
"description": "Collection handle to browse (e.g. \"best-sellers\", \"new-arrivals\"). Omit to list all collections. Use \"all\" to browse every product."
},
"navigate": {
"type": "boolean",
"description": "When true, navigate the browser to the collection page after loading data. Set true for user intents like \"browse to\", \"go to\", \"show me\", \"open\", \"take me to\" a collection. Requires a collection handle. Defaults to false."
},
"sort_by": {
"type": "string",
"description": "Sort order. Options: best-selling (default), price-ascending, price-descending, title-ascending, title-descending, created-descending, created-ascending."
},
"page": {
"type": "number",
"description": "Page number for pagination (starts at 1). Each page returns up to 30 products."
}
}
}
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
add_to_cartcancel_cartget_cartget_productget_ucp_profilemanage_ordersproceed_to_checkoutsearch_catalogsearch_shop_policies_and_faqsshow_variantupdate_cartupdate_cart_lines
Source
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.