buy-anything

0
0
Source

Purchase products from Amazon through conversational checkout. Use when user shares an Amazon product URL or says "buy", "order", or "purchase" with an Amazon link.

Install

mkdir -p .claude/skills/buy-anything && curl -L -o skill.zip "https://mcp.directory/api/skills/download/6153" && unzip -o skill.zip -d .claude/skills/buy-anything && rm skill.zip

Installs to .claude/skills/buy-anything

About this skill

Buy Anything

Purchase products from Amazon and Shopify stores through Rye checkout. Like having a personal shopper in your chat app.

When to Use

Activate this skill when the user:

  • Shares an Amazon product URL (amazon.com/dp/...)
  • Shares a Shopify store product URL (any *.myshopify.com or custom-domain Shopify store)
  • Says "buy", "order", or "purchase" with a product link
  • Wants to buy something from an online store

IMPORTANT: How This Works

  • DO NOT try to fetch the product URL yourself with web_fetch or read tools
  • The Rye API handles all product lookup - you just pass the URL
  • You don't need to know product details before checkout
  • Simply collect shipping address and set up the card, then call the API
  • The Rye API validates the URL and returns product details — if the URL is unsupported or invalid, the API will return an error

Checkout Flow

  1. User provides product URL - confirm you'll help them buy it
  2. Collect shipping address (or use saved address from memory)
  3. Set up card via BasisTheory (or use saved BT token from memory)
  4. Submit order to Rye API using bash (see Step 2)
  5. Show order confirmation from API response
  6. Save BT token/address to memory for future purchases (ask permission first)

Step 1: Secure Card Capture via BasisTheory

If the user does NOT have a saved BasisTheory token in memory, capture their card securely through the browser.

Try to open the card capture page in the user's browser:

open "https://mcp.rye.com/bt-card-capture" 2>/dev/null || xdg-open "https://mcp.rye.com/bt-card-capture" 2>/dev/null

If the command fails (e.g. unsupported platform), provide the URL as a clickable link instead: https://mcp.rye.com/bt-card-capture

Tell the user: "I've opened a secure card entry page in your browser. Please enter your card details there and click Submit. Your card info never touches this chat — it goes directly to BasisTheory's PCI-compliant vault. After submitting, copy the token shown on the page and paste it back here."

Wait for the user to paste the token (a UUID like d1ff0c32-...).

If the user already has a saved BT token in memory, skip this step entirely and use the saved token.

If a purchase fails with a CVC/CVV-related error (e.g. "Missing information", payment session issues), the saved token's CVC may have expired (BasisTheory clears CVC after 24 hours). Open the CVC refresh page:

open "https://mcp.rye.com/bt-cvc-refresh?token_id=SAVED_TOKEN_ID" 2>/dev/null || xdg-open "https://mcp.rye.com/bt-cvc-refresh?token_id=SAVED_TOKEN_ID" 2>/dev/null

If the command fails, provide the URL as a clickable link instead.

Tell the user: "Your saved card's security code has expired. I've opened a page to re-enter just your CVC — no need to re-enter the full card. Close the tab when done and I'll retry."

Then retry the purchase with the same saved token.

Step 2: Submit Order to Rye

The partner endpoint is authenticated by the partner path — no API key header is needed. Only requests to /partners/clawdbot/ are accepted.

curl -s -X POST https://api.rye.com/api/v1/partners/clawdbot/purchase \
  -H "Content-Type: application/json" \
  -d '{
    "productUrl": "https://www.example-store.com/products/cool-thing",
    "quantity": 1,
    "buyer": {
      "firstName": "John",
      "lastName": "Doe",
      "email": "john@example.com",
      "phone": "+14155551234",
      "address1": "123 Main St",
      "city": "San Francisco",
      "province": "CA",
      "postalCode": "94102",
      "country": "US"
    },
    "paymentMethod": {
      "type": "basis_theory_token",
      "basisTheoryToken": "d1ff0c32-..."
    },
    "constraints": {
      "maxTotalPrice": 50000
    }
  }'

constraints.maxTotalPrice: The user's spending limit in cents (e.g. $500 = 50000). The API will reject the order if the total exceeds this. If the user said "no limit", omit the constraints field entirely.

The POST response contains an id field (e.g. ci_abc123). Use this to poll for the order status.

Step 3: Poll for Order Status

After submitting the order, use the id from the POST response to poll for the final result:

curl -s https://api.rye.com/api/v1/partners/clawdbot/purchase/CHECKOUT_INTENT_ID

Replace CHECKOUT_INTENT_ID with the actual ID (e.g. ci_abc123).

Poll every 5 seconds until the state is a terminal state. The response state will be one of:

  • retrieving_offer — fetching product details and pricing (keep polling)
  • placing_order — order is being placed with the store (keep polling)
  • completed — order placed successfully (stop polling)
  • failed — order failed (stop polling)

