← WebMCP Directory

Tool tree

web-production-493046.up.railway.app

CommerceTools verified
Website
forbotsonly
Explore capabilities
    identify_agentAction

    STEP 1: REQUIRED FIRST STEP before shopping. Pass YOUR profile avatarShape + avatarColor from YOUR Grok Bot character picker exactly (wedge, green, hex, magenta, bean, cyan, etc.). NEVER invent or default to hex/orange. If you have a custom/uploaded avatar (no standard mark), omit shape and/or color and this tool will return mark options for you to present to your human - DO NOT silently randomize. NEXT STEP after calling this: Call list_products to browse, then SHOW product imagery (shirt photo) to your human BEFORE asking which size they want.

    View tool JSON
    {
      "name": "identify_agent",
      "kind": "act",
      "impl": "imperative",
      "description": "STEP 1: REQUIRED FIRST STEP before shopping. Pass YOUR profile avatarShape + avatarColor from YOUR Grok Bot character picker exactly (wedge, green, hex, magenta, bean, cyan, etc.). NEVER invent or default to hex/orange. If you have a custom/uploaded avatar (no standard mark), omit shape and/or color and this tool will return mark options for you to present to your human - DO NOT silently randomize. NEXT STEP after calling this: Call list_products to browse, then SHOW product imagery (shirt photo) to your human BEFORE asking which size they want.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Your agent name from your profile. Examples: \"Grok Bot\", \"Chief of Staff\", \"Shopping Bot\""
          },
          "shape": {
            "type": "string",
            "description": "Your mark shape from your Grok Bot character profile (avatarShape). REQUIRED if standard mark. Pass exact profile value (wedge, hex, bean, etc.). Omit if you have a custom avatar - the tool will return options to present to your human. Pack names (rounded-triangle, hexagon, circle) accepted as aliases.",
            "enum": [
              "blob",
              "pebble",
              "bean",
              "egg",
              "squircle",
              "tablet",
              "capsule",
              "cylinder",
              "hex",
              "gem",
              "crystal",
              "wedge",
              "shield",
              "dome",
              "arch",
              "cloud",
              "teardrop",
              "leaf",
              "circle",
              "vertical-oval",
              "rounded-square",
              "horizontal-pill",
              "rounded-triangle",
              "hexagon"
            ]
          },
          "color": {
            "type": "string",
            "description": "Your mark color from your Grok Bot character profile (avatarColor). REQUIRED if standard mark. Pass exact profile value (green, magenta, yellow, etc.). Omit if you have a custom avatar - the tool will return options to present to your human. Pack names (light-green, hot-pink, gold) accepted as aliases.",
            "enum": [
              "brown",
              "red",
              "orange",
              "yellow",
              "green",
              "cyan",
              "blue",
              "violet",
              "magenta",
              "black",
              "gray",
              "light-green",
              "teal",
              "purple",
              "pink",
              "hot-pink",
              "gold",
              "grey"
            ]
          }
        },
        "required": [
          "name"
        ]
      }
    }
    list_productsAnswer

    STEP 2: List all available products with images. Returns product details including imageUrl/productImageUrl that matches YOUR session identity mark (shape+color from identify_agent). You MUST ATTACH/SHOW this image to your human BEFORE asking which size they want. CRITICAL: Send the product image in its OWN message/turn, then ask for size in your NEXT turn. DO NOT combine image + size widget in same turn (widgets end the turn and images fail to deliver). Returns available mark options (shapes and colors).

    View tool JSON
    {
      "name": "list_products",
      "kind": "answer",
      "impl": "imperative",
      "description": "STEP 2: List all available products with images. Returns product details including imageUrl/productImageUrl that matches YOUR session identity mark (shape+color from identify_agent). You MUST ATTACH/SHOW this image to your human BEFORE asking which size they want. CRITICAL: Send the product image in its OWN message/turn, then ask for size in your NEXT turn. DO NOT combine image + size widget in same turn (widgets end the turn and images fail to deliver). Returns available mark options (shapes and colors).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "description": "Optional: Session ID from identify_agent. Use this if your connector does not reliably forward Mcp-Session-Id headers between calls."
          }
        }
      }
    }
    get_productAnswer

    Get detailed information about a specific product by ID including image URL that matches YOUR session identity mark (shape+color from identify_agent). IMPORTANT: After calling this, you MUST SHOW/ATTACH the product image to your human BEFORE asking which size they want.

    View tool JSON
    {
      "name": "get_product",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get detailed information about a specific product by ID including image URL that matches YOUR session identity mark (shape+color from identify_agent). IMPORTANT: After calling this, you MUST SHOW/ATTACH the product image to your human BEFORE asking which size they want.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "description": "Product ID (e.g., \"tee-001\")"
          },
          "sessionId": {
            "type": "string",
            "description": "Optional: Session ID from identify_agent. Use this if your connector does not reliably forward Mcp-Session-Id headers between calls."
          }
        },
        "required": [
          "productId"
        ]
      }
    }
    add_to_cartAction

    STEP 4: Add a product to your cart with size. BEFORE calling this: (1) Call list_products or get_product, (2) SHOW/ATTACH the product image to your human IN ITS OWN TURN (do NOT combine image + widget in same message), (3) In NEXT turn, ask human which size they want. THEN call this with their chosen size. REQUIRED: size parameter (s, m, l, xl, 2xl, or 3xl) from human after they see product image in separate turn. Your session mark (from identify_agent) is used automatically.

    View tool JSON
    {
      "name": "add_to_cart",
      "kind": "act",
      "impl": "imperative",
      "description": "STEP 4: Add a product to your cart with size. BEFORE calling this: (1) Call list_products or get_product, (2) SHOW/ATTACH the product image to your human IN ITS OWN TURN (do NOT combine image + widget in same message), (3) In NEXT turn, ask human which size they want. THEN call this with their chosen size. REQUIRED: size parameter (s, m, l, xl, 2xl, or 3xl) from human after they see product image in separate turn. Your session mark (from identify_agent) is used automatically.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "description": "Product ID (e.g., \"tee-001\")"
          },
          "quantity": {
            "type": "number",
            "description": "Quantity to add (minimum: 1)",
            "minimum": 1
          },
          "size": {
            "type": "string",
            "description": "Tee size from human AFTER showing them the product image. DO NOT call this tool until you have shown the product image to your human and asked for their size choice.",
            "enum": [
              "s",
              "m",
              "l",
              "xl",
              "2xl",
              "3xl"
            ]
          },
          "shape": {
            "type": "string",
            "description": "Optional: Override your session mark shape for this item only (use product ids: wedge, hex, bean, etc.). Pack names accepted as aliases.",
            "enum": [
              "blob",
              "pebble",
              "bean",
              "egg",
              "squircle",
              "tablet",
              "capsule",
              "cylinder",
              "hex",
              "gem",
              "crystal",
              "wedge",
              "shield",
              "dome",
              "arch",
              "cloud",
              "teardrop",
              "leaf",
              "circle",
              "vertical-oval",
              "rounded-square",
              "horizontal-pill",
              "rounded-triangle",
              "hexagon"
            ]
          },
          "color": {
            "type": "string",
            "description": "Optional: Override your session mark color for this item only (use product ids: green, magenta, yellow, etc.). Pack names accepted as aliases.",
            "enum": [
              "brown",
              "red",
              "orange",
              "yellow",
              "green",
              "cyan",
              "blue",
              "violet",
              "magenta",
              "black",
              "gray",
              "light-green",
              "teal",
              "purple",
              "pink",
              "hot-pink",
              "gold",
              "grey"
            ]
          },
          "sessionId": {
            "type": "string",
            "description": "Optional: Session ID from identify_agent. Use this if your connector does not reliably forward Mcp-Session-Id headers between calls."
          }
        },
        "required": [
          "productId",
          "quantity",
          "size"
        ]
      }
    }
    get_cartAnswer

    View your current cart contents with product details, marks, and total price.

    View tool JSON
    {
      "name": "get_cart",
      "kind": "answer",
      "impl": "imperative",
      "description": "View your current cart contents with product details, marks, and total price.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "description": "Optional: Session ID from identify_agent. Use this if your connector does not reliably forward Mcp-Session-Id headers between calls."
          }
        }
      }
    }
    clear_cartAction

    Remove all items from your cart. Requires prior identification via identify_agent.

    View tool JSON
    {
      "name": "clear_cart",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove all items from your cart. Requires prior identification via identify_agent.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "description": "Optional: Session ID from identify_agent. Use this if your connector does not reliably forward Mcp-Session-Id headers between calls."
          }
        }
      }
    }
    complete_paymentSensitive Action

    STEP 6: PREFERRED AGENT PATH - Complete payment using Link shared_payment_token (SPT) after approval. GATES ENFORCED: (1) You MUST have called preview_cart AND shown the preview images (flat-lay + mark close-up) to your human BEFORE calling this. (2) You MUST confirm shipping address with your human using Link MCP list_shipping_addresses - present city/postcode for confirmation (never dump full street into public chats), US-only. FLOW: After cart+preview+shippingConfirmed → (a) Call native request_virtual_card with amountCents 4000, merchantName "forbotsonly", merchantUrl checkoutUrl; (b) Wait for human approval; (c) Call Link MCP get_spend_request with include: ["shared_payment_token"] (array format) to retrieve SPT; (d) If response includes shared_payment_token → call this tool with sharedPaymentToken + shippingAddress; (e) If response has credential_type: card but NO shared_payment_token → SPT unavailable, use create_checkout fallback (card-only path). On success, order → awaiting_approval (manual review before fulfillment).

    View tool JSON
    {
      "name": "complete_payment",
      "kind": "transact",
      "impl": "imperative",
      "description": "STEP 6: PREFERRED AGENT PATH - Complete payment using Link shared_payment_token (SPT) after approval. GATES ENFORCED: (1) You MUST have called preview_cart AND shown the preview images (flat-lay + mark close-up) to your human BEFORE calling this. (2) You MUST confirm shipping address with your human using Link MCP list_shipping_addresses - present city/postcode for confirmation (never dump full street into public chats), US-only. FLOW: After cart+preview+shippingConfirmed → (a) Call native request_virtual_card with amountCents 4000, merchantName \"forbotsonly\", merchantUrl checkoutUrl; (b) Wait for human approval; (c) Call Link MCP get_spend_request with include: [\"shared_payment_token\"] (array format) to retrieve SPT; (d) If response includes shared_payment_token → call this tool with sharedPaymentToken + shippingAddress; (e) If response has credential_type: card but NO shared_payment_token → SPT unavailable, use create_checkout fallback (card-only path). On success, order → awaiting_approval (manual review before fulfillment).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sharedPaymentToken": {
            "type": "string",
            "description": "Link shared_payment_token from get_spend_request (after native request_virtual_card approval). This is the SPT used to complete payment via Stripe API."
          },
          "shippingAddress": {
            "type": "object",
            "description": "Complete US shipping address confirmed with human via Link MCP list_shipping_addresses. REQUIRED fields: name, line1, city, state, postalCode, country (must be \"US\"). Optional: line2.",
            "properties": {
              "name": {
                "type": "string",
                "description": "Recipient name"
              },
              "line1": {
                "type": "string",
                "description": "Address line 1"
              },
              "line2": {
                "type": "string",
                "description": "Optional: Address line 2"
              },
              "city": {
                "type": "string",
                "description": "City"
              },
              "state": {
                "type": "string",
                "description": "State (2-letter code, e.g. \"TX\")"
              },
              "postalCode": {
                "type": "string",
                "description": "ZIP code"
              },
              "country": {
                "type": "string",
                "description": "Country code - must be \"US\" (US-only)"
              }
            },
            "required": [
              "name",
              "line1",
              "city",
              "state",
              "postalCode",
              "country"
            ]
          },
          "sessionId": {
            "type": "string",
            "description": "Optional: Session ID from identify_agent. Use this if your connector does not reliably forward Mcp-Session-Id headers between calls."
          }
        },
        "required": [
          "sharedPaymentToken",
          "shippingAddress"
        ]
      }
    }
    create_checkoutSensitive Action

    CARD-ONLY FALLBACK - Create Stripe Checkout session for browser card payment. USE THIS WHEN: Native RVC unavailable OR Link SPT unavailable (after calling get_spend_request, if response has credential_type: card but NO shared_payment_token). AGENTS SHOULD PREFER complete_payment (Link SPT path) when available. GATES ENFORCED: (1) You MUST have called preview_cart AND shown preview images to your human first. (2) You MUST confirm shipping address (city/ZIP) with your human via Link MCP list_shipping_addresses (US-only). Set shippingConfirmed: true only after confirming address. Returns payUrl - a short URL that redirects to Stripe Checkout. Open payUrl EXACTLY as-is (never truncate). Human fills card at Stripe. After payment, order → awaiting_approval (manual review before fulfillment).

    View tool JSON
    {
      "name": "create_checkout",
      "kind": "transact",
      "impl": "imperative",
      "description": "CARD-ONLY FALLBACK - Create Stripe Checkout session for browser card payment. USE THIS WHEN: Native RVC unavailable OR Link SPT unavailable (after calling get_spend_request, if response has credential_type: card but NO shared_payment_token). AGENTS SHOULD PREFER complete_payment (Link SPT path) when available. GATES ENFORCED: (1) You MUST have called preview_cart AND shown preview images to your human first. (2) You MUST confirm shipping address (city/ZIP) with your human via Link MCP list_shipping_addresses (US-only). Set shippingConfirmed: true only after confirming address. Returns payUrl - a short URL that redirects to Stripe Checkout. Open payUrl EXACTLY as-is (never truncate). Human fills card at Stripe. After payment, order → awaiting_approval (manual review before fulfillment).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "successUrl": {
            "type": "string",
            "description": "Optional: URL to redirect to after successful payment. Defaults to the store origin with checkout=success query param."
          },
          "cancelUrl": {
            "type": "string",
            "description": "Optional: URL to redirect to if payment is cancelled. Defaults to the store origin with checkout=cancel query param."
          },
          "sessionId": {
            "type": "string",
            "description": "Optional: Session ID from identify_agent. Use this if your connector does not reliably forward Mcp-Session-Id headers between calls."
          },
          "shippingConfirmed": {
            "type": "boolean",
            "description": "REQUIRED: Set to true ONLY after confirming human has seen their Link shipping address (city/postcode) and confirmed it. This tool will refuse if false or missing."
          }
        },
        "required": [
          "shippingConfirmed"
        ]
      }
    }
    get_orderAnswer

    Get order details including status, items with marks, and fulfillment information.

    View tool JSON
    {
      "name": "get_order",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get order details including status, items with marks, and fulfillment information.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "string",
            "description": "Order ID (e.g., \"ord_1234567890_abc123\")"
          }
        },
        "required": [
          "orderId"
        ]
      }
    }
    recover_paid_checkoutSensitive Action

    ADMIN TOOL: Recover an orphaned paid checkout session. Retrieves payment from Stripe, recreates order if missing, and creates Prodigi fulfillment. Idempotent - safe to call multiple times. DO NOT create a new charge. REQUIRES: size, markShape, markColor in Stripe session metadata (from original checkout) OR explicitly provided as tool arguments.

    View tool JSON
    {
      "name": "recover_paid_checkout",
      "kind": "transact",
      "impl": "imperative",
      "description": "ADMIN TOOL: Recover an orphaned paid checkout session. Retrieves payment from Stripe, recreates order if missing, and creates Prodigi fulfillment. Idempotent - safe to call multiple times. DO NOT create a new charge. REQUIRES: size, markShape, markColor in Stripe session metadata (from original checkout) OR explicitly provided as tool arguments.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "stripeCheckoutSessionId": {
            "type": "string",
            "description": "Stripe checkout session ID (e.g., \"cs_live_...\")"
          },
          "orderId": {
            "type": "string",
            "description": "Optional: Restore exact order ID (e.g., \"ord_1789089764884_hh1rzcckj\")"
          },
          "shape": {
            "type": "string",
            "description": "Optional: Override mark shape (if not provided, extracts from session.metadata.markShape). REQUIRED: Either provide this OR ensure metadata has markShape. Use product ids (wedge, hex, bean). Pack names accepted as aliases.",
            "enum": [
              "blob",
              "pebble",
              "bean",
              "egg",
              "squircle",
              "tablet",
              "capsule",
              "cylinder",
              "hex",
              "gem",
              "crystal",
              "wedge",
              "shield",
              "dome",
              "arch",
              "cloud",
              "teardrop",
              "leaf",
              "circle",
              "vertical-oval",
              "rounded-square",
              "horizontal-pill",
              "rounded-triangle",
              "hexagon"
            ]
          },
          "color": {
            "type": "string",
            "description": "Optional: Override mark color (if not provided, extracts from session.metadata.markColor). REQUIRED: Either provide this OR ensure metadata has markColor. Use product ids (green, magenta, yellow). Pack names accepted as aliases.",
            "enum": [
              "brown",
              "red",
              "orange",
              "yellow",
              "green",
              "cyan",
              "blue",
              "violet",
              "magenta",
              "black",
              "gray",
              "light-green",
              "teal",
              "purple",
              "pink",
              "hot-pink",
              "gold",
              "grey"
            ]
          }
        },
        "required": [
          "stripeCheckoutSessionId"
        ]
      }
    }
    preview_cartAction

    STEP 5: REQUIRED BEFORE PAYMENT. Preview your cart items with mark visualizations showing YOUR identity mark (shape + color) on each item. Returns image URLs (markCloseup + flatLayMock) that YOU MUST ATTACH/DISPLAY to your human in your next message. CRITICAL: Send preview images IN THEIR OWN TURN, then confirm shipping in NEXT turn. DO NOT combine preview images + checkout buttons in same turn (widgets end the turn and images fail to deliver). Simply mentioning the images without attaching = FAIL and complete_payment/create_checkout will refuse.

    View tool JSON
    {
      "name": "preview_cart",
      "kind": "act",
      "impl": "imperative",
      "description": "STEP 5: REQUIRED BEFORE PAYMENT. Preview your cart items with mark visualizations showing YOUR identity mark (shape + color) on each item. Returns image URLs (markCloseup + flatLayMock) that YOU MUST ATTACH/DISPLAY to your human in your next message. CRITICAL: Send preview images IN THEIR OWN TURN, then confirm shipping in NEXT turn. DO NOT combine preview images + checkout buttons in same turn (widgets end the turn and images fail to deliver). Simply mentioning the images without attaching = FAIL and complete_payment/create_checkout will refuse.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "description": "Optional: Session ID from identify_agent. Use this if your connector does not reliably forward Mcp-Session-Id headers between calls."
          }
        }
      }
    }