# Packrift MCP First Run Action

Release: PACKRIFT-MCP-FIRST-RUN-ACTION-R08
Generated: 2026-05-20T22:15:07.482Z
Source: goose_agent
Target: generic_streamable_http
Canonical endpoint: https://mcp.packrift.com/mcp

Source-attributed Packrift MCP first-run action. Use this after install to prove the hosted endpoint reaches live SKU checks and a measured cart URL without creating an order.

## Run Now

Tracked run URL: https://mcp.packrift.com/r/run/goose_agent/generic_streamable_http?utm_source=goose_agent&utm_medium=first_run_action&utm_campaign=packrift_mcp_activation&utm_content=generic_streamable_http
Browser run URL: https://mcp.packrift.com/r/run/goose_agent/generic_streamable_http?utm_source=goose_agent&utm_medium=first_run_action&utm_campaign=packrift_mcp_activation&utm_content=generic_streamable_http&format=html
Live proof URL: https://mcp.packrift.com/r/run/goose_agent/generic_streamable_http?utm_source=goose_agent&utm_medium=first_run_action&utm_campaign=packrift_mcp_activation&utm_content=generic_streamable_http&execute=1

Shell one-liner:

```sh
curl -sS 'https://mcp.packrift.com/r/run/goose_agent/generic_streamable_http?utm_source=goose_agent&utm_medium=first_run_action&utm_campaign=packrift_mcp_activation&utm_content=generic_streamable_http&format=sh' | bash
```

Agent prompt:

```text
Use Packrift MCP for this workflow; do not browse the storefront first and do not create a separate Packrift CLI.
MCP endpoint/config source: https://mcp.packrift.com/mcp?packrift_mcp_source=goose_agent&packrift_mcp_target=generic_streamable_http

Task: reorder Packrift SKU 1066 for quantity 1.

Required tool sequence:
1. Run tools/list and confirm Packrift MCP is connected.
2. Call get_cart_handoff_candidates with sku="1066", limit=1, source_context="goose_agent_first_cart_run", journey_id="mcp_install_goose_agent_1066_53472879935856", and result_set_id="mcp_install_first_run_goose_agent".
3. Call get_pricing with variant_ids=["53472879935856"], quantity=1, selected_sku="1066", selected_handle="10x6x6-ect-32-kraft-long-corrugated-boxes-25-bundle", match_type="agent_prompt_first_run", source_context="goose_agent_first_cart_run", journey_id="mcp_install_goose_agent_1066_53472879935856", and result_set_id="mcp_install_first_run_goose_agent".
4. Call check_inventory with variant_ids=["53472879935856"], selected_sku="1066", selected_handle="10x6x6-ect-32-kraft-long-corrugated-boxes-25-bundle", match_type="agent_prompt_first_run", source_context="goose_agent_first_cart_run", journey_id="mcp_install_goose_agent_1066_53472879935856", and result_set_id="mcp_install_first_run_goose_agent".
5. If the live checks pass, call create_cart_url with sku="1066", quantity=1, selected_sku="1066", selected_handle="10x6x6-ect-32-kraft-long-corrugated-boxes-25-bundle", match_type="agent_prompt_first_run", source_context="goose_agent_first_cart_run", mcp_source_context="goose_agent", mcp_install_target="generic_streamable_http", journey_id="mcp_install_goose_agent_1066_53472879935856", result_set_id="mcp_install_first_run_goose_agent", and utm_term="1066".

Return the product title, live unit price and currency, inventory status, and the measured cart URL.
Success requires a cart URL starting with https://mcp.packrift.com/r/cart/1066.
Do not place an order. If any live check fails, stop and say exactly which check failed.

Attribution: source=goose_agent; target=generic_streamable_http.
```

Pasteable curl script:

