Tool tree
gradeNot graded
page: Every page
search_productsAction
Search the ShopMate product catalog by text query and optional category. Returns matching products with id, name, price, rating, availability and tags. The catalog page visibly updates to show the same results.
View tool JSON
{
"name": "search_products",
"kind": "act",
"impl": "imperative",
"description": "Search the ShopMate product catalog by text query and optional category. Returns matching products with id, name, price, rating, availability and tags. The catalog page visibly updates to show the same results.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Free-text search across name, tags and description."
},
"category": {
"type": "string",
"description": "Optional category: Electronics | Stationery | Home | Accessories | Travel | Fitness | School"
},
"limit": {
"type": "number",
"description": "Optional maximum number of results (default 20)."
}
},
"required": [
"query"
],
"additionalProperties": false
},
"page": "/"
}filter_productsAction
Filter products by maximum price, minimum rating, category, and availability. Applies the same filters to the visible catalog page so the human sees exactly what the agent sees.
View tool JSON
{
"name": "filter_products",
"kind": "act",
"impl": "imperative",
"description": "Filter products by maximum price, minimum rating, category, and availability. Applies the same filters to the visible catalog page so the human sees exactly what the agent sees.",
"inputSchema": {
"type": "object",
"properties": {
"maxPrice": {
"type": "number",
"description": "Maximum unit price in USD."
},
"minRating": {
"type": "number",
"description": "Minimum star rating, 0-5."
},
"category": {
"type": "string",
"description": "Optional category: Electronics | Stationery | Home | Accessories | Travel | Fitness | School"
},
"availableOnly": {
"type": "boolean",
"description": "Exclude out-of-stock products."
}
},
"additionalProperties": false
},
"page": "/"
}compare_productsAction
Compare selected products by price, rating, category, tags, and value-for-money (rating per dollar). Highlights the cheapest, highest rated, and best value option and fills the comparison tray in the UI.
View tool JSON
{
"name": "compare_products",
"kind": "act",
"impl": "imperative",
"description": "Compare selected products by price, rating, category, tags, and value-for-money (rating per dollar). Highlights the cheapest, highest rated, and best value option and fills the comparison tray in the UI.",
"inputSchema": {
"type": "object",
"properties": {
"productIds": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2,
"description": "Product ids to compare, e.g. [\"p-001\", \"p-003\"]."
}
},
"required": [
"productIds"
],
"additionalProperties": false
},
"page": "/"
}add_to_cartAction
Add a product to the ShopMate cart by product id and quantity. Rejects unknown ids and out-of-stock products. The cart page and header counter update immediately.
View tool JSON
{
"name": "add_to_cart",
"kind": "act",
"impl": "imperative",
"description": "Add a product to the ShopMate cart by product id and quantity. Rejects unknown ids and out-of-stock products. The cart page and header counter update immediately.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"description": "Catalog product id, e.g. \"p-042\"."
},
"quantity": {
"type": "number",
"description": "Quantity to add, 1-99."
}
},
"required": [
"productId",
"quantity"
],
"additionalProperties": false
},
"page": "/"
}remove_from_cartAction
Remove a product from the ShopMate cart by product id. Returns whether the item was present and the resulting cart totals.
View tool JSON
{
"name": "remove_from_cart",
"kind": "act",
"impl": "imperative",
"description": "Remove a product from the ShopMate cart by product id. Returns whether the item was present and the resulting cart totals.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"description": "Catalog product id to remove."
}
},
"required": [
"productId"
],
"additionalProperties": false
},
"page": "/"
}update_quantityAction
Change the quantity of a product in the ShopMate cart. Setting a quantity of 0 removes the line entirely.
View tool JSON
{
"name": "update_quantity",
"kind": "act",
"impl": "imperative",
"description": "Change the quantity of a product in the ShopMate cart. Setting a quantity of 0 removes the line entirely.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"description": "Catalog product id."
},
"quantity": {
"type": "number",
"description": "New quantity, 0-99. 0 removes the item."
}
},
"required": [
"productId",
"quantity"
],
"additionalProperties": false
},
"page": "/"
}get_cartAnswer
Return the current cart contents, line totals, item count, currency, budget, remaining budget, and budget status (under, near, over, or no_budget).
View tool JSON
{
"name": "get_cart",
"kind": "answer",
"impl": "imperative",
"description": "Return the current cart contents, line totals, item count, currency, budget, remaining budget, and budget status (under, near, over, or no_budget).",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}optimize_cartAction
Optimize the cart against a target budget while preserving useful quality and category coverage. Swaps expensive lines for cheaper same-category alternatives, reduces quantities, then drops the worst value items only as a last resort. Applies the changes to the live cart.
View tool JSON
{
"name": "optimize_cart",
"kind": "act",
"impl": "imperative",
"description": "Optimize the cart against a target budget while preserving useful quality and category coverage. Swaps expensive lines for cheaper same-category alternatives, reduces quantities, then drops the worst value items only as a last resort. Applies the changes to the live cart.",
"inputSchema": {
"type": "object",
"properties": {
"budget": {
"type": "number",
"description": "Target cart budget in USD."
}
},
"required": [
"budget"
],
"additionalProperties": false
},
"page": "/"
}