UCP Checker

The UCP Checker & Validator
for agentic commerce

Check any store's Universal Commerce Protocol readiness, validate profiles against the spec, and see what a UCP agent finds when it reads your store's UCP profile.

Free, read-only, no account. Not live yet? Paste the profile into the validator.

About 20,000 stores in our directory publish a valid UCP profile. Checked against release 2026-08-25. Browse the directory

Every store gets a score.

A score from 0 to 100 for how well your store's UCP profile follows the spec and what it lets a UCP agent do: three weighted parts in one number, with the fixes that raise it.

The live state of the UCP market

We check about 25,000 stores: a public record of who publishes a UCP profile and how well it follows the spec. The methodology is public.

91%of scored stores are grade A
90average UCP Score
58%of valid profiles are on 2026-08-25
69%of profiles answer in under 200 ms
Releases in valid profilesEvery release and what changed

We don't just read the profile. We test what an agent actually does.

Most checks stop at the profile. We look at both sides: what a store declares, and what happened when an agent used it in our runs. Where the two differ is what's worth fixing.

UCP Checker reads

What the store declares

"ucp": {
  "version": "2026-08-25",
  "services": { "dev.ucp.shopping": [ mcp, rest ] },
  "capabilities": { "…checkout": […], "…cart": […] }
}

Fetched from /.well-known/ucp and validated against the release it names, across every store we check.

UCP Playground runs

What an agent could do

  • search_cataloganswered
  • get_productanswered
  • create_cartanswered
  • create_checkouthanded to the buyer

A real model shops the store over UCP. Open UCP Playground ↗

The protocol agents use to shop

The Universal Commerce Protocol turns a store into something an agent can read and use: find products, build a cart, check out. UCP Checker reads about 25,000 stores, so you can see what works, what breaks, and what's next.

One JSON file at /.well-known/ucp

A store publishes one UCP profile: its services, capabilities, transports and payment handlers. The guide

Read first by UCP agents

A UCP agent fetches the profile before anything else to learn what the store offers and how to buy from it. Without one, it has nothing to go on.

Compliance is not binary

A profile can parse and still not work. We look at conformance, capability coverage and response time, not just whether the file is valid JSON.

An agent shopping our sandbox store over UCP, end to end. The requests and answers are recorded from the store.

Everything you need to ship UCP

From the first check to a test with a real agent: free tools for your whole UCP surface.

From a URL to a status page in three steps

No SDK, no code changes. Enter a domain and UCP Checker fetches, validates and publishes what it found.

  1. Step 1

    We fetch your profile

    We request /.well-known/ucp the way an agent would, with TLS checks and a short timeout, and read robots.txt for which bots it lets in.

  2. Step 2

    We validate it against the spec

    Against the release your profile declares: required fields, capabilities, transports and payment handlers, then we call the endpoints it names.

  3. Step 3

    We publish the result

    Your store gets a status page and a score page with what to fix, and the result counts towards the public stats.

See agentic readiness on every store you visit

A free Chrome extension that reads /.well-known/ucp on the store you're on: its release, capabilities, payment handlers and ways in, and which bots its robots.txt lets in.

  • Green dot: the store publishes a valid UCP profile.
  • Reads only /.well-known/ucp and robots.txt, never your cookies, history or the page.
  • Share what it finds: sends the store's domain and its UCP profile to UCP Checker, nothing about you.

What a store's catalogue tells an agent

The Catalog Validator searches a store over UCP, looks each product up again, and checks every field against the spec: prices, variants, availability, images. Here it is on our sandbox flower shop.

Run the Catalog Validator

search_catalog "roses", 3 of 24 shownMCP · 702ms

bouquet_roses as the agent received it

{
  "id": "bouquet_roses",
  "title": "Bouquet of Red Roses",
  "description": {
    "plain": "A classic dozen of long-stem red roses."
  },
  "handle": "bouquet_roses",
  "url": "https://flowers.ucpsandbox.com/products/bouquet_roses",
  "price_range": {
    "min": {
      "amount": 3500,
      "currency": "USD"
    },
    "max": {
      "amount": 3500,
      "currency": "USD"
    }
  },
  "categories": [
    {
      "value": "Bouquets"
    }
  ],
  "tags": [
    "roses",
    "red",
    "classic",
    "romance"
  ],
  "variants": [
    {
      "id": "bouquet_roses",
      "title": "Bouquet of Red Roses",
      "description": {
        "plain": "A classic dozen of long-stem red roses."
      },
      "sku": "BOUQUET_ROSES",
      "url": "https://flowers.ucpsandbox.com/products/bouquet_roses",
      "price": {
        "amount": 3500,
        "currency": "USD"
      },
      "availability": {
        "available": true,
        "status": "in_stock"
      },
      "media": [
        {
          "type": "image",
          "url": "https://flowers.ucpsandbox.com/images/flowers/bouquet_roses.webp",
          "alt_text": "Bouquet of Red Roses"
        }
      ],
      "fulfillment": {
        "methods": [
          {
            "type": "shipping",
            "availability": {
              "available": true
            }
          },
          {
            "type": "pickup",
            "description": {
              "plain": "Free. Collect from one of our shops, usually ready within two hours of opening."
            },
            "availability": {
              "available": true
            }
          }
        ]
      }
    }
  ],
  "media": [
    {
      "type": "image",
      "url": "https://flowers.ucpsandbox.com/images/flowers/bouquet_roses.webp",
      "alt_text": "Bouquet of Red Roses",
      "width": 600,
      "height": 600
    }
  ]
}
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "search_catalog",
    "arguments": {
      "meta": {
        "ucp-agent": {
          "profile": "https://ucpchecker.com/.well-known/ucp"
        }
      },
      "catalog": {
        "query": "roses"
      }
    }
  }
}
200 · MCP tools/call

