← WebMCP Shield

What Shopify storefronts tell AI agents

Shopify ships a set of WebMCP tools to its storefronts. An AI agent running in the shopper’s browser can then search a store, read a cart and move to checkout through structured calls, instead of operating a page built for human eyes and hands. This page lists what those tools declare, how the set has changed, and where our data stops. If WebMCP itself is new to you, start with What is WebMCP?.

The short version

The twelve tools in the current version

The table is taken from the declarations in Shopify’s public script webmcp-f427de6a.js, read the way a page would register them. Each tool name links to its own page with the full description, the input it asks for and the hints it declares.

GroupToolreadOnlyHintWhat the declaration says
Catalogsearch_catalogtrueSearches products, collections, articles and pages. Says it does not change the cart.
Catalogbrowse_storefalseLists a store’s collections, or navigates the browser to one.
Catalogget_productfalseReturns product details, or navigates the browser to the product page.
Catalogshow_variantfalseOpens a product page with a variant selected.
Cartget_carttrueReturns line items, prices, quantities and totals.
Cartadd_to_cartfalseAdds products to the cart.
Cartupdate_cart_linesfalseChanges quantities or removes lines. Each line is addressed by its id, so it asks for get_cart first.
Cartcancel_cartfalseRemoves every item from the cart.
Checkout and ordersproceed_to_checkoutfalseChecks that the cart is not empty, then moves the browser to checkout.
Checkout and ordersmanage_ordersfalseNavigates to the order history page. The description says the shopper is asked to log in if not already signed in.
Store informationsearch_shop_policies_and_faqstrueReturns facts about policies, FAQs and contact details.
Store informationget_ucp_profiletrueReturns the store’s Universal Commerce Protocol profile, served at /.well-known/ucp.

This is what our crawler records for one of them. The implementation is not shown, because we do not read what runs behind the declaration here; that limit is explained in What a WebMCP tool declares.

await document.modelContext.registerTool({
  name: "get_ucp_profile",
  description: "Get this store's Universal Commerce Protocol (UCP) profile, as served at /.well-known/ucp: the UCP version, the services the store offers with their endpoints (e.g. the store's UCP MCP server), its capabilities, and its payment handlers. Use it to discover how to continue a purchase with this store over UCP, or to check which platform operates the store. Read-only; works from any page.",
  inputSchema: {"type": "object", "properties": {}},
  annotations: {"readOnlyHint": true, "untrustedContentHint": true},
  async execute() { /* implementation not shown */ }
});

Nine of the twelve tools declare untrustedContentHint: true; the three that do not are cancel_cart, proceed_to_checkout and manage_orders. See the tool reference for every tool and the hints it declares.

Three versions of the set

The tool set is not fixed. Storefronts have moved from ten tools to eleven and then to twelve:

Sealed fileTwelve-tool sitesEleven-tool sitesTen-tool sites
2026-10-096,50387,2314,110
2026-10-1131,15364,4294,082
2026-10-1458,64539,1814,056
2026-10-1769,38130,5764,048

The counts follow our re-crawl schedule. A site moves from one column to the next when we next read it, so the table shows how much of what we crawl has been re-read, not the day each store switched. Each row comes from its own sealed file.

Documentation and the live script differ

The Shopify documentation page we read on 2026-10-19 lists ten tools, including update_cart. The script that storefronts load now declares twelve. We do not know which of the two Shopify intends as current; the storefronts we crawl are shipping the twelve-tool script. Read the documentation for what Shopify intends, and read our tool pages for what a storefront declares.

The same page says the cart tools call the standard storefront actions, so an agent’s cart change behaves like the shopper’s own, and that the shopper is asked to log in before order history. It does not describe a way to turn the tools off on a Liquid storefront, and it does not say whether an agent must ask the shopper before moving to checkout. We did not test either point.

Check your own storefront

How common this is

We crawl a large sample of the web and record which sites register tools. In our sealed file for 2026-10-17, we crawled 6,771,594 domains and found 110,803 sites that declare WebMCP tools. They fall into two very different groups:

KindSitesShare
Vendor-distributed (a platform ships the tool set to its sites)104,34394.2%
Independent (the site wrote its own implementation)6,4605.8%

Of the vendor-distributed group, 104,005 sites carry one of the tool sets that Shopify distributes (see the Shopify page). Quoting a single total without this split misstates what the data shows.

What this does and does not tell you

Every number above comes from a sealed, dated file with a published sha256 in the index, so it can be checked and does not change. The full method and its limits are on the main page.

Further reading