UCP Checker
UCP Score

UCP Score for albrwaz.net

Nearly there

76 out of 100, grade B: nearly there. The missing 24 points are spread across Discovery and Conformance and Capabilities. 3 spec breaks on the status page aren't counted in the score.

Discovery 95Conformance 93Capabilities 35release 2026-04-08

How the score is made

three areas, weighted
Discovery 30%
Can a UCP agent find and read the profile: HTTPS, an answer at /.well-known/ucp, robots.txt allowing it, and five files outside UCP (llms.txt, sitemap, Open Graph, Organization schema, viewport).
95−1.5 pts
Conformance 40%
Does the profile follow the spec: valid against its release (counted three times), a dated release, keys published, few warnings, spec and schema links that resolve.
93−2.8 pts
Capabilities 30%
What an agent can do here: how many capabilities, checkout, at least one service, payment handlers, and services that answer our check.
35−19.5 pts
A85–100Ready for UCP agents
B70–84Nearly there
C50–69Partly ready
D30–49Hard for UCP agents
F0–29Not ready

Raise the score

fixes that move the number
part of +3
1Declare a transport on the service
Service entry has no "transport" field and no legacy nested transport.
Without a transport, agents do not know whether to speak REST, MCP, or A2A to your endpoint.
Conformance · effort low
{
  "version": "2026-08-25",
  "transport": "mcp",
  "endpoint": "https://yourstore.com/api/ucp/mcp"
}

Allowed transport values per spec: rest, mcp, a2a, embedded.

part of +3
2Name services the way the spec does
A service is not named in the spec's dotted form (e.g. dev.ucp.shopping).
Like capabilities, services are named like reversed web addresses so names never collide.
Conformance · effort low
"services": {
  "dev.ucp.shopping": [...]
}
part of +3
3Name payment handlers the way the spec does
A payment handler is not named in the spec's dotted form (e.g. com.google.pay).
Handlers are named like reversed web addresses (com.google.pay, com.stripe.terminal) so every store declaring the same payment method names it the same way, and an agent can recognise it.
Conformance · effort low
"payment_handlers": {
  "com.google.pay": [...]
}
part of +3
4Add version to each payment handler
A payment handler is missing the required "version" field.
Handler versions evolve independently of the profile. Agents pin their token request format to a specific handler version.
Conformance · effort low
"version": "2026-08-25"
part of +3
5Move to the latest UCP protocol version
Your profile declares a valid but older protocol version. A newer one is published.
Older versions stay valid (agents use the version you declare), but newer abilities (embedded checkout, agent payment mandates, linked customer accounts, card authentication, payment terms and store location lookup) only work against the latest version. The profile itself barely changes: the signing keys move to a root-level "keys" list, and the rest of the update is in what capabilities can say.
Conformance · effort low
"ucp": {
  "version": "2026-08-25",
  ...
},
"keys": [ ... ]   // beside "ucp", not inside it

Set the version to 2026-08-25 and publish your public keys as a root-level "keys" list. The older "signing_keys" field is still accepted, but "keys" is the one every verifier reads.

+2
6Publish a /llms.txt brand brief
No /llms.txt file detected at the root of your domain.
llms.txt is an emerging convention (analogous to robots.txt) that lets you give AI agents a hand-written brief about your brand, product categories, return policy, and crawl preferences. Strict UCP agents do not require it, but recommendation/discovery agents increasingly read it for context.
Discovery · effort low
# llms.txt
# Public brief for AI agents about Yourstore

# About
One or two sentences on what you sell, who you sell to, and any defining context (founded, mission, sustainability stance, etc.).

# Product Categories
- Category one
- Category two
- Category three

# Policies
- Returns: e.g. 30 days, full refund
- Shipping: e.g. Free over $30, 3-5 business days
- Any other policy worth surfacing (cruelty-free, vegan, made-to-order, etc.)

# Agent Capabilities
- UCP profile: /.well-known/ucp
- Supported flows: cart, checkout, tokenized payment, etc.
- Anything explicitly NOT supported (e.g. "no subscription products via agent")

# Contact
[email protected]

Save as /llms.txt at your site root. Plain text, written for an LLM audience. The format is informal: these section headings are a working convention, not a spec. Replace the placeholders with your own brand details and update when policies or product lines change.

Every check

11 passed · 6 to fix
Agent Discovery · 7 of 8
7 OK
HTTPS, UCP profile reachable, AI bot access, sitemap.xml, Open Graph tags, Organization schema (JSON-LD), Mobile viewport metaShow
  • HTTPS · Profile URL uses https://
  • UCP profile reachable · HTTP 200
  • AI bot access · robots.txt allows /.well-known/ucp
  • sitemap.xml · Found at /sitemap.xml
  • Open Graph tags · og:title and og:type/url present
  • Organization schema (JSON-LD) · Organization-typed JSON-LD detected
  • Mobile viewport meta · <meta name="viewport"> present
Problem
llms.txt
HTTP 404 at /llms.txt. Fix 6 above.
Discovery
UCP Conformance · 4 of 5
4 OK
Profile passes schema validation, Protocol version present and well-formed, Public keys published, Spec/schema URL resolvesShow
  • Profile passes schema validation · No structural errors
  • Protocol version present and well-formed · Version: 2026-04-08
  • Public keys published · Keys published at the top level
  • Spec/schema URL resolves · All 1 URLs resolved.
Problem
No validation warnings
4 warnings.
Conformance
Capability Coverage · 0 of 4
To fix
Capabilities declared
1 of 6 capability families detected: Catalog. A family counts once however many namespaces or extensions declare it.
Capabilities
Problem
Checkout capability
No checkout capability.
Capabilities
Problem
Transports declared
No transports declared.
Capabilities
To fix
Payment handlers
1 handler declared, not named the way the spec expects (e.g. com.google.pay), so agents cannot look it up.
Capabilities

Not in the score, but worth fixing first

spec breaks
Problem
The profile isn't served with the caching the spec requires
Served without a Cache-Control header. Spec level: MUST. Not part of the UCP Score.
on the status page
To fix
supported_versions isn't laid out the way the spec says
Spec level: SHOULD. Not part of the UCP Score.
on the status page
To fix
The profile has no ETag or Last-Modified header
Spec level: SHOULD. Not part of the UCP Score.
on the status page

The score measures what the profile declares across the three areas above. These break a rule in the spec that agents follow, so they can stop an agent before the score matters.

Speed among Zid stores
The profile answered in 498 ms, faster than 12% of the Zid stores we check.