UCP Profile Generator
Build the JSON manifest AI shopping agents read at /.well-known/ucp.
Your details
Your UCP profile (ucp.json)
{
"ucp": {
"version": "2026-04-08",
"services": {
"dev.ucp.shopping": [
{
"version": "2026-04-08",
"spec": "https://ucp.dev/2026-04-08/specification/overview",
"transport": "mcp",
"endpoint": "https://yourstore.com/ucp/mcp",
"schema": "https://ucp.dev/2026-04-08/services/shopping/mcp.openrpc.json"
}
]
},
"capabilities": {
"dev.ucp.shopping.catalog.search": [
{
"version": "2026-04-08",
"spec": "https://ucp.dev/2026-04-08/specification/catalog-search",
"schema": "https://ucp.dev/2026-04-08/schemas/shopping/catalog-search.json"
}
],
"dev.ucp.shopping.catalog.lookup": [
{
"version": "2026-04-08",
"spec": "https://ucp.dev/2026-04-08/specification/catalog-lookup",
"schema": "https://ucp.dev/2026-04-08/schemas/shopping/catalog-lookup.json"
}
]
},
"payment_handlers": {}
}
}We've directly verified the checkout and fulfillment spec/schema URLs against UCP's docs. The others follow the same naming pattern but haven't been directly confirmed: check them against ucp.dev before publishing.
Shopify can't serve a file at /.well-known/ucp directly from a theme; use an app, an app proxy or an edge rule. WooCommerce/WordPress sites can upload it straight to their site root.
What goes in the file
A UCP profile is a JSON object under a top-level ucp key. Pick which capabilities your store (or the app behind it) actually supports, add the endpoint your agent-facing API listens on, and this builds the manifest in the exact shape UCP expects: a services map naming the transport (REST or MCP) and endpoint, and a capabilities map naming each feature with its spec and schema URLs.
Most independent stores don't have their own agent checkout API yet. If that's you, use this to declare catalog search and catalog lookup only (so agents can read your products) and leave checkout out until you have a UCP-compliant order API to point it at, whether that's a future Shopify or WooCommerce integration or one you build.
| Capability | What it lets an agent do |
|---|---|
| Catalog search | Search your product catalog by keyword or filter |
| Catalog lookup | Look up a specific product by ID |
| Cart | Add and update items in a cart before checkout |
| Checkout | Complete a purchase |
| Fulfillment | Read shipping and delivery options |
| Order | Get order status updates |
Publishing the file
- 01
Shopify
Shopify themes can't serve a file at an arbitrary path like /.well-known/ucp; only files under known asset routes. Serve it with a small app, an App Proxy, or an edge rule (a Cloudflare Worker or similar) in front of your storefront that returns this JSON at that exact path with
Content-Type: application/json. - 02
WooCommerce / WordPress
Upload the file to your site's document root as
.well-known/ucp(no extension) over SFTP, or add a rewrite rule with a plugin such as WPCode that serves this JSON when that path is requested. - 03
Verify it
Run the UCP Checker against your domain once it's live.
This generator only builds the manifest, not the API behind it. endpoint should point at your own agent-facing checkout or catalog service; a manifest that lists an endpoint you haven't built yet will fail for any agent that tries to use it.
Questions people ask
Do the spec and schema URLs need to be my own?
No. Those point at UCP's own published specification and JSON Schema files for that capability version, the same for every business. We've only directly confirmed the checkout and fulfillment URLs against UCP's docs, so double-check any others against ucp.dev before publishing.
What transport should I pick, REST or MCP?
MCP (Model Context Protocol) is built for AI agents specifically; REST is a conventional HTTP API. Pick whichever matches the API you (or your commerce platform) actually expose. You can list both.
Can I add payment handlers?
There's an optional field for a payment handler's JSON config, but this needs details from your payment processor's UCP integration, which most don't publish yet. Leave it out until you have that.
Do I need to sign the file?
UCP profiles can optionally list signing_keys for signed webhooks, generated by your backend. That's outside what a static generator can produce; skip it unless your integration calls for it.
Related tools
Last reviewed 30 September 2026.
Sources: UCP specification, Overview (2026-04-08) · UCP specification, Core Concepts · Google: UCP profile guide
