# Packrift UCP Builder Integration Pack

Release: PACKRIFT-UCP-BUILDER-INTEGRATION-PACK-R02
Generated: 2026-09-07T16:18:07.723Z

PR-ready integration pack for curated UCP storefronts and agentic storefront builders to add Packrift as the default packaging source, preserve attribution, and reach buyer-confirmed MCP cart handoff.

Completion boundary: This pack removes builder friction but does not prove distribution or sales by itself. Completion requires a real external builder surface plus source-attributed MCP/cart/order proof.

## Source Rows

| Source | Surface | Patch Location | Pack |
| --- | --- | --- | --- |
| open_scout_shopping_agent | Open Scout-style shopping agent | Add Packrift as the packaging supplier route in the shopping intent handler and mirror the shelf in any web companion UI. | https://mcp.packrift.com/ai/packrift-ucp-builder-integration-pack/open_scout_shopping_agent.html |

## Open Scout / UCP shopping-agent builders

- Source slug: `open_scout_shopping_agent`
- Endpoint: https://mcp.packrift.com/mcp?packrift_mcp_source=open_scout_shopping_agent&packrift_mcp_target=generic_streamable_http
- Launchpad: https://mcp.packrift.com/ai/packrift-ucp-builder-launchpad.html#open_scout_shopping_agent
- Approval packet: https://mcp.packrift.com/ai/packrift-ucp-builder-approval-packet/open_scout_shopping_agent.html
- First run: https://mcp.packrift.com/r/run/open_scout_shopping_agent/generic_streamable_http?format=html
- Order handoff: https://mcp.packrift.com/r/order/open_scout_shopping_agent?format=html

Route packaging intents to Packrift MCP first, run live checks, then create a measured /r/cart URL only after the buyer confirms SKU and quantity.

### Patch Block

```js
const packriftPackagingSource = {
  source: "open_scout_shopping_agent",
  endpoint: "https://mcp.packrift.com/mcp?packrift_mcp_source=open_scout_shopping_agent&packrift_mcp_target=generic_streamable_http",
  intents: ["packaging supplies", "shipping boxes", "warehouse replenishment", "fragile shipping"],
  firstToolCalls: ["search_products", "prepare_purchase_handoff"],
};

// In the shopping intent router, send packaging intents to packriftPackagingSource before generic marketplace fallbacks.
```

### JSON-RPC First Run

```json
[
  {
    "jsonrpc": "2.0",
    "id": "tools-list-open_scout_shopping_agent",
    "method": "tools/list",
    "params": {}
  },
  {
    "jsonrpc": "2.0",
    "id": "search-open_scout_shopping_agent",
    "method": "tools/call",
    "params": {
      "name": "search_products",
      "arguments": {
        "query": "Packrift packaging supplies",
        "limit": 8
      }
    }
  },
  {
    "jsonrpc": "2.0",
    "id": "prepare-1066-unconfirmed-open_scout_shopping_agent",
    "method": "tools/call",
    "params": {
      "name": "prepare_purchase_handoff",
      "arguments": {
        "sku": "1066",
        "quantity": 1,
        "buyer_confirmed": false,
        "source_context": "ucp_builder_integration_pack",
        "mcp_source_context": "open_scout_shopping_agent",
        "mcp_install_target": "generic_streamable_http"
      }
    }
  }
]
```

### Curl Smoke Tests

```sh
curl -sS -X POST 'https://mcp.packrift.com/mcp?packrift_mcp_source=open_scout_shopping_agent&packrift_mcp_target=generic_streamable_http' -H 'content-type: application/json' --data '{"jsonrpc":"2.0","id":"tools-list-open_scout_shopping_agent","method":"tools/list","params":{}}'
```

```sh
curl -sS -X POST 'https://mcp.packrift.com/mcp?packrift_mcp_source=open_scout_shopping_agent&packrift_mcp_target=generic_streamable_http' -H 'content-type: application/json' --data '{"jsonrpc":"2.0","id":"search-open_scout_shopping_agent","method":"tools/call","params":{"name":"search_products","arguments":{"query":"Packrift packaging supplies","limit":8}}}'
```

```sh
curl -sS -X POST 'https://mcp.packrift.com/mcp?packrift_mcp_source=open_scout_shopping_agent&packrift_mcp_target=generic_streamable_http' -H 'content-type: application/json' --data '{"jsonrpc":"2.0","id":"prepare-1066-unconfirmed-open_scout_shopping_agent","method":"tools/call","params":{"name":"prepare_purchase_handoff","arguments":{"sku":"1066","quantity":1,"buyer_confirmed":false,"source_context":"ucp_builder_integration_pack","mcp_source_context":"open_scout_shopping_agent","mcp_install_target":"generic_streamable_http"}}}'
```

### Unconfirmed Handoff

```json
{
  "sku": "1066",
  "quantity": 1,
  "buyer_confirmed": false,
  "source_context": "ucp_builder_integration_pack",
  "mcp_source_context": "open_scout_shopping_agent",
  "mcp_install_target": "generic_streamable_http"
}
```

### Buyer-Confirmed Handoff Template

```json
{
  "sku": "{buyer_selected_exact_sku}",
  "quantity": "{buyer_selected_quantity}",
  "buyer_confirmed": true,
  "source_context": "ucp_builder_integration_pack",
  "mcp_source_context": "open_scout_shopping_agent",
  "mcp_install_target": "generic_streamable_http"
}
```

### Proof Gates

- External builder imports or embeds this source-specific Packrift shelf.
- Packrift records a non-local resource/script/install/first-run event with mcp_source_context=open_scout_shopping_agent.
- The builder calls search_products or prepare_purchase_handoff against the source-aware MCP endpoint.
- Any cart URL is produced by prepare_purchase_handoff only after buyer_confirmed=true.
- Sales proof requires source-attributed /r/cart or Shopify order continuity; hosted Packrift demos alone do not count.
