One tool 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: [/* ... */] });openDocs: declares no required list, so an agent cannot tell which parameters are mandatory{
name: "openDocs",
inputSchema: {
type: "object",
properties: {
query: { type: "string", description: "What to search for" }
},
required: ["query"]
}
}{ name: "opendocs" /* short, unique, verb-based */ }openDocs{
name: "openDocs",
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true }
}openDocs<!-- Give the tool a visible counterpart: a declarative form is one the person can see and use too. -->
<form toolname="opendocs" tooldescription="...">
<!-- the same action, as UI -->
</form>{
"name": "openDocs",
"description": "Open Notte documentation for a given topic (e.g. 'quickstart', 'concepts/agents'). Defaults to the docs homepage if no topic is given.",
"inputSchema": {
"type": "object",
"properties": {
"topic": {
"type": "string",
"description": "Docs slug or keyword appended to https://docs.notte.cc/. Omit for the docs homepage."
}
}
},
"annotations": {}
}// Use the canonical entry point - navigator.modelContext is deprecated.
document.modelContext.provideContext({ tools: [/* ... */] });openDocs: declares no required list, so an agent cannot tell which parameters are mandatory{
name: "openDocs",
inputSchema: {
type: "object",
properties: {
query: { type: "string", description: "What to search for" }
},
required: ["query"]
}
}openDocs{
name: "openDocs",
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true }
}document.modelContext.dispatchEvent(new Event("toolchange"));{ name: "opendocs" /* short, unique, verb-based */ }openDocs<!-- Give the tool a visible counterpart: a declarative form is one the person can see and use too. -->
<form toolname="opendocs" tooldescription="...">
<!-- the same action, as UI -->
</form>