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 siteWhat 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.