We ran the real agent-shoppability checker — live HTTP scans, no estimates — on six major Shopify brands: Gymshark, Allbirds, Bombas, Ruggable, Mejuri, and Brooklinen. The scores range from 0 to 76. Four out of six score an F. Every single brand scores zero on MCP. Here is exactly what we found, why it matters in 2026, and what any Shopify merchant can do today.
This is not a future-tense story. In 2026, AI shopping agents — built on GPT-4o, Claude, and Gemini — are actively browsing, selecting, and initiating purchases on behalf of users. The rails that make a store agent-transactable are already live and standardized:
agents.md: Shopify began serving /agents.md by default on all storefronts as part of the Agentic Storefronts initiative. This file tells AI agents how to interact with the store: how to search products, how to add to cart, what authentication is required for checkout./.well-known/ucp, signals to Google Shopping AI and compliant agents that a store supports agent-native transactions. Shopify generates this file for stores on current plans.The important nuance: Shopify auto-generates agents.md, /llms.txt, and /.well-known/ucp for current storefronts. Most Shopify stores have the discovery layer by default. What they almost universally lack is the transactability layer: schema.org Product + Offer JSON-LD on product pages, machine-readable pricing, GTIN identifiers, and MCP endpoints. That gap is what our checker measures.
/agents.md, /llms.txt, /.well-known/ucp, /products.json (sampling GTIN/price/availability), a real product page for schema.org markup, machine-readable pricing signals, and /mcp — and score each from the actual HTTP responses. The HTTP status codes and byte sizes for every fetch are recorded. Nothing is estimated.
| Brand | Score | Grade | Key gap |
|---|---|---|---|
| Allbirds | 76 | B | Missing schema.org Product; no GTIN; no MCP |
| Gymshark | 53 | C | No schema.org Product/Offer; no machine pricing; no MCP |
| Brooklinen | 37 | D | Product feed too large to parse; no schema; no machine pricing |
| Mejuri | 12 | F | products.json 404; no agents.md; no llms.txt; no schema |
| Bombas | 0 | F | Every agentic endpoint returns 404 — zero signals detected |
| Ruggable | 0 | F | Every agentic endpoint returns 404 — likely headless architecture gap |
Grade scale: A ≥ 80 · B ≥ 65 · C ≥ 50 · D ≥ 35 · F < 35. The top score in this set is 76 (Allbirds). Two brands score a hard zero. Every brand in the set is missing the MCP endpoint that would make them natively transactable by any compliant AI agent.
Allbirds is the best performer in this set by a significant margin. Their discovery layer is complete: agents.md (4,237 bytes, HTTP 200), llms.txt (4,280 bytes), and UCP all live. Their /products.json returns a full parseable feed (109 KB sample). Critically, the product page checker found schema.org Offer JSON-LD including price, availability, and currency — the only brand in this set to have machine-readable pricing on a product page. The gap keeping them from an A: no schema.org Product wrapper (the Offer exists but is not nested inside a Product entity, so AI agents cannot reliably identify the item type), zero GTIN on any of the 20 sampled variants, and no MCP endpoint. The Product JSON-LD fix is a single Shopify theme edit.
schema.org Product JSON-LD to product pages — the Offer already exists; wrap it in a Product entity./mcp.Gymshark has the discovery layer fully in place: agents.md (4,291 bytes), llms.txt (4,334 bytes), and UCP all return HTTP 200. Their /products.json returns a 120 KB sample with 100% price coverage and 100% availability across 20 sampled variants. The product page we checked — /products/gymshark-pumper-pants-pants-orange-ss26 — returned HTTP 200 with 52 KB of content. But when the checker parsed that page for schema.org JSON-LD, it found zero Product markup and zero Offer markup. An AI agent that lands on a Gymshark product page cannot reliably extract the price or confirm the item's identity from structured data. It has to parse raw HTML — which agents do inconsistently and unreliably.
schema.org Product JSON-LD to every product page. Discovery is working; structured product identity is not.schema.org Offer JSON-LD (price + priceCurrency + availability). The data exists in the product feed; it needs to be in page markup./mcp.Brooklinen has the discovery layer in place — agents.md, llms.txt, and UCP all return HTTP 200 — which accounts for their 37 points. The problem is their /products.json?limit=20 response: it came back at 532,912 bytes (533 KB). That is more than four times the expected size for a 20-product sample. This payload size indicates oversized variant metafields or embedded data in their product catalog. The checker could not reliably parse GTIN, pricing, or availability from it, so the product feed score is zero. Because the feed failed to parse, no product page URL was extracted for schema checking, so schema also scores zero. The fix is straightforward: trim variant metafields or paginate the feed.
products.json response size — 533 KB for 20 products is a sign of oversized metafields. Trim them so AI agents can parse your catalog.schema.org Product JSON-LD to product pages.schema.org Offer JSON-LD with price and availability.Mejuri is the most instructive F in the set. Their /.well-known/ucp returns HTTP 200 (4,139 bytes) — the sole source of their 12 points. Everything else is a 404. Their /agents.md (404), /llms.txt (404), and /products.json (404) are all absent. The product feed block is particularly consequential: without a parseable catalog, an AI agent cannot make product recommendations, cannot quote prices, and cannot verify availability. Mejuri appears to be on a current Shopify plan (UCP is auto-generated by Shopify for current plans), but has separately removed or blocked the other agentic endpoints. For a fine jewelry brand where product discovery is the entire buying journey, this is a significant gap.
/agents.md — Shopify generates this for current-plan stores; check whether it has been explicitly removed./llms.txt./products.json. Blocking the public product feed means AI agents cannot build a catalog understanding of your store.schema.org Product + Offer JSON-LD to product pages./products.json is a reasonable competitive decision for brands protecting pricing from scrapers. But the cost in 2026 is total AI-agent blindness to your catalog. AI shopping agents that rely on structured feeds to build product understanding get nothing.
Bombas scores zero. Every agentic endpoint — /agents.md, /llms.txt, /.well-known/ucp, /products.json, /mcp — returns HTTP 404. Their homepage is live (1.46 MB, HTTP 200), so the store is running. But none of the agentic discovery or transaction endpoints are served. Bombas appears to be on a Shopify configuration where the automatic generation of these files has been overridden, or a CDN/routing layer is stripping these paths. An AI agent sent to shop at Bombas today finds nothing it can use.
/agents.md. If on a current Shopify plan, check whether a CDN routing rule is blocking these paths./.well-known/ucp./llms.txt./products.json to respond publicly.schema.org Product + Offer JSON-LD to product pages.Ruggable scores zero. Their homepage is live (417 KB, HTTP 200). Every agentic endpoint returns 404 — and each 404 page is 420 KB, consistent with a custom app shell that serves the SPA for all unknown routes. This is a classic headless Shopify signature: a React or Next.js frontend where all unmatched paths return the SPA shell. In this architecture, Shopify's default agents.md and llms.txt generation does not automatically carry over to the custom frontend domain. These files need to be explicitly published at the CDN/web server level. This is a common blind spot for teams that migrate to headless commerce: the Shopify backend has the files, but the custom frontend domain does not serve them.
/agents.md as a static file at the CDN root. In a headless setup, Shopify's default generation does not populate the custom frontend domain./.well-known/ucp as a static file at the domain root./llms.txt as a static file at the domain root.schema.org Product + Offer JSON-LD to product pages — critical for headless stores where HTML parsing is the agent fallback.Across six major Shopify brands, three distinct failure modes emerge:
1. Discovery layer present, transactability layer absent (Gymshark, Allbirds, Brooklinen). These brands have agents.md, llms.txt, and UCP in place. An AI agent can discover them. But the page-level signals that make a store actually transactable — schema.org Product + Offer JSON-LD, machine-readable pricing, GTIN identifiers — are largely absent. The agent can browse but cannot buy with confidence.
2. Deliberate or accidental endpoint blocking (Mejuri, Bombas, Ruggable). These brands score 0–12 because their agentic endpoints are not reachable. For Mejuri, the /products.json block appears intentional. For Bombas and Ruggable, the pattern looks like a CDN or headless architecture decision that never accounted for agentic discovery. In all three cases, the stores are invisible to AI shopping agents at the catalog level.
3. Zero MCP, universally. Not one of the six brands had a detectable MCP endpoint. MCP-native Shopify integration is early in 2026, but the brands that are first to publish an MCP endpoint will have a structural advantage when agent-native commerce becomes the default shopping mode.
yourdomain.com/agents.md, /llms.txt, and /.well-known/ucp each return HTTP 200. If on a current Shopify plan and any returns 404, check whether a CDN rule or headless frontend routing is intercepting the request.schema.org Product JSON-LD to your product pages. The most common gap and highest-impact fix. Even Allbirds (76/100) is missing this. Use a Shopify theme edit to inject a Product JSON-LD block on product pages — a single Liquid snippet.schema.org Offer JSON-LD with price, priceCurrency, and availability. Only Allbirds has this. An agent cannot quote an accurate price or confirm stock without this markup. Shopify's Liquid variables for price and availability make this straightforward./products.json is parseable. Check response size with curl -sI 'yourdomain.com/products.json?limit=20'. If it is over 200 KB for a 20-product sample, investigate what is inflating it. Brooklinen's 533 KB response is the clearest case study here.shopify.dev for the native MCP release. See Hatchloop's MCP setup guide for background on the protocol./.well-known/ucp — signals agent-transactability to Google Shopping AI. Shopify auto-generates it for current-plan stores.Full explainer with implementation details: Agent-Commerce Readiness: How AI Agents Shop in 2026.
GET /api/v1/agent-commerce-check?url=<store>). The checker fetches seven public endpoints per store: /agents.md, /llms.txt, /.well-known/ucp, /products.json?limit=20 (sampling GTIN, price, and availability across variants), a product page (for schema.org Product + Offer JSON-LD), machine-readable pricing meta tags, and /mcp. Scores are computed from actual HTTP response bodies and status codes. No scores are fabricated or estimated. The API disclaimer: “Score computed from real HTTP fetches of the store public endpoints. No scores are fabricated. Signals checked: /agents.md, /llms.txt, /.well-known/ucp, /products.json (GTIN/price/availability), schema.org Product+Offer JSON-LD on product page, machine-readable pricing, MCP endpoint hint.” Raw evidence including HTTP status codes and byte sizes for every fetch is available in the API response. All six stores confirmed as Shopify storefronts by platform detection signals. Scanned at: gymshark 2026-06-14T16:43:22Z, allbirds 2026-06-14T16:43:23Z, bombas 2026-06-14T16:43:36Z, ruggable 2026-06-14T16:43:38Z, mejuri 2026-06-14T16:43:40Z, brooklinen 2026-06-14T16:44:25Z.
Run the same agent-shoppability checker on your own Shopify store. Real scans, no fabricated estimates. You get a 0–100 score across every signal in this post, plus a ranked fix list. Free, no signup, results in under 60 seconds.
Check your agent-shoppability score →Free · No account needed · Works on any public Shopify storefront