9 tools registered. Strongest in usefulness, weakest in human experience.
No agent run recorded yet.
// Use the canonical entry point - navigator.modelContext is deprecated.
document.modelContext.provideContext({ tools: [/* ... */] });search_products, get_product, find_product_by_sku, add_to_quote_list, update_quote_quantity<!-- Give the tool a visible counterpart: a declarative form is one the person can see and use too. -->
<form toolname="search_products" tooldescription="...">
<!-- the same action, as UI -->
</form>{
"name": "search_products",
"description": "Search The Promo Group product catalogue by keyword. Returns up to 20 matching products with name, slug, price, and stock status. Use to find products the user wants to add to their quote list or shopping cart. Use get_product for full details (variants, branding options) of a specific result.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search keywords, e.g. \"branded coffee mug\" or \"leather notebook\"."
},
"category": {
"type": "string",
"description": "Optional category slug to narrow results, e.g. \"drinkware\", \"bags\", \"clothing\", \"tech-gadgets\", \"office-stationery\", \"headwear\", \"home-living\"."
},
"min_price": {
"type": "number",
"description": "Optional minimum unit price in ZAR.",
"minimum": 0
},
"max_price": {
"type": "number",
"description": "Optional maximum unit price in ZAR.",
"minimum": 0
}
},
"required": [
"query"
]
},
"annotations": {
"readOnlyHint": true,
"untrustedContentHint": true
}
}get_product: registered at 1335.4000000953674ms// Register tools as soon as they're ready, not behind a deferred/async chunk.
document.modelContext.provideContext({ tools: [/* ... */] });// Use the canonical entry point - navigator.modelContext is deprecated.
document.modelContext.provideContext({ tools: [/* ... */] });get_product: 1 parameter description is over Chrome's 150-character guidance{
name: "get_product",
inputSchema: {
type: "object",
properties: {
query: { type: "string", description: "What to search for" }
},
required: ["query"]
}
}add_to_quote_list, update_quote_quantity, remove_from_quote_list, add_to_cart, update_cart_quantity{
name: "add_to_quote_list",
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true }
}document.modelContext.dispatchEvent(new Event("toolchange"));search_products, get_product, find_product_by_sku, add_to_quote_list, update_quote_quantity<!-- Give the tool a visible counterpart: a declarative form is one the person can see and use too. -->
<form toolname="search_products" tooldescription="...">
<!-- the same action, as UI -->
</form>