Tool tree
gradeNot graded
search_productsAnswer
Search ShopMate's catalog by free-text query and optional category/brand filters. Use this whenever the user mentions what they are looking for in natural language.
View tool JSON
{
"name": "search_products",
"kind": "answer",
"impl": "imperative",
"description": "Search ShopMate's catalog by free-text query and optional category/brand filters. Use this whenever the user mentions what they are looking for in natural language.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Free-text search query, e.g. 'lightweight laptop for development'."
},
"category": {
"type": "string",
"enum": [
"laptops",
"laptops",
"laptops",
"laptops",
"laptops",
"laptops",
"laptops",
"laptops",
"phones",
"phones",
"phones",
"phones",
"phones",
"phones",
"monitors",
"monitors",
"monitors",
"monitors",
"monitors",
"monitors",
"keyboards",
"keyboards",
"keyboards",
"keyboards",
"keyboards",
"mice",
"mice",
"mice",
"mice",
"mice",
"headphones",
"headphones",
"headphones",
"headphones",
"headphones",
"webcams",
"webcams",
"webcams",
"stands",
"stands",
"stands",
"storage",
"storage",
"storage",
"storage"
],
"description": "Optional category filter."
},
"brand": {
"type": "string",
"description": "Optional brand filter."
},
"maxPrice": {
"type": "number",
"description": "Maximum price in USD."
},
"inStockOnly": {
"type": "boolean",
"description": "If true, only return products currently in stock."
},
"limit": {
"type": "number",
"description": "Maximum number of results to return (default 10)."
}
},
"required": [
"query"
]
}
}filter_productsAction
Apply structured filters to ShopMate's catalog (price range, category, brand, rating, stock) without a free-text query.
View tool JSON
{
"name": "filter_products",
"kind": "act",
"impl": "imperative",
"description": "Apply structured filters to ShopMate's catalog (price range, category, brand, rating, stock) without a free-text query.",
"inputSchema": {
"type": "object",
"properties": {
"categories": {
"type": "array",
"items": {
"type": "string",
"enum": [
"laptops",
"laptops",
"laptops",
"laptops",
"laptops",
"laptops",
"laptops",
"laptops",
"phones",
"phones",
"phones",
"phones",
"phones",
"phones",
"monitors",
"monitors",
"monitors",
"monitors",
"monitors",
"monitors",
"keyboards",
"keyboards",
"keyboards",
"keyboards",
"keyboards",
"mice",
"mice",
"mice",
"mice",
"mice",
"headphones",
"headphones",
"headphones",
"headphones",
"headphones",
"webcams",
"webcams",
"webcams",
"stands",
"stands",
"stands",
"storage",
"storage",
"storage",
"storage"
]
},
"description": "Restrict to these categories."
},
"brands": {
"type": "array",
"items": {
"type": "string"
},
"description": "Restrict to these brands."
},
"minPrice": {
"type": "number",
"description": "Minimum price in USD."
},
"maxPrice": {
"type": "number",
"description": "Maximum price in USD."
},
"minRating": {
"type": "number",
"description": "Minimum average rating (0-5)."
},
"inStockOnly": {
"type": "boolean",
"description": "Only in-stock items."
}
}
}
}get_product_detailsAnswer
Get the full details (price, specs, description, stock) for a single product by its ID.
View tool JSON
{
"name": "get_product_details",
"kind": "answer",
"impl": "imperative",
"description": "Get the full details (price, specs, description, stock) for a single product by its ID.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"description": "The product ID, e.g. 'lp-001'."
}
},
"required": [
"productId"
]
}
}compare_productsAction
Side-by-side comparison of 2-4 products. Returns a formatted comparison and opens the on-page compare view.
View tool JSON
{
"name": "compare_products",
"kind": "act",
"impl": "imperative",
"description": "Side-by-side comparison of 2-4 products. Returns a formatted comparison and opens the on-page compare view.",
"inputSchema": {
"type": "object",
"properties": {
"productIds": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2,
"maxItems": 4,
"description": "The product IDs to compare."
}
},
"required": [
"productIds"
]
}
}check_stockAnswer
Check whether one or more products are currently in stock.
View tool JSON
{
"name": "check_stock",
"kind": "answer",
"impl": "imperative",
"description": "Check whether one or more products are currently in stock.",
"inputSchema": {
"type": "object",
"properties": {
"productIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Product IDs to check. Defaults to all if empty."
}
}
}
}add_to_cartAction
Add a product to the user's shopping cart. Surfaces a human approval prompt before mutating the cart.
View tool JSON
{
"name": "add_to_cart",
"kind": "act",
"impl": "imperative",
"description": "Add a product to the user's shopping cart. Surfaces a human approval prompt before mutating the cart.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"description": "Product ID to add."
},
"quantity": {
"type": "number",
"description": "Quantity to add (default 1).",
"minimum": 1
}
},
"required": [
"productId"
]
}
}remove_from_cartAction
Remove a product from the cart. Surfaces a human approval prompt first.
View tool JSON
{
"name": "remove_from_cart",
"kind": "act",
"impl": "imperative",
"description": "Remove a product from the cart. Surfaces a human approval prompt first.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"description": "Product ID to remove."
}
},
"required": [
"productId"
]
}
}update_cartAction
Set the quantity of a product in the cart (0 to remove). Surfaces a human approval prompt first.
View tool JSON
{
"name": "update_cart",
"kind": "act",
"impl": "imperative",
"description": "Set the quantity of a product in the cart (0 to remove). Surfaces a human approval prompt first.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"description": "Product ID to update."
},
"quantity": {
"type": "number",
"description": "New quantity (0 to remove).",
"minimum": 0
}
},
"required": [
"productId",
"quantity"
]
}
}calculate_cart_totalAnswer
Calculate the current cart subtotal, item count, and stock availability.
View tool JSON
{
"name": "calculate_cart_total",
"kind": "answer",
"impl": "imperative",
"description": "Calculate the current cart subtotal, item count, and stock availability.",
"inputSchema": {
"type": "object",
"properties": {}
}
}build_bundleAction
Build a themed shopping bundle (e.g. 'developer setup', 'gaming setup'). Resolves each component using search_products, then prompts the human to approve adding all items to the cart.
View tool JSON
{
"name": "build_bundle",
"kind": "act",
"impl": "imperative",
"description": "Build a themed shopping bundle (e.g. 'developer setup', 'gaming setup'). Resolves each component using search_products, then prompts the human to approve adding all items to the cart.",
"inputSchema": {
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": [
"developer",
"gaming",
"creator",
"office",
"minimal",
"travel"
],
"description": "Bundle theme to build."
},
"maxPricePerItem": {
"type": "number",
"description": "Maximum price for any single item in USD."
}
},
"required": [
"theme"
]
}
}