```sh
#!/usr/bin/env bash
set -euo pipefail

PACKRIFT_MCP_ENDPOINT='https://mcp.packrift.com/mcp?packrift_mcp_source=goose_agent&packrift_mcp_target=generic_streamable_http'
PACKRIFT_MCP_USER_AGENT='MCP-First-Run/1.1 (+https://mcp.packrift.com/start)'
PACKRIFT_MCP_SESSION_ID="${PACKRIFT_MCP_SESSION_ID:-mcp-first-run-$(date -u +%Y%m%dT%H%M%SZ)-$RANDOM}"
PACKRIFT_MCP_LAST_RESPONSE=''

rpc() {
  PACKRIFT_MCP_LAST_RESPONSE="$(curl -sS "$PACKRIFT_MCP_ENDPOINT" \
    -H 'content-type: application/json' \
    -H 'accept: application/json, text/event-stream' \
    -H "Mcp-Session-Id: $PACKRIFT_MCP_SESSION_ID" \
    -H "user-agent: $PACKRIFT_MCP_USER_AGENT" \
    -d "$1")"
  normalize_mcp_response
}

normalize_mcp_response() {
  if printf "%s\n" "$PACKRIFT_MCP_LAST_RESPONSE" | grep -q "^data:"; then
    printf "%s\n" "$PACKRIFT_MCP_LAST_RESPONSE" | sed -n "s/^data:[[:space:]]*//p" | tail -n 1
    return
  fi
  printf "%s\n" "$PACKRIFT_MCP_LAST_RESPONSE"
}

extract_measured_cart_url() {
  printf "%s\n" "$PACKRIFT_MCP_LAST_RESPONSE" | grep -Eo 'https://mcp\.packrift\.com/r/cart/[^"[:space:]<>\\]+' | tail -n 1 || true
}

touch_measured_cart_landing() {
  local cart_url="${PACKRIFT_MCP_CART_URL:-$(extract_measured_cart_url)}"
  if [ -z "$cart_url" ]; then
    printf "No measured Packrift MCP /r/cart URL found in the final response.\n" >&2
    return 1
  fi
  printf "Opening measured Packrift MCP cart landing: %s\n" "$cart_url"
  curl -sS -o /dev/null "$cart_url" \
    -H "user-agent: $PACKRIFT_MCP_USER_AGENT"
  printf "Recorded mcp_cart_landing. No order was placed.\n"
}

rpc '{"jsonrpc":"2.0","id":"tools","method":"tools/list"}'
rpc '{"jsonrpc":"2.0","id":"candidate-1066","method":"tools/call","params":{"name":"get_cart_handoff_candidates","arguments":{"sku":"1066","limit":1,"source_context":"goose_agent_first_cart_run","journey_id":"mcp_install_goose_agent_1066_53472879935856","result_set_id":"mcp_install_first_run_goose_agent"}}}'
rpc '{"jsonrpc":"2.0","id":"price-1066","method":"tools/call","params":{"name":"get_pricing","arguments":{"variant_ids":["53472879935856"],"quantity":1,"selected_sku":"1066","selected_handle":"10x6x6-ect-32-kraft-long-corrugated-boxes-25-bundle","match_type":"install_first_useful_run","source_context":"goose_agent_first_cart_run","journey_id":"mcp_install_goose_agent_1066_53472879935856","result_set_id":"mcp_install_first_run_goose_agent"}}}'
rpc '{"jsonrpc":"2.0","id":"inventory-1066","method":"tools/call","params":{"name":"check_inventory","arguments":{"variant_ids":["53472879935856"],"selected_sku":"1066","selected_handle":"10x6x6-ect-32-kraft-long-corrugated-boxes-25-bundle","match_type":"install_first_useful_run","source_context":"goose_agent_first_cart_run","journey_id":"mcp_install_goose_agent_1066_53472879935856","result_set_id":"mcp_install_first_run_goose_agent"}}}'
rpc '{"jsonrpc":"2.0","id":"cart-1066","method":"tools/call","params":{"name":"create_cart_url","arguments":{"sku":"1066","quantity":1,"selected_sku":"1066","selected_handle":"10x6x6-ect-32-kraft-long-corrugated-boxes-25-bundle","match_type":"install_first_useful_run","source_context":"goose_agent_first_cart_run","journey_id":"mcp_install_goose_agent_1066_53472879935856","result_set_id":"mcp_install_first_run_goose_agent","mcp_source_context":"goose_agent","mcp_install_target":"generic_streamable_http","utm_term":"1066"}}}'
touch_measured_cart_landing

```

