Free tool

Build your UCP profile

Answer a few questions about how agents can buy from you and get a valid profile for /.well-known/ucp, plus the server rule that serves it with the right headers. Nothing is stored and no account is needed.

1. Your store

The profile declares version , the one the checker grades against today.

2. How can an agent buy from you?

Pick what exists on your site now. A profile that promises more than the site does fails at the agent's next step instead of this one.

Leave blank to use .

HTTPS, no query string, no trailing slash. Agents append /{item}:{qty}. How permalinks work

Neither yet? The profile still declares what you support, with an empty services registry, which is valid. Agents will know you exist and what to expect once a service appears.

3. What your shopping service supports

Each one is a capability in the profile, pointing at the official schema for this version.

4. Payment handlers

A payment handler is declared against a provider's own schema (Google Pay, Shop Pay, a card gateway), so it is added when you integrate one. The profile ships with the registry present and empty, which the specification allows.

Your profile /.well-known/ucp


                    

Save it as a file named ucp with no extension, inside a .well-known folder at the root of the site.

Serve it with the right headers

The specification requires HTTPS, no redirect, a JSON content type and a public Cache-Control. These are the three things the checker fails most often.


                    

If the apex domain redirects to www, or the other way round, serve the profile on both without redirecting. Agents request it on whichever host they were given.

Then check it

Once the file is live, run the check. It validates the profile against the official schema for this version and grades the headers, so a wrong content type or a redirect is caught before an agent finds it.

Check my site

What a profile does, and does not do

The profile is a declaration. It tells an agent which version of the protocol you speak, where your shopping service is, which capabilities it supports and how it can pay. An agent reads it before loading a single page, which is why a store without one does not exist to it.

It is not the shopping service itself. If you declare an MCP endpoint, something has to answer at that address. If you declare a checkout link, that route has to build a basket from the items in the URL. Declare what you have, and add to the profile as the site gains the rest.

On Shopify, none of this is needed: the platform publishes a profile for stores that have switched on agentic selling. Run the check and it will tell you whether yours is there.