15 tools registered. Strongest in tool quality, weakest in trust.
{
"name": "search_products",
"description": "Search the live catalog (e.g. \"men's pants\", \"women linen blazer\") with filters on ANYTHING: price range, sale state, colors, keywords to include/exclude, availability in a specific size or in the human's saved size, plus sorting. Returns products with ids, prices, sale flags, colors and image URLs, and shows the result grid in the shop UI. Always the first step — its product ids feed every other tool.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"description": "What to look for, natural language, e.g. \"men's pants\""
},
"section": {
"description": "Force a store section; otherwise inferred from the query",
"type": "string",
"enum": [
"MAN",
"WOMAN",
"KID"
]
},
"limit": {
"description": "Max products to return (default 24)",
"type": "integer",
"minimum": 1,
"maximum": 60
},
"min_price": {
"description": "Only items at or above this price, in the store currency",
"type": "number"
},
"max_price": {
"description": "Only items at or below this price, in the store currency (e.g. 200 = ₪200)",
"type": "number"
},
"on_sale_only": {
"description": "Only items currently reduced",
"type": "boolean"
},
"min_discount_pct": {
"description": "Only items reduced by at least this percent (e.g. 30)",
"type": "number",
"minimum": 1,
"maximum": 90
},
"colors": {
"description": "Only items available in any of these colors, e.g. [\"black\",\"beige\"]",
"type": "array",
"items": {
"type": "string"
}
},
"include_words": {
"description": "Product name must contain all of these words, e.g. [\"linen\"]",
"type": "array",
"items": {
"type": "string"
}
},
"exclude_words": {
"description": "Drop items whose name contains any of these words, e.g. [\"jogging\"]",
"type": "array",
"items": {
"type": "string"
}
},
"size": {
"description": "Only items with THIS size in live stock (e.g. \"M\", \"42\"). Checks real per-size availability.",
"type": "string"
},
"in_my_size_only": {
"description": "Only items in live stock in the human's saved size (size systems converted automatically)",
"type": "boolean"
},
"sort": {
"description": "Result order (default relevance)",
"type": "string",
"enum": [
"relevance",
"price_asc",
"price_desc",
"discount"
]
}
},
"required": [
"query"
],
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true
}
}usable: weak; clarity: weak// Make the tool's effect visible on the page the person is looking at:
// update the same UI your existing human flow uses when your_tool_name runs,
// so the person co-browsing sees what the agent just did.
execute: async (args, { signal }) => {
const result = await performAction(args, signal);
renderResultInPage(result); // the human-visible half of the same action
return result;
}set_my_sizes: declares no required list, so an agent cannot tell which parameters are mandatory; find_reviews: description is 541 characters, over Chrome's 500-character guidance; find_reviews: declar{
name: "set_my_sizes",
inputSchema: {
type: "object",
properties: {
query: { type: "string", description: "What to search for" }
},
required: ["query"]
}
}{ name: "love_item" /* short, unique, verb-based */ }search-the-shop: weakfind_reviews: review, user, user-generated{ name: "find_reviews", annotations: { untrustedContentHint: true } }find_reviews: Description instructs agent to use another tool; love_item: Description instructs agent when to call tool{
name: "find_reviews",
// Metadata DESCRIBES the tool - it never addresses the agent reading it.
// Rewrite any name, description, title, or schema field description that
// instructs the agent (which tool to prefer, what to output, rules to
// ignore) so it states what the tool does and what it returns instead.
description: "Searches the catalog and returns matching items with prices."
}{
"query": "carry-on suitcase",
"max_price": 300
}{
"product_id": 1
}{
"product_id": 1,
"quantity": 2
}