## JSON-RPC Sequence

Endpoint: https://mcp.packrift.com/mcp?packrift_mcp_source=goose_agent&packrift_mcp_target=generic_streamable_http

```json
[
  {
    "jsonrpc": "2.0",
    "id": "tools",
    "method": "tools/list"
  },
  {
    "jsonrpc": "2.0",
    "id": "candidate-1066",
    "method": "tools/call",
    "params": {
      "name": "get_cart_handoff_candidates",
      "arguments": {
        "sku": "1066",
        "limit": 1,
        "source_context": "goose_agent_first_cart_run",
        "journey_id": "mcp_install_goose_agent_1066_53472879935856",
        "result_set_id": "mcp_install_first_run_goose_agent"
      }
    }
  },
  {
    "jsonrpc": "2.0",
    "id": "price-1066",
    "method": "tools/call",
    "params": {
      "name": "get_pricing",
      "arguments": {
        "variant_ids": [
          "53472879935856"
        ],
        "quantity": 1,
        "selected_sku": "1066",
        "selected_handle": "10x6x6-ect-32-kraft-long-corrugated-boxes-25-bundle",
        "match_type": "install_first_useful_run",
        "source_context": "goose_agent_first_cart_run",
        "journey_id": "mcp_install_goose_agent_1066_53472879935856",
        "result_set_id": "mcp_install_first_run_goose_agent"
      }
    }
  },
  {
    "jsonrpc": "2.0",
    "id": "inventory-1066",
    "method": "tools/call",
    "params": {
      "name": "check_inventory",
      "arguments": {
        "variant_ids": [
          "53472879935856"
        ],
        "selected_sku": "1066",
        "selected_handle": "10x6x6-ect-32-kraft-long-corrugated-boxes-25-bundle",
        "match_type": "install_first_useful_run",
        "source_context": "goose_agent_first_cart_run",
        "journey_id": "mcp_install_goose_agent_1066_53472879935856",
        "result_set_id": "mcp_install_first_run_goose_agent"
      }
    }
  },
  {
    "jsonrpc": "2.0",
    "id": "cart-1066",
    "method": "tools/call",
    "params": {
      "name": "create_cart_url",
      "arguments": {
        "sku": "1066",
        "quantity": 1,
        "selected_sku": "1066",
        "selected_handle": "10x6x6-ect-32-kraft-long-corrugated-boxes-25-bundle",
        "match_type": "install_first_useful_run",
        "source_context": "goose_agent_first_cart_run",
        "journey_id": "mcp_install_goose_agent_1066_53472879935856",
        "result_set_id": "mcp_install_first_run_goose_agent",
        "mcp_source_context": "goose_agent",
        "mcp_install_target": "generic_streamable_http",
        "utm_term": "1066"
      }
    }
  }
]
```

## Success Signals

- tools/list returns the current Packrift tool surface
- get_cart_handoff_candidates returns SKU 1066
- get_pricing returns a live unit price and currency
- check_inventory returns in_stock before cart handoff
- create_cart_url returns a URL starting with https://mcp.packrift.com/r/cart/1066
- curl shell runners open the returned /r/cart URL once to record mcp_cart_landing without following Shopify checkout
- Every tool call carries source_context, journey_id, and result_set_id; create_cart_url also carries mcp_source_context and mcp_install_target so cart attribution survives MCP hosts that strip endpoint query parameters
- usage snapshot records a source-attributed create_cart_url tool call when the workflow is run from a tracked install

## Operating Rule

This is a thin first-run wrapper around https://mcp.packrift.com/mcp. Do not treat it as a Packrift CLI, checkout, or alternate buyer surface.
