Skip to content
Back to skills

Ucp Catalog

ASecurity

Implement the UCP Catalog capability (`dev.ucp.shopping.catalog`) — free-text product Search and identifier-based Lookup, the Product/Variant data model, media, ratings, and quantity units. Use when exposing product discovery to agents or consuming a business catalog before cart and checkout.

  • 39 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 22, 2026
ai-agentsgoexpressgit

Works with

  • cli
  • mcp

Security analysis

A100/100

Scanned September 22, 2026

npx -y skills add OrcaQubits/agentic-commerce-skills-plugins --skill ucp-catalog --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ucp Catalog?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ucp Catalog
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/orcaqubits-ucp-catalog/badge)](https://www.skillsdirectory.com/skills/orcaqubits-ucp-catalog)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ucp-catalog
description: >
  Implement the UCP Catalog capability (`dev.ucp.shopping.catalog`) — free-text
  product Search and identifier-based Lookup, the Product/Variant data model,
  media, ratings, and quantity units. Use when exposing product discovery to
  agents or consuming a business catalog before cart and checkout.
---

# UCP Catalog Capability

## Before writing code

**Fetch live spec**: Web-search `site:ucp.dev specification shopping catalog` and fetch the capability page plus its `search` and `lookup` operation pages. The Product/Variant schema and filter vocabulary evolve between spec versions — read the live schema before writing types.

## Conceptual Architecture

### What Catalog is for

Catalog is the **discovery** half of UCP, upstream of Cart and Checkout. It covers free-text product search, category and filter-based browsing, batch retrieval by identifier, and price comparison across variants. Without it, an agent can only transact against items it already knows the IDs for.

### Two operations

| Operation | Namespace | Purpose |
|-----------|-----------|---------|
| Search | `dev.ucp.shopping.catalog.search` | Locate products by query text and filters |
| Lookup | `dev.ucp.shopping.catalog.lookup` | Retrieve specific products or variants by identifier |

Search is for *finding*; Lookup is for *resolving*. An agent typically searches once and then looks up identifiers it has cached or received from elsewhere (a permalink, a previous cart).

### Product vs Variant — the distinction that matters

- **Product** — a sellable item: title, description, media, one or more variants, and an overall **price range**.
- **Variant** — the **transactional unit**: specific option selections (colour, size), its own price, and availability. Each variant has a unique ID, and **that ID is what goes into checkout**.

Never put a product ID into a line item. Products are for display; variants are for purchase.

### Supporting types

- **Price** — amount in **minor currency units** plus ISO 4217 code. Never a float.
- **Quantity Unit** — the sale basis: each, weight, length, time, with optional ordering granularity via increment values. A catalog selling cable by the metre and a catalog selling t-shirts are both expressible.
- **Selected Option** — chosen values for product options, which is what differentiates variants.
- **Media** — images, video, 3D models, with URLs and optional accessibility text.
- **Rating** — aggregate value, scale bounds, review count.

### Ordering and relevance

Responses are relevance-ordered: businesses return the **most relevant variant and image first**. An agent rendering a single thumbnail or picking a default variant should take element zero rather than applying its own heuristic.

### Messages

Responses carry an optional `messages` array for errors, warnings, and informational notices. Warnings with `presentation: "disclosure"` are **non-dismissible** — allergen statements, safety information, regulatory notices. A client must render these; treating them as dismissible toast is a compliance problem, not a UX choice.

### Bindings

Catalog is exposed over **REST** and **MCP** (JSON-RPC). Over MCP, search and lookup become tools an agent calls directly — see `ucp-checkout-mcp` for the binding conventions.

## Implementation Guidance

- Return variant-level availability, not just product-level; agents need to know *which* size is in stock.
- Price filters are denominated in the **context currency** — resolve context before applying them.
- Keep Lookup genuinely batch-capable; agents resolve many identifiers at once and N+1 lookups will dominate latency.
- Reference implementation: https://github.com/Universal-Commerce-Protocol/samples

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…