storefront-production-956f.up.railway.app logo

storefront-production-956f.up.railway.app

verified_user Multi-version UCP compliance, backward compatibility & transport audit

schedule Last scanned 5/4/2026

F 51/100

Conformance

42%
45%

Capability

100%
14%

Coverage

38%
12%

Backward Compat

0%
9%

Negative

39%
8%

Transport

80%
8%

Latency

97%
4%

Audit Details

50% Passing Rate
check_circle DISC-0012
Cache-Control max-age is within recommended bounds

Completed in 480ms

Pass
check_circle DISC-0006
Profile response advertises cache headers

Completed in 505ms

Pass
check_circle DISC-0003
Profile declares at least the checkout capability

Completed in 535ms

Pass
check_circle DISC-0016
Capability version strings are valid ISO dates

Completed in 478ms

Pass
check_circle DISC-0008
Profile response Content-Type is application/json

Completed in 452ms

Pass
cancel DISC-0010
Discovery endpoint exposes CORS headers

Discovery response is missing Access-Control-Allow-Origin header

Fail
check_circle DISC-0007
Profile is served over HTTPS

Completed in 35ms

Pass
check_circle DISC-0011
Two consecutive profile fetches return identical bodies

Completed in 890ms

Pass
warning DISC-0020
Signing JWKs use only allowed kty/crv values

Profile declares no signing_keys array — the field is optional per the UCP spec, but agents cannot verify signed payloads from this merchant

Warn
check_circle DISC-0015
No duplicate capability entries (same name + version)

Completed in 448ms

Pass
warning DISC-0017
OpenAPI servers[] URL is reachable

Profile has no loadable service-level OpenAPI document

Warn
check_circle DISC-0001
Business profile has a valid structure

Completed in 473ms

Pass
help DISC-0022
Merchant responses are signed with the published signing_keys

Profile declares no signing_keys; nothing to verify against. DISC-0002 tracks absence separately.

Skip
check_circle DISC-0021
robots.txt allows AI agents to read the UCP profile

Completed in 854ms

Pass
check_circle DISC-0014
All declared schema URLs use HTTPS

Completed in 503ms

Pass
warning DISC-0019
Signing keys are importable via Web Crypto

Profile declares no signing_keys array — the field is optional per the UCP spec, but agents cannot verify signed payloads from this merchant

Warn
warning DISC-0002
Profile advertises well-formed signing keys

Profile declares no signing_keys array — the field is optional per the UCP spec, but agents cannot verify signed payloads from this merchant

Warn
check_circle DISC-0018
Service binding transports are in the allowed set

Completed in 482ms

Pass
check_circle DISC-0005
Profile declares a ucp.version string

Completed in 523ms

Pass
check_circle DISC-0013
Profile ucp.version is one the grader recognizes

Completed in 510ms

Pass
check_circle DISC-0009
Profile is served at the canonical .well-known/ucp path

Completed in 483ms

Pass
warning SCHEMA-INT-0004
Declared capabilities match operations in the OpenAPI

No OpenAPI operations available to cross-check

Warn
warning SCHEMA-INT-0009
Capability JSON Schemas declare a modern $schema draft

Profile declares no capability JSON Schemas

Warn
cancel SCHEMA-INT-0003
Capability-level JSON Schemas are well-formed

2 of 2 capability schemas are malformed

Fail
warning SCHEMA-INT-0008
OpenAPI components.schemas has no orphans

Profile has no loadable service-level OpenAPI document

Warn
warning SCHEMA-INT-0002
Service-level OpenAPI document is valid OpenAPI 3.x

No service-level OpenAPI schema was loaded

Warn
warning SCHEMA-INT-0006
Every OpenAPI operation declares a 2xx JSON response schema

Profile has no loadable service-level OpenAPI document

Warn
warning SCHEMA-INT-0005
Every $ref referenced schema document is reachable

Profile declares no loadable schema documents

Warn
cancel SCHEMA-INT-0001
All declared schema URLs return 200

5 of 5 schema URLs failed to load: [service] https://ucp.dev/services/shopping/rest.openapi.json → http_404 [service] https://ucp.dev/services/shopping/mcp.json → http_404 [capability] https://ucp.dev/schemas/shopping/checkout.json → http_404 [capability] https://ucp.dev/schemas/shopping/fulfillment.json → http_404 [payment] https://ucp.dev/schemas/payment/handler.json → http_404

