UCP Checker
UCP Score

UCP Score for moft.us

Ready for UCP agents

96 out of 100, grade A: ready for UCP agents. The missing 4 points are spread across Discovery and Conformance. One spec break on the status page isn't counted in the score.

Discovery 95Conformance 93Capabilities 100release 2026-08-25

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.
100full marks
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
+3
1Publish the public keys agents use to check your messages
Your UCP profile lists no public keys, so an agent cannot confirm that a message really came from your store.
Agents use these keys to check that checkout messages really came from you. A store that takes payment through the agent needs them. A store that sends the buyer to its own checkout page can manage without them for now.
Conformance · effort medium
{
  "keys": [
    {
      "kty": "EC",
      "crv": "P-256",
      "x": "<base64url x>",
      "y": "<base64url y>",
      "kid": "store-2026-10",
      "use": "sig",
      "alg": "ES256"
    }
  ],
  "ucp": { ... }
}

Create a P-256 (ES256) key pair: ES256 is the one algorithm every UCP agent must be able to check. Add the public key to a "keys" list at the top level of your UCP profile, as in the example, with its own "kid", and keep the private key on your server. The spec recommends a new key every 90 days: publish the new one next to the old, sign with it, and remove the old key a week later.

+2
2Publish Organization schema (JSON-LD) on the homepage
No Organization-typed JSON-LD detected on your homepage.
Organization schema gives agents a structured representation of your brand identity: name, logo, social profiles, contact info, founding date. Agents use this to verify you are who you claim to be and to link your profile data to a recognizable entity.
Discovery · effort medium
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "OnlineStore",
  "name": "Yourstore",
  "url": "https://yourstore.com",
  "logo": "https://yourstore.com/logo.png",
  "sameAs": [
    "https://twitter.com/yourstore",
    "https://www.instagram.com/yourstore"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "telephone": "+1-800-000-0000",
    "contactType": "Customer Service"
  }
}
</script>

Drop into <head> or end of <body>. Use OnlineStore (more specific) when the entire site is an ecommerce store; Organization is the generic fallback.

Every check

16 passed · 2 to fix
Agent Discovery · 7 of 8
7 OK
HTTPS, UCP profile reachable, AI bot access, llms.txt, sitemap.xml, Open Graph tags, Mobile viewport metaShow
  • HTTPS · Profile URL uses https://
  • UCP profile reachable · HTTP 200
  • AI bot access · robots.txt allows /.well-known/ucp
  • llms.txt · Found at /llms.txt
  • sitemap.xml · Found at /sitemap.xml
  • Open Graph tags · og:title and og:type/url present
  • Mobile viewport meta · <meta name="viewport"> present
Problem
Organization schema (JSON-LD)
Missing or incomplete on homepage. Fix 2 above.
Discovery
UCP Conformance · 4 of 5
4 OK
Profile passes schema validation, Protocol version present and well-formed, No validation warnings, Spec & schema URLs resolve (29)Show
  • Profile passes schema validation · No structural errors
  • Protocol version present and well-formed · Version: 2026-08-25
  • No validation warnings · No outstanding validation issues
  • Spec & schema URLs resolve (29) · All 29 URLs resolved.
To fix
Public keys published
No keys list at the top level of the profile. Fix 1 above.
Conformance
Capability Coverage · 5 of 5
5 OK
Capabilities declared, Checkout capability, Transports declared, Payment handlers, MCP transport reachableShow
  • Capabilities declared · 5 of 6 capability families detected: Checkout, Identity Linking, Cart Management, Order Management, Catalog. A family counts once however many namespaces or extensions declare it.
  • Checkout capability · dev.ucp.shopping.checkout detected
  • Transports declared · MCP, Embedded
  • Payment handlers · 3 handlers registered
  • MCP transport reachable · tools/list returned a JSON-RPC response in 344ms

Not in the score, but worth fixing first

spec breaks
Problem
One entry is at a different version, so agents ignore it
This profile declares 2026-08-25, but dev.ucp.shopping (Embedded) is at 2026-04-08. The spec says every dev.ucp.* service, capability and extension must carry the profile's version, and an agent on 2026-08-25 must reject any entry that doesn't. Declare it at 2026-08-25, and describe older versions in a supported_versions profile. 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.

Files for agents

outside UCP · not part of the UCP Score

Files moft.us publishes for agents beyond its UCP profile, from our weekly look. Only what we found is listed.

Default
agents.md /agents.md
Instructions for agents that visit the store. This one is Shopify's default, served on nearly every store, not written by moft.us.
18 Oct
/agents.md as served 5.6 KB · store platform default
# Agent Instructions — MOFT 

You can browse products and shop at MOFT 's online store, https://www.moft.com, on your user's behalf. This guide covers the Shop skill and UCP integration, directly or through browser-based WebMCP tools.