{
  "ucp": {
    "version": "2026-08-25",
    "capabilities": {
      "dev.ucp.shopping.catalog.search": [
        {
          "version": "2026-08-25"
        }
      ],
      "dev.ucp.shopping.catalog.lookup": [
        {
          "version": "2026-08-25"
        }
      ],
      "dev.ucp.shopping.fulfillment": [
        {
          "version": "2026-08-25"
        }
      ]
    }
  },
  "products": [
    "bouquet_roses · Bouquet of Red Roses",
    "bouquet_pink_roses · Pink Roses Bouquet",
    "preserved_roses_box · Preserved Roses Box",
    "arr_hatbox_roses · Roses in a Hat Box",
    "bouquet_white_roses · White Roses Bouquet",
    "bouquet_yellow_roses · Yellow Roses Bouquet",
    "plant_rose_bush · Potted Rose Bush",
    "arr_buttonhole · Rose Buttonhole",
    "set_anniversary_red · Anniversary Reds",
    "set_valentines_dozen · Valentine's Dozen",
    "arr_vase_white · All-White Vase Arrangement",
    "set_birthday_bright · Birthday Brights",
    "arr_bridal_bouquet · Bridal Bouquet",
    "arr_bridesmaid · Bridesmaid Bouquet",
    "set_christmas_table · Christmas Table Centre",
    "arr_flower_crown · Flower Crown",
    "arr_table_runner · Foliage Table Runner",
    "arr_hatbox_mixed · Garden Hat Box",
    "plant_herb_box · Kitchen Herb Box",
    "bouquet_lisianthus · Lisianthus Bouquet",
    "arr_low_table · Low Table Centrepiece",
    "set_new_baby_blue · New Baby, Blue",
    "set_new_baby_pink · New Baby, Pink",
    "arr_sympathy_heart · Sympathy Heart"
  ],
  "pagination": {
    "has_next_page": true,
    "cursor": "24",
    "total_count": 27
  }
}

flowers.ucpsandbox.com24 products checked

32pass
1to improve
0fail
Every product has a formatted (HTML) description24 products give plain text only. Agents that show rich text have nothing to format.
Reads
description.html
Found
{ "plain": "A classic dozen of long-stem red roses." }
Across
0 of 24 products
  • Every price has an amount and a currency, in cents
    Reads
    variants[].price
    Found
    { "amount": 3500, "currency": "USD" }
    Across
    32 of 32 variants
  • Every variant gives an availability status
    Reads
    variants[].availability.status
    Found
    "in_stock"
    Across
    32 of 32 variants
  • Variant prices sit inside the product's price range
    Reads
    price_range.min ≤ variants[].price ≤ price_range.max
    Found
    3500 ≤ 3500 ≤ 3500
    Across
    32 of 32 variants
  • Every product has at least one image, with a type and URL
    Reads
    media[].type, media[].url
    Found
    "image", https://flowers.ucpsandbox.com/images/flowers/bouquet_roses.webp
    Across
    24 of 24 products
  • Looking a product up by its id returns the same product
    Reads
    lookup_catalog { ids: ["bouquet_roses"] }
    Found
    same id, title, prices and media; lookup adds inputs[] as the spec says
    Across
    1 lookup
  • The same search returns the same products
    Reads
    search_catalog { query: "roses" }, twice
    Found
    the same 24 ids in the same order
    Across
    2 searches

and 26 more checks, each with the field it reads. Run them on a store

Get the agentic commerce digest every Monday

What changed in the spec and across the stores we check, in one short email. See a sample

Latest from the UCP Checker blog

All posts

Questions about UCP Checker

What is a UCP checker?
A tool that fetches a store's UCP profile at /.well-known/ucp, validates it against the Universal Commerce Protocol release it declares, and shows what an agent could do there. UCP Checker also calls the endpoints the profile names and publishes the result on a status page.
What is the Universal Commerce Protocol?
An open standard that lets an agent find out what a store offers and buy from it: search the catalogue, build a cart, check out and pay. A store describes all of this in one JSON file, its UCP profile. How UCP works
How is the UCP Score worked out?
Three parts in one number from 0 to 100: Discovery (30%), Conformance (40%) and Capability (30%). Grade A is 85 or more. The methodology has every rule.
What is the difference between the UCP Checker and the UCP Validator?
The checker starts from a domain: it fetches the live profile, calls the endpoints it names and publishes a status page. The UCP Validator starts from a profile you paste, so you can test one before it goes live, against any release. The Catalog Validator checks what catalogue search and lookup return.
How do I publish a UCP profile for my store?
Many store platforms publish one for you once UCP is switched on; the platforms page shows which. Otherwise you serve one JSON file at /.well-known/ucp; the /.well-known/ucp guide walks through every field. Then check your store here.
Which UCP release do you check against?
The one your profile declares, with that release's rules. The latest is 2026-08-25. The UCP Validator checks a pasted profile against any release.
What does Verified mean?
The store publishes a UCP profile that passes against its release, and we could reach it. Verified stores can show the status badge.
Is UCP Checker free?
Yes. Checks, status pages, the validators and the badges are free, with no account.