Fail
cancel SCHEMA-0005
Cancel session response matches the OpenAPI schema

Could not create session: 400

Fail
cancel SCHEMA-0002
Create session response matches the OpenAPI schema

Expected 2xx, got 400

Fail
check_circle SCHEMA-0001
Discovery profile matches the published JSON Schema

Completed in 478ms

Pass
cancel SCHEMA-0003
Get session response matches the OpenAPI schema

Could not create session: 400

Fail
cancel SCHEMA-0004
Update session response matches the OpenAPI schema

Could not create session: 400

Fail
cancel CHK-0008 rest
Canceling a session twice with the same idempotency key is idempotent

createSession returned status=400

Fail
cancel CHK-0008 mcp
Canceling a session twice with the same idempotency key is idempotent

createSession returned status=200

Fail
cancel CHK-0007 rest
Cancel a checkout session

createSession returned 400

Fail
cancel CHK-0007 mcp
Cancel a checkout session

createSession returned 200

Fail
cancel CHK-0001 rest
Create checkout session with defaults

createSession returned status=400

Fail
cancel CHK-0001 mcp
Create checkout session with defaults

createSession returned status=200

Fail
cancel CHK-0002 rest
Repeated createSession with same idempotency key returns same session

First create failed: 400

Fail
cancel CHK-0002 mcp
Repeated createSession with same idempotency key returns same session

First create failed: 200

Fail
cancel CHK-0003 rest
Create session then set shipping address

createSession returned 400

Fail
cancel CHK-0003 mcp
Create session then set shipping address

createSession returned 200

Fail
cancel CHK-0004 rest
Retrieve a checkout session by id

createSession returned 400

Fail
cancel CHK-0004 mcp
Retrieve a checkout session by id

createSession returned 200

Fail
cancel CHK-0009 rest
Reusing an Idempotency-Key with a different body must be rejected

First createSession returned status=400

Fail
cancel CHK-0009 mcp
Reusing an Idempotency-Key with a different body must be rejected

First createSession returned status=200

Fail
cancel CHK-0010 rest
update_checkout is idempotent on replay and rejects conflicting replays

createSession returned status=400

Fail
cancel CHK-0010 mcp
update_checkout is idempotent on replay and rejects conflicting replays

createSession returned status=200

Fail
cancel CHK-0005 rest
Select a shipping method on a checkout session

createSession returned 400

Fail
cancel CHK-0005 mcp
Select a shipping method on a checkout session

createSession returned 200

Fail
cancel FUL-0001 rest
Shipping methods are returned after setting an address

createSession returned 400

Fail
cancel FUL-0001 mcp
Shipping methods are returned after setting an address

createSession returned 200

Fail
warning CAP-CAT-0002 rest
Catalog capability advertised for product lookup

Profile does not declare dev.ucp.shopping.catalog.lookup

Warn
warning CAP-CAT-0002 mcp
Catalog capability advertised for product lookup

Profile does not declare dev.ucp.shopping.catalog.lookup

Warn
warning CAP-CAT-0001 rest
Catalog capability is declared

Profile does not declare dev.ucp.shopping.catalog.search

Warn
warning CAP-CAT-0001 mcp
Catalog capability is declared

Profile does not declare dev.ucp.shopping.catalog.search

Warn
check_circle CAP-CHK-0001 rest
Checkout capability is declared and reachable

Completed in 230ms

Pass
check_circle CAP-CHK-0001 mcp
Checkout capability is declared and reachable

Completed in 226ms

Pass
check_circle CAP-FUL-0001 rest
Fulfillment capability is declared
Pass
check_circle CAP-FUL-0001 mcp
Fulfillment capability is declared
Pass

Business Profile

Services

dev.ucp.shopping
restmcp

Capabilities

dev.ucp.shopping.checkout
v2026-01-11
Implemented
Tests: 3/15 passed
dev.ucp.shopping.fulfillment
v2026-01-11
Implemented
Tests: 2/4 passed

Payment Handlers

payments
com.medusa.payment
card
1 config key