UCP Score for 11cuts.com
91 out of 100, grade A: ready for UCP agents. The missing 9 points are spread across Discovery and Conformance. 2 spec breaks on the status page aren't counted in the score.
Discovery 85Conformance 88Capabilities 100release 2026-04-08
"capabilities": {
"dev.ucp.shopping.checkout": [...]
}
"payment_handlers": {
"com.google.pay": [...]
}
"version": "2026-08-25"
<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.
"ucp": {
"version": "2026-08-25",
...
},
"keys": [ ... ] // beside "ucp", not inside it
Set the version to 2026-08-25 and publish your public keys as a root-level "keys" list. The older "signing_keys" field is still accepted, but "keys" is the one every verifier reads.
<meta property="og:title" content="Yourstore | short tagline"> <meta property="og:type" content="website"> <meta property="og:url" content="https://yourstore.com/"> <meta property="og:description" content="One-sentence description of what you sell."> <meta property="og:image" content="https://yourstore.com/og-cover.jpg"> <meta property="og:site_name" content="Yourstore">
Add inside <head>. og:title and og:type are the minimum; og:url, og:description, and og:image are strongly recommended.
<meta name="viewport" content="width=device-width, initial-scale=1">
One line inside <head>. Modern frontend frameworks add this automatically; its absence usually means a hand-rolled or legacy template.
HTTPS, UCP profile reachable, AI bot access, llms.txt, sitemap.xmlShow
- 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
Profile passes schema validation, Protocol version present and well-formed, Public keys publishedShow
- Profile passes schema validation · No structural errors
- Protocol version present and well-formed · Version: 2026-04-08
- Public keys published · Keys published at the top level
Capabilities declared, Checkout capability, Transports declaredShow
- 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 · REST, MCP
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 11cuts.com publishes for agents beyond its UCP profile, from our weekly look. Only what we found is listed.
/.well-known/mcp.json/.well-known/ai-catalog.json/.well-known/mcp/server-card.json/auth.md/.well-known/mcp.json as served 9.4 KB
{"version":"1.0","protocolVersion":"2025-06-18","serverInfo":{"name":"storefront","title":"Storefront MCP","version":"1.0.0","description":"Browse products, manage carts, and initiate checkout for any Salla store via MCP tools and resources."},"transport":{"type":"streamable-http","endpoint":"https://11cuts.com/mcp"},"capabilities":{"tools":{"listChanged":false},"resources":{"listChanged":false,"subscribe":false},"logging":{}},"tools":[{"name":"catalog-brand-list","title":"List Brands","description":"List all store brands grouped by first character (Arabic or English alphabet). Returns a browsable brand directory.","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"type":"object","properties":{}}},{"name":"catalog-brand-retrieve","title":"Get Brand Details","description":"Retrieve full brand details by ID, including name, description, logo, banner, and SEO metadata.","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"type":"object","properties":{"brand_id":{"type":"string","description":"Brand ID to fetch"}},"required":["brand_id"]}},{"name":"catalog-category-list","title":"List Categories","description":"List store categories. Returns the root list by default, or direct children when parent_id is provided.","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"type":"object","properties":{"parent_id":{"type":"string","description":"If set, returns direct children of this category"}}}},{"name":"catalog-category-retrieve","title":"Get Category","description":"Retrieve a category by ID, including name, description, image, product count, and nested sub-categories.","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"type":"object","properties":{"category_id":{"type":"string","description":"Category ID to fetch"}},"required":["category_id"]}},{"name":"catalog-product-list","title":"Browse Products","description":"Browse and filter products from the store catalog. Supports 16 source types (latest, brands, categories, search, offers, etc.) with pagination.","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"type":"object","properties":{"source":{"type":"string","enum":["latest","brands","categories","search","offers","top-rated","recently","related","selected","tags","wishlist","sales","reorder","best_selling","json","landing-page"],"description":"Product source type"},"source_value":{"type":"string","description":"Source filter value (brand_id, category_id, keyword, etc.)"},"page":{"type":"integer","minimum":1,"description":"Page number"},"cursor":{"type":"string","description":"Cursor for pagination"},"per_page":{"type":"integer","minimum":1,"maximum":100,"description":"Items per page"},"sort":{"type":"string","description":"Sort option"},"filterable":{"type":"boolean","description":"Include filter facets"}},"required":["source"]}},{"name":"catalog-product-search","title":"Search Products","description":"Search products by keyword. Matches product names, descriptions, and SKUs.","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"type":"object","properties":{"keyword":{"type":"string","description":"Search keyword"},"page":{"type":"integer","minimum":1,"description":"Page number"},"cursor":{"type":"string","description":"Cursor for pagination"},"per_page":{"type":"integer","minimum":1,"maximum":100,"description":"Items per page"},"sort":{"type":"string","description":"Sort option"}},"required":["keyword"]}},{"name":"catalog-product-retrieve","title":"Get Product Details","description":"Retrieve full product details by ID, including images, videos, options, variants/SKUs with pricing, ratings, tags, and brand.","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"type":"object","properties":{"product_id":{"type":"string","description":"Product ID to fetch"}},"required":["product_id"]}},{"name":"checkout-generate","title":"Create Cart","description":"Create a new empty shopping cart. Returns cart_id and checkout_url.","readOnly":false,"destructive":false,"idempotent":false,"inputSchema":{"type":"object","properties":{"include_items":{"type":"boolean","description":"Include cart line items in response"},"source":{"type":"string","description":"Optional source identifier"}}}},{"name":"checkout-retrieve","title":"Get Cart","description":"Retrieve current cart contents including items, quantities, pricing, applied coupons, and the checkout URL.","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"type":"object","properties":{"cart_id":{"type":"string","description":"Cart ID"},"include_items":{"type":"boolean","default":true,"description":"Include cart line items"}},"required":["cart_id"]}},{"name":"checkout-proceed","title":"Proceed to Checkout","description":"Get the checkout URL to redirect the buyer to complete payment. Includes cart summary for confirmation.","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"type":"object","properties":{"cart_id":{"type":"string","description":"Cart ID to proceed with"}},"required":["cart_id"]}},{"name":"checkout-assign","title":"Assign Cart to Account","description":"Link a guest cart to the authenticated buyer's account.","readOnly":false,"destructive":false,"idempotent":false,"inputSchema":{"type":"object","properties":{"cart_id":{"type":"string","description":"Cart ID to assign"}},"required":["cart_id"]}},{"name":"checkout-coupon-apply","title":"Apply Discount Code","description":"Apply a coupon/discount code to the cart.","readOnly":false,"destructive":false,"idempotent":false,"inputSchema":{"type":"object","properties":{"cart_id":{"type":"string","description":"Cart ID"},"coupon":{"type":"string","maxLength":100,"description":"Coupon code to apply"},"payment_method":{"type":"string","description":"Optional payment method for coupon validation"}},"required":["cart_id","coupon"]}},{"name":"checkout-coupon-remove","title":"Remove Discount Code","description":"Remove the applied coupon from the cart.","readOnly":false,"destructive":false,"idempotent":true,"inputSchema":{"type":"object","properties":{"cart_id":{"type":"string","description":"Cart ID"}},"required":["cart_id"]}},{"name":"checkout-item-add","title":"Add to Cart","description":"Add a product to the shopping cart by id, variant_id, or sku. Returns the full updated cart.","readOnly":false,"destructive":false,"idempotent":false,"inputSchema":{"type":"object","properties":{"cart_id":{"type":"string","description":"Cart ID"},"identifier_type":{"type":"string","enum":["id","variant_id","sku"],"description":"How to identify the product"},"identifier":{"type":"string","description":"Product identifier value"},"quantity":{"type":"integer","minimum":1,"description":"Quantity to add"},"options":{"type":"array","items":{"type":"object"},"description":"Product options"},"notes":{"type":"string","description":"Notes for this cart item"},"amount":{"type":"number","description":"Custom price for flexible-amount products"},"bundle":{"type":"array","items":{"type":"object"},"description":"Bundle items"}},"required":["cart_id","identifier_type","identifier","quantity"]}},{"name":"checkout-item-update","title":"Update Cart Item","description":"Update a cart item's quantity or options by its internal cart item ID.","readOnly":false,"destructive":false,"idempotent":true,"inputSchema":{"type":"object","properties":{"cart_id":{"type":"string","description":"Cart ID"},"item_id":{"type":"string","description":"Internal cart item ID"},"quantity":{"type":"integer","minimum":1,"description":"New quantity"},"identifier_type":{"type":"string","enum":["id","variant_id","sku"],"description":"Product identifier type"},"identifier":{"type":"string","description":"Product identifier value"},"options":{"type":"array","items":{"type":"object"},"description":"Updated product options"},"notes":{"type":"string","description":"Updated notes"},"amount":{"type":"number","description":"Updated custom amount"},"bundle":{"type":"array","items":{"type":"object"},"description":"Updated bundle items"}},"required":["cart_id","item_id","quantity"]}},{"name":"checkout-item-remove","title":"Remove from Cart","description":"Remove an item from the cart by its internal cart item ID.","readOnly":false,"destructive":true,"idempotent":true,"inputSchema":{"type":"object","properties":{"cart_id":{"type":"string","description":"Cart ID"},"item_id":{"type":"string","description":"Internal cart item ID to remove"}},"required":["cart_id","item_id"]}}],"resources":[{"uri":"store://info","name":"store-info","description":"Store name, description, currency, and locale settings","templated":false},{"uri":"store://brands","name":"store-brands","description":"All store brands grouped by first character","templated":false},{"uri":"store://categories","name":"store-categories","description":"Root category tree with subcategory counts","templated":false},{"uri":"store://products/latest","name":"store-products-latest","description":"Latest products from the store catalog","templated":false},{"uri":"store://brands/{id}","name":"store-brand-detail","description":"Single brand with logo, banner, description, and SEO metadata","templated":true},{"uri":"store://categories/{id}","name":"store-category-detail","description":"Category with nested sub-categories and product count","templated":true},{"uri":"store://products/{id}","name":"store-product-detail","description":"Full product details including images, options, variants, and pricing","templated":true},{"uri":"store://cart/{id}","name":"store-cart","description":"Cart contents with items, totals, coupons, and checkout URL","templated":true}]}
/.well-known/ai-catalog.json as served 517 B
{"specVersion":"1.0","host":{"displayName":"11cuts.com","documentationUrl":"https://docs.salla.dev"},"entries":[{"identifier":"urn:air:salla:11cuts.com:storefront-mcp","displayName":"Storefront MCP","description":"Browse products, manage carts, and start checkout on this store via MCP tools.","type":"application/mcp-server-card+json","url":"https://11cuts.com/.well-known/mcp/server-card.json","representativeQueries":["Search this store for a product","Add this product to my cart","Start checkout for my cart"]}]}
/.well-known/mcp/server-card.json as served 498 B
{"$schema":"https://static.modelcontextprotocol.io/schemas/mcp-server-card/v1.json","version":"1.0","protocolVersion":"2025-06-18","serverInfo":{"name":"store","title":"Salla Store MCP Server","version":"1.0.0"},"description":"MCP server for managing shopping carts on a Salla store. Provides tools for cart generation, item management, and coupon application.","transport":{"type":"streamable-http","endpoint":"/mcp"},"capabilities":{"tools":{"listChanged":true},"logging":{}},"tools":["dynamic"]}
/auth.md as served 3.5 KB
# Salla auth.md
You are an agent. This service supports **OAuth 2.0 Authorization Code flow with PKCE (S256)** for agent registration and authentication: discover → authorize → authenticate → exchange → use → refresh → revoke. Follow the steps in order.
Examples use the base URL `https://accounts.salla.com`.
## Step 1 — Discover
Fetch the OAuth 2.0 Authorization Server metadata to learn all endpoints and capabilities:
```
GET https://accounts.salla.com/.well-known/oauth-authorization-server
```
The `agent_auth` block tells you:
- `skill` — the URL of this document.
- `register_uri` / `identity_endpoint` — where you begin the registration/authorization flow.
- `identity_types_supported` — this service uses `service_auth` (the user authenticates at the Salla Login Page).
- `service_auth.claim_uri` / `claim_endpoint` — where the user goes to authenticate.
- `revocation_uri` — where you POST to revoke a token.
You can also fetch Protected Resource Metadata from the resource server:
```
GET https://accounts.salla.com/.well-known/oauth-protected-resource/store/v1
```
## Step 2 — Register (Authorize with PKCE)
Generate a PKCE code pair:
1. Generate a random `code_verifier` (43–128 characters).
2. Compute `code_challenge = base64url(SHA256(code_verifier))`.
3. Use `code_challenge_method = S256`.
Then redirect the user to the authorization endpoint:
```
GET https://accounts.salla.com/oauth/authorize?
response_type=code
&client_id=salla-agent
&redirect_uri=<your-callback-uri>
&scope=openid profile offline_access
&state=<random-state>
&code_challenge=<your-code-challenge>
&code_challenge_method=S256
```
**Client registration:**
- Pre-configured public client: `salla-agent` (no secret required, PKCE is the sole authentication mechanism).
- Agents must provide a `redirect_uri` they control (e.g. `http://localhost:<port>/callback` for local agents). While PKCE protects the flow regardless of the redirect target, using a URI you own prevents token interception.
- Confidential clients (with secrets) are also supported if pre-registered.
## Step 3 — Authenticate and Exchange
The user authenticates on the Salla Login Page. After login, the browser redirects to your `redirect_uri` with `?code=<auth-code>&state=<your-state>`.
Exchange the authorization code for tokens:
```
POST https://accounts.salla.com/oauth/token
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
&code=<auth-code>
&redirect_uri=<your-callback-uri>
&client_id=salla-agent
&code_verifier=<your-code-verifier>
```
Response:
```json
{
"access_token": "<token>",
"token_type": "Bearer",
"expires_in": 604800,
"refresh_token": "<refresh-token>",
"iss": "https://accounts.salla.com"
}
```
## Step 4 — Use the access token
```
GET https://accounts.salla.com/store/v1/products
Authorization: Bearer <access_token>
```
## Step 5 — Refresh
```
POST https://accounts.salla.com/oauth/token
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token
&refresh_token=<refresh-token>
&client_id=salla-agent
```
## Revocation
```
POST https://accounts.salla.com/oauth/revoke
Content-Type: application/x-www-form-urlencoded
token=<access-or-refresh-token>
&client_id=salla-agent
```
Returns 200 with an empty body (RFC 7009).
## Introspection
```
POST https://accounts.salla.com/oauth/introspect
Content-Type: application/x-www-form-urlencoded
token=<access-token>
&client_id=salla-agent
```
Returns `{ "active": true, ... }` or `{ "active": false }`.
