live · Commerce · JSON · API for agents
Search the Rankly Merch catalog. Returns up to `limit` products matching the query and/or category. Each result includes slug (use it with get_product or navigate), name, color, priceCents, and stock summary.
{
"name": "search_products",
"kind": "read",
"impl": "imperative",
"description": "Search the Rankly Merch catalog. Returns up to `limit` products matching the query and/or category. Each result includes slug (use it with get_product or navigate), name, color, priceCents, and stock summary.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Free-text search across name, description, tags, category."
},
"category": {
"type": "string",
"description": "Category slug. Use list_categories to discover valid values."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 12
}
},
"additionalProperties": false
},
"page": "/"
}Return full details for a product. Provide `slug` (preferred) or `name` (fuzzy).
{
"name": "get_product",
"kind": "read",
"impl": "imperative",
"description": "Return full details for a product. Provide `slug` (preferred) or `name` (fuzzy).",
"inputSchema": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
},
"page": "/"
}Return every category slug + name available in the catalog.
{
"name": "list_categories",
"kind": "read",
"impl": "imperative",
"description": "Return every category slug + name available in the catalog.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}Return the products tagged as best sellers. Optionally restrict by category.
{
"name": "best_sellers",
"kind": "read",
"impl": "imperative",
"description": "Return the products tagged as best sellers. Optionally restrict by category.",
"inputSchema": {
"type": "object",
"properties": {
"category": {
"type": "string"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 6
}
},
"additionalProperties": false
},
"page": "/"
}Return products currently discounted (price below MRP) or tagged sale, with discount percent.
{
"name": "find_deals",
"kind": "read",
"impl": "imperative",
"description": "Return products currently discounted (price below MRP) or tagged sale, with discount percent.",
"inputSchema": {
"type": "object",
"properties": {
"category": {
"type": "string"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 6
}
},
"additionalProperties": false
},
"page": "/"
}Add a product to the signed-in user cart. Identify the product by `slug` (preferred), `productId`, or `name` (fuzzy). If none are provided AND the user is on a /p/<slug> page, the product on screen is used. Quantity defaults to 1. Optional variantId. Requires sign-in (use sign_in_demo if needed).
{
"name": "add_to_cart",
"kind": "write",
"impl": "imperative",
"description": "Add a product to the signed-in user cart. Identify the product by `slug` (preferred), `productId`, or `name` (fuzzy). If none are provided AND the user is on a /p/<slug> page, the product on screen is used. Quantity defaults to 1. Optional variantId. Requires sign-in (use sign_in_demo if needed).",
"inputSchema": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"productId": {
"type": "string"
},
"name": {
"type": "string"
},
"quantity": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 1
},
"variantId": {
"type": "string"
}
},
"additionalProperties": false
},
"page": "/"
}Complete checkout end-to-end for the current cart using the signed-in demo account. A dummy shipping address is used and the backend applies a 100% demo discount so no real card is charged. Only works for accounts created via sign_in_demo (email suffix @webmcp-demo.dev); regular accounts must use the /checkout form. After success the user is navigated to the order detail page.
{
"name": "place_demo_order",
"kind": "action",
"impl": "imperative",
"description": "Complete checkout end-to-end for the current cart using the signed-in demo account. A dummy shipping address is used and the backend applies a 100% demo discount so no real card is charged. Only works for accounts created via sign_in_demo (email suffix @webmcp-demo.dev); regular accounts must use the /checkout form. After success the user is navigated to the order detail page.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}Return the current cart contents and subtotal.
{
"name": "view_cart",
"kind": "read",
"impl": "imperative",
"description": "Return the current cart contents and subtotal.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}Navigate within the storefront. Provide either `path` (absolute, e.g. /p/foo) or `to` (one of: home, cart, checkout, account, login, product (needs slug)).
{
"name": "navigate",
"kind": "action",
"impl": "imperative",
"description": "Navigate within the storefront. Provide either `path` (absolute, e.g. /p/foo) or `to` (one of: home, cart, checkout, account, login, product (needs slug)).",
"inputSchema": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"to": {
"type": "string",
"enum": [
"home",
"cart",
"checkout",
"account",
"login",
"product"
]
},
"slug": {
"type": "string"
}
},
"additionalProperties": false
},
"page": "/"
}Return whether the user is currently signed in and their basic profile.
{
"name": "authenticate",
"kind": "read",
"impl": "imperative",
"description": "Return whether the user is currently signed in and their basic profile.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}Sign in with email + password.
{
"name": "sign_in",
"kind": "action",
"impl": "imperative",
"description": "Sign in with email + password.",
"inputSchema": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email"
},
"password": {
"type": "string"
}
},
"required": [
"email",
"password"
],
"additionalProperties": false
},
"page": "/"
}Synthesize a unique demo email + password, register it, and sign in. Use when not signed in for cart/checkout demo.
{
"name": "sign_in_demo",
"kind": "action",
"impl": "imperative",
"description": "Synthesize a unique demo email + password, register it, and sign in. Use when not signed in for cart/checkout demo.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}Store-wide return policy summary.
{
"name": "returns_policy",
"kind": "read",
"impl": "imperative",
"description": "Store-wide return policy summary.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}Canned answers to common store questions: shipping, returns, sizing, payment, contact.
{
"name": "faq_support",
"kind": "read",
"impl": "imperative",
"description": "Canned answers to common store questions: shipping, returns, sizing, payment, contact.",
"inputSchema": {
"type": "object",
"properties": {
"question": {
"type": "string"
}
},
"required": [
"question"
],
"additionalProperties": false
},
"page": "/"
}