How agentfit measures your store
AI agents shop differently from humans. They read your UCP profile, hit your MCP endpoint, and decide in seconds whether your store is worth surfacing to a buyer. agentfit measures what they see — and tells you where to fix.
From URL to report in three steps
-
1
Submit your store URL
You paste a Shopify URL on the landing page (e.g.
yourstore.myshopify.comor your custom domain). We solve a Cloudflare Turnstile challenge to keep bots out — no signup, no app install, no OAuth dance. -
2
Verify your email
A one-time 6-digit code arrives in your inbox. Verifying ties the audit to a real merchant and stops us from burning probes for the entire internet. The code expires in 15 minutes; you can resend up to three times per session.
-
3
Run the audit
We fetch your UCP profile from
/.well-known/ucp, run live MCP calls against the endpoint declared there (search a product, get its detail, build a cart, follow the checkout handoff), and score 27 checks across seven categories. The full report appears on a permalink URL you can share or revisit for 90 days.
Seven categories, 27 probes
Categories A–E read your UCP profile (a JSON document at {shop}/.well-known/ucp describing your commerce surface). Categories F–G run live tools/call requests against your MCP endpoint to verify the surface actually works.
Capability presence the gate
We confirm the basics: your profile is reachable at /.well-known/ucp, an MCP endpoint is declared under services["dev.ucp.shopping"], and the required capabilities are advertised — dev.ucp.shopping.checkout, dev.ucp.shopping.cart, and both catalog.search + catalog.lookup.
Why it matters → Without these, agents literally can't talk to your store. If any Category A probe fails, the audit short-circuits to “Not UCP-enabled” — there's no point scoring the rest.
Reference: Agent profiles and UCP negotiation
Payment handlers
We count the handlers your storefront advertises under the checkout capability's config.payment_handlers, and check for the five that drive most agent-driven conversion: Shop Pay, Google Pay, Apple Pay, PayPal, and a card fallback.
Why it matters → An agent can only complete a checkout it knows how to settle. The more handlers you advertise, the more likely an agent finds one its buyer is configured for — and the fewer abandoned carts at the wallet step.
Reference: Cart MCP server
Fulfillment options
We read your fulfillment capability config: whether multi-destination shipping is enabled (allows_multi_destination.shipping), whether pickup is offered (in allows_method_combinations), and the overall diversity of method combinations.
Why it matters → Agents optimize for fulfillment fit. A buyer asking for “a gift shipped to my parents' house” needs multi-destination. A local-first buyer wants pickup. Fewer options means more declined orders for the agent and fewer routed to you.
Reference: Carts and checkout for agents
Promotions & extensions
We look for a declared discount extension (dev.ucp.shopping.discount), a gift/bundle/subscription extension from a known allowlist, and the count of third-party (non-dev.*) capabilities the merchant has exposed.
Why it matters → Agents read these to apply offers automatically. A gift extension means an agent can turn a browse session into a gift-with-purchase upsell. A subscription extension means recurring revenue rather than one-shot. Stores without these get treated like everyone else.
Reference: Agentic commerce overview
Versioning & maturity
We check that your profile lists the current UCP spec version (2026-04-08) in supported_versions, and that you support more than one version — a signal you actively maintain the integration and won't break when the spec moves.
Why it matters → Agents prefer merchants on the latest version. Multi-version support means clients on older spec releases don't break against you.
Reference: Define your agent profile
Catalog quality live MCP
This is where we leave the profile and run live calls against your MCP endpoint:
search_catalogwith{ catalog: { query: "new" } }— does the catalog actually return products?get_producton the first hit — full detail (images, description, variants, availability, tags)?search_catalogwithcatalog.context.address_country: "GB"— does pricing localize?
Why it matters → Agents discover products via these calls. A thin product detail means the agent doesn't have enough to recommend you to the buyer. Identical locale pricing across markets means international shoppers get charged the wrong currency at checkout.
Reference: Storefront Catalog MCP
Cart functionality live MCP
We build a real cart against your store and verify the round-trip:
create_cartwith one variant from the get_product resultget_cartby id — does the cart come back?- Totals — subtotal + total both populated?
- GET on
cart.continue_url— does the handoff URL actually serve a cart page? cancel_cart— best-effort cleanup so we don't litter your storage.
Why it matters → If an agent builds a cart but the totals are missing, or the continue_url resolves to an empty page, the buyer trying to complete the purchase lands on a broken handoff. No conversion.
Reference: Build a cart with Cart MCP
What pass / warn / fail / skip mean
Full points. The probe found exactly what the spec asks for. No action needed.
Partial points. The probe found something but not the maximum (e.g., 3 payment handlers when 5+ unlocks the cap). Worth fixing if you have the bandwidth.
Zero points. The check returned negatively, or the source of truth is missing. Each fail comes with a one-click fix in the report.
Not applicable. A dependency isn't there to measure against (e.g., variant resolution doesn't apply if you sell single-SKU products). Skipped probes don't affect your score.
Common questions
What is UCP?
Universal Commerce Protocol — Shopify's spec for how merchants advertise their commerce surface to AI agents. Every Shopify store gets it automatically; the question agentfit answers is whether your specific configuration takes full advantage. Shopify UCP docs →
How long does the audit take?
30–60 seconds end-to-end. We make 6–7 sequential MCP calls against your storefront; the wall-clock depends mostly on how quickly your store responds to them.
Will running the audit affect my real customers?
No. We create one cart, retrieve it, then cancel it. The activity looks like a single visitor browsing — less impact than a real shopper who actually checks out. We never call payment or inventory endpoints.
Do you store my email?
Yes, with the audit session, automatically deleted after 24 hours. The audit report itself is kept for 90 days so you can revisit the URL. Full details on privacy.
How often should I re-run?
After any change that touches your UCP surface — enabling a new payment provider, installing/uninstalling an agent-aware app, switching themes that override the catalog endpoint. Once a month is plenty for a stable store.
What's the score out of, and what counts as "good"?
100. The thresholds:
- 80–100 — Agent-ready
- 60–79 — Mostly ready
- 40–59 — Significant gaps
- 0–39 — Just getting started
- Any Category A fail → Not UCP-enabled (overrides the numeric score)
How are the 27 probes structured?
Seven categories, A through G, each containing a small handful of probes that share a source of truth:
- A — 5 probes (capability presence, the gate)
- B — 6 probes (payment handlers)
- C — 3 probes (fulfillment options)
- D — 3 probes (promotions & extensions)
- E — 2 probes (versioning & maturity)
- F — 4 probes (catalog quality, live MCP)
- G — 4 probes (cart functionality, live MCP)
The score is the sum of all 27 probes' points, capped at 100.
Can I share the report URL?
Yes — the /audit/<slug>/ URL stays live for 90 days. Anyone with the URL can re-open the report (no sessionId required after the first run; the cached report is served straight from S3 via the same endpoint). The verification step only gates the initial run.