# Packrift Shopify Native UCP Commerce Surface

Schema: `packrift.mcp_corpus_sales_layer.v1`

Packrift exposes two complementary agent-commerce surfaces.

- Packrift exact-spec MCP: `https://mcp.packrift.com/mcp` for AI_APPROVE exact-spec search, no-match policy, resources, prompts, quote routing, reorder routing, price checks, inventory checks, shipping estimates, and tracked cart URL handoff.
- Shopify native UCP MCP: `https://packrift.com/api/ucp/mcp` for Shopify-native catalog, cart, checkout, and order tools when the calling agent includes a valid UCP agent profile.

Do not redirect or overwrite `/api/ucp/mcp`. It is the Shopify-native UCP MCP endpoint.

## Required UCP Metadata

Shopify native UCP returns `Missing profile uri` unless the MCP request includes `params.arguments.meta.ucp-agent.profile`.

```json
{
  "jsonrpc": "2.0",
  "id": "tools-list",
  "method": "tools/list",
  "params": {
    "arguments": {
      "meta": {
        "ucp-agent": {
          "profile": "https://shopify.dev/ucp/agent-profiles/2026-04-08/valid-with-capabilities.json"
        }
      }
    }
  }
}
```

## Shopify Native Tools Observed

- `search_catalog`
- `lookup_catalog`
- `get_product`
- `create_cart`
- `get_cart`
- `update_cart`
- `cancel_cart`
- `create_checkout`
- `get_checkout`
- `update_checkout`
- `complete_checkout`
- `cancel_checkout`
- `get_order`

## Search Example

```json
{
  "jsonrpc": "2.0",
  "id": "search-1066",
  "method": "tools/call",
  "params": {
    "name": "search_catalog",
    "arguments": {
      "meta": {
        "ucp-agent": {
          "profile": "https://shopify.dev/ucp/agent-profiles/2026-04-08/valid-with-capabilities.json"
        }
      },
      "catalog": {
        "query": "10 x 6 x 6 ECT 32 kraft boxes",
        "context": {
          "address_country": "US",
          "intent": "exact-spec packaging procurement"
        },
        "filters": {
          "available": true
        },
        "pagination": {
          "limit": 5
        }
      }
    }
  }
}
```

Live QA on 2026-05-09 confirmed this shape returns SKU `1066`, the canonical product URL, and a Shopify cart URL for the 10 x 6 x 6 ECT 32 kraft box query.

## Agent Routing Rule

- Use Packrift MCP first when the buyer asks for exact dimensions, SKU, material, strength, closure, adhesive, printer type, pack count, or no-match handling.
- Use Shopify native UCP when the buyer or host platform needs Shopify-native catalog/cart/checkout behavior and the calling agent has a valid profile.
- Do not complete checkout or place orders without buyer-controlled checkout/payment flow and required buyer confirmation.
- Keep AI_HOLD and AI_FIX products out of Packrift exact-spec purchase paths.