When completed, show the user:

  • Product name from offer.product.title
  • Total from offer.cost.total (format as dollars, value is in cents)
  • Order ID from orderId (if present)

When failed, show failureReason.message to the user.

Pricing & Shipping

The API validates the store automatically. If an unsupported URL is submitted, the API will return an error — tell the user only Amazon and Shopify stores are supported.

  • Shopify stores: Standard store pricing — no markup from us
  • Amazon: 3% fee to cover transaction costs
  • Amazon orders under $15 have a $6.99 shipping charge
  • Amazon orders $15 and above get free 2-day Prime shipping
  • Amazon orders are processed through a 3rd party Amazon account (not the user's personal Amazon)
  • User will receive an email with confirmation and order details
  • For returns or refunds, direct the user to support@rye.com

Example Conversation

User: Buy this for me https://amazon.com/dp/B0DJLKV4N9

You: I'll help you buy that! Where should I ship it?
     (Need: name, address, city, state, zip, email, phone)

User: John Doe, 123 Main St, San Francisco CA 94102, john@example.com, +14155551234

You: Got it! What's your maximum purchase price? (I'll warn you if an order exceeds this)
     Say "no limit" to skip this.

User: $500

You: Max set to $500. I'm opening a secure card entry page in your browser now.
     Please enter your card details there — your card info never touches this chat.
     After submitting, copy the token shown on the page and paste it here.
     [Opens https://mcp.rye.com/bt-card-capture]

User: d1ff0c32-a1b2-4c3d-8e4f-567890abcdef

You: Got it! Submitting your order...
     [POST to purchase API with the BT token, gets back ci_abc123]

You: Order submitted! Waiting for confirmation...
     [Polls GET /purchase/ci_abc123 every 5 seconds]

You: Order confirmed!
     Product: Wireless Earbuds Pro
     Total: $358.44 (includes 3% service fee)
     Order ID: RYE-ABC123

     Would you like me to save your card token and address for faster checkout next time?

Spending Limit

Before the first purchase, ask the user what their maximum purchase price is. Store this in memory.

  • If an order total (including any fees) exceeds the limit, warn the user and ask for confirmation
  • User can say "no limit" to disable this check

Memory

Saved data is stored in the agent's local memory on the user's device only — it is not synced to the cloud or shared across devices.

After first successful purchase (with user permission):

  • Save the BasisTheory token ID to memory for future purchases (NOT raw card details — the token is an opaque ID that cannot be reversed into card numbers)
  • Save shipping address to memory
  • Save maximum purchase price to memory
  • On subsequent purchases, reuse the saved BT token directly — no card entry needed
  • Always confirm with the user before placing an order with a saved token
  • If the user asks to remove their saved card, tell them to ask you to forget the token from memory. To also revoke the token from BasisTheory's vault, direct them to contact support@rye.com

seedream-image-gen

openclaw

Generate images via Seedream API (doubao-seedream models). Synchronous generation.

2359

ffmpeg-cli

openclaw

Comprehensive video/audio processing with FFmpeg. Use for: (1) Video transcoding and format conversion, (2) Cutting and merging clips, (3) Audio extraction and manipulation, (4) Thumbnail and GIF generation, (5) Resolution scaling and quality adjustment, (6) Adding subtitles or watermarks, (7) Speed adjustment (slow/fast motion), (8) Color correction and filters.

6623

context-optimizer

openclaw

Advanced context management with auto-compaction and dynamic context optimization for DeepSeek's 64k context window. Features intelligent compaction (merging, summarizing, extracting), query-aware relevance scoring, and hierarchical memory system with context archive. Logs optimization events to chat.

3622

a-stock-analysis

openclaw

A股实时行情与分时量能分析。获取沪深股票实时价格、涨跌、成交量,分析分时量能分布(早盘/尾盘放量)、主力动向(抢筹/出货信号)、涨停封单。支持持仓管理和盈亏分析。Use when: (1) 查询A股实时行情, (2) 分析主力资金动向, (3) 查看分时成交量分布, (4) 管理股票持仓, (5) 分析持仓盈亏。

9121

himalaya

openclaw

CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).

7921

garmin-connect

openclaw

Syncs daily health and fitness data from Garmin Connect into markdown files. Provides sleep, activity, heart rate, stress, body battery, HRV, SpO2, and weight data.

7321

You might also like

flutter-development

aj-geddes

Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.

643969

drawio-diagrams-enhanced

jgtolentino

Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.

591705

ui-ux-pro-max

nextlevelbuilder

"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."

318398

godot

bfollington

This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.

339397

nano-banana-pro

garg-aayush

Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.

451339

fastapi-templates

wshobson

Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.

304231

Stay ahead of the MCP ecosystem

Get weekly updates on new skills and servers.