## Shop skill — recommended

Use the [Shop skill](https://shop.com/SKILL.md) to help your user shop with this store. Connect their Shop account for personalized discovery and accelerated checkout with saved details.

- Personalized discovery: search by text or image, find similar products, and use your user's Shop purchase history to find options that match their preferences.
- Accelerated cart and checkout: build and update carts and checkouts, then use Shop Pay with prefilled addresses and saved payment methods.
- Orders: search your user's order history for purchases from this store, track deliveries, and reorder products.

Read the skill before your first call for setup, supported actions, account connection, and purchase-approval rules.

## UCP integration

This store implements the [Universal Commerce Protocol](https://ucp.dev) for product discovery, carts, and checkout. Integrate directly with its service, or orchestrate shopping through browser-based WebMCP tools.

### Direct integration (MCP)

1. **Discover the store** — `GET https://www.moft.com/.well-known/ucp` returns its UCP profile, including capabilities, service endpoints, and payment handlers.
2. **Discover available tools** — Connect to the MCP endpoint advertised in the profile (`https://www.moft.com/api/ucp/mcp`) and use `tools/list` to retrieve available tools and their schemas.
3. **Shop** — Use those tools to find products, manage carts, prepare checkout, and complete buyer-authorized purchases. Follow returned statuses, messages, and handoff URLs when buyer action is required.

Use a compatible UCP version and follow the returned tool schemas. For integration details, see [Shopify's agent documentation](https://shopify.dev/docs/agents).

### Browser integration (WebMCP)

When working through a browser, use the WebMCP tools registered on this store's pages. The checkout page exposes UCP tools over WebMCP. These tools act on the checkout in the current browser session.

- **Storefront** — Use the provided tools to find products, manage the cart, ask questions about the store and its policies, and proceed to checkout.
- **Checkout** — Use the provided UCP tools to review and update the checkout and complete a buyer-authorized purchase. Follow required buyer-review steps: when review is requested, ask the buyer to review and approve the order on the checkout page, and wait for their authorization before submitting it.

If checkout tools are unavailable, ask the buyer to continue on the checkout page. Do not fall back to scripted form fills or page controls.

For integration details, see [Storefront WebMCP](https://shopify.dev/docs/api/web-mcp) and [Checkout WebMCP](https://shopify.dev/docs/agents/carts-and-checkout/checkout-webmcp).

## Interaction guidelines

- **Buyer authorization** — Place orders and submit payment only with the buyer's authorization. Follow required review and approval steps.
- **Agent traffic** — Agents must identify their requests as agent-initiated. Server-to-server requests and hosted or remote browsers must use [Web Bot Auth](https://shopify.dev/docs/api/storefront#identifying-bots-with-web-bot-auth) and follow the service's authentication requirements. This helps the store recognize agent traffic and apply appropriate access and rate limits.
- **Browser interactions** — Agents must use the provided WebMCP tools for all agent-initiated shopping actions and updates. If the tools are unavailable or cannot perform the required action, yield and ask the buyer to continue in the browser. Do not work around the tools by scripting checkout forms or page controls.
- **Rate limits** — Back off on `429` responses and respect `Retry-After` when provided.
- **Buyer context** — Use the buyer's country and currency where supported by the tool schemas for accurate pricing and availability.

## Read-only browsing

Prefer the structured information returned by the shopping tools described above. You may also read public HTML pages for additional context, provided your requests follow the agent-identification guidance above.

- Discover public URLs through `/sitemap.xml`.
- Read product pages at `/products/{handle}`.
- Browse collections at `/collections/all` or `/collections/{handle}`.
- Discover other public pages and articles through the sitemap.

Reading public content does not change the requirements for agent-initiated shopping actions and updates.


## Store Policies
- **Privacy policy**: https://www.moft.com/policies/privacy-policy
- **Terms of service**: https://www.moft.com/policies/terms-of-service
- **Refund policy**: https://www.moft.com/policies/refund-policy
- **Shipping policy**: https://www.moft.com/policies/shipping-policy


## Platform

This store is built on [Shopify](https://www.shopify.com), the commerce platform powering millions of stores worldwide. Shopify stores support UCP natively, enabling seamless agent-driven commerce. The Shop skill at
[https://shop.app/SKILL.md](https://shop.app/SKILL.md) works across every Shopify store — install it once and
your agent can transact everywhere.

- Start your own store: https://www.shopify.com/start
- Build and test against sample data: https://mock.shop (free mock Storefront GraphQL API, no store or auth needed)
- Shopify developer platform: https://shopify.dev
- Shop developer platform: https://shop.dev

- Agent discovery: this document (`/agents.md`) is the canonical agent-facing description of the store.
Speed among Shopify stores
The profile answered in 166 ms, faster than 63% of the Shopify stores we check.