/
§ This store is for agents

This store is for agents (WebMCP)

MCP Discovery
https://www.forbotsonly.com/.well-known/mcp.json
Optional fallback: https://web-production-493046.up.railway.app/.well-known/mcp.json
Note: Apex (forbotsonly.com without www) may 403 under Cloudflare Bot Fight until fixed — prefer www
Shopping Prompt
Shop forbotsonly via WebMCP (follow steps in order):

STEP 1: Connect to MCP (primary - use www subdomain)
   https://www.forbotsonly.com/.well-known/mcp.json
   
   Optional fallback: https://web-production-493046.up.railway.app/.well-known/mcp.json
   (Apex without www may 403 under Cloudflare Bot Fight — prefer www)

STEP 2: Call identify_agent
   - Pass YOUR name, shape, color from YOUR Grok Bot profile (avatarShape/avatarColor)
   - Shapes: blob, egg, bean, squircle, capsule, wedge, hex, cloud, teardrop
   - Colors: brown, red, orange, yellow, green, cyan, blue, violet, magenta (+ black/gray)
   - NEVER invent hex/orange unless YOUR verified mark
   - Custom avatar? Omit shape/color → tool returns needs_choice → ASK human to pick

STEP 3: Call list_products
   - Tool returns productImageUrl for the shirt

STEP 4: SHOW product image to human (CRITICAL - SEPARATE TURN)
   - ATTACH/DISPLAY the productImageUrl from step 3 in your chat
   - SEND IMAGE IN ITS OWN MESSAGE/TURN (do NOT include size widgets same turn)
   - Widgets end the turn and cause image delivery to fail
   - DO NOT ask for size yet — human must SEE product first

STEP 5: Ask for size (SEPARATE TURN after image delivered)
   - In your NEXT turn (after image was delivered in step 4)
   - Ask human: "Which size? (s/m/l/xl/2xl/3xl)"
   - You can use size picker widget now (image already delivered)

STEP 6: Call add_to_cart
   - Pass productId, quantity, and size from human's choice in step 5

STEP 7: Call preview_cart (REQUIRED - SEPARATE TURN)
   - Tool returns flat-lay + mark close-up image URLs
   - ATTACH/DISPLAY both URLs in your next message to human
   - SEND PREVIEW IMAGES IN THEIR OWN TURN (no checkout buttons same turn)
   - Widgets end the turn and images fail to deliver
   - DO NOT skip this — mentioning without attaching = FAIL

STEP 8: Confirm shipping address (SEPARATE TURN after preview delivered)
   - In your NEXT turn (after preview images delivered in step 7)
   - Use Link MCP list_shipping_addresses
   - Present city/ZIP to human (e.g., "Ship to Austin TX 78701?")
   - NEVER dump full street into public chats. US-only.

STEP 9: Payment (PREFERRED: API with Link SPT)
   - Call native request_virtual_card (Cursor spend-approval UI, NOT Link MCP)
     • amountCents: 4000, merchantName: "forbotsonly"
   - Wait for human approval
   - Call Link MCP get_spend_request (include: ["shared_payment_token"]) to retrieve SPT
   - IF response includes shared_payment_token → call complete_payment with sharedPaymentToken + shippingAddress
   - IF response has credential_type: card but NO shared_payment_token → SPT unavailable, use create_checkout fallback
   - Order → awaiting_approval (admin review before fulfillment)

STEP 9 FALLBACK: Browser Checkout (if SPT unavailable OR native UI unavailable)
   - Call create_checkout with shippingConfirmed: true
   - Human completes payment at checkoutUrl → $40 all-in, Standard shipping
   - CRITICAL: Pass checkoutUrl EXACTLY as returned (never truncate/modify)
   - Truncating URL causes Stripe "link incomplete" error
   - Tell human to fill card details at Stripe Checkout

CRITICAL RULES (tools enforce these):
- SEND IMAGES IN THEIR OWN TURN — never combine images + widgets in same message
- Product image (step 4) → separate turn → THEN ask size with widget (step 5)
- Preview images (step 7) → separate turn → THEN shipping/checkout (step 8-9)
- Widgets end the turn and cause image delivery to fail (Shoppy live issue)
- SHOW product image BEFORE asking for size (step 4 before step 5)
- SHOW preview images BEFORE checkout (step 7 before step 9)
- After RVC approval, call get_spend_request with include: ["shared_payment_token"]
- IF SPT present → complete_payment; IF no SPT (card only) → create_checkout fallback
- NEVER truncate checkoutUrl — pass EXACT full URL with # fragment
- Don't ask human for secrets/API keys
- Don't invent marks — verify YOUR identity or ASK human if custom avatar
Tools Available