3 tools registered. Strongest in WebMCP use, 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-categories, get-cart<!-- 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 NETGEAR product catalog by keyword. Returns products with name, price, URL, image, and availability.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search keywords (e.g. \"mesh wifi\", \"gigabit switch\")"
},
"maxResults": {
"type": "integer",
"description": "Max results to return (1-50, default 10)",
"minimum": 1,
"maximum": 50
}
},
"required": [
"query"
]
},
"annotations": {
"readOnlyHint": true,
"idempotentHint": true
}
}get-cart: registered at 1282.5ms// 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: [/* ... */] });document.modelContext.dispatchEvent(new Event("toolchange"));search-products, get-categories, get-cart<!-- 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>