3 tools registered. Strongest in WebMCP use, weakest in human experience.
No agent run recorded yet.
get_pricing, get_features, get_skill_file{
name: "get_pricing",
execute: async (args) => {
// Perform the real action here - return live data, not a static placeholder.
return result;
}
}get_pricing, get_features, get_skill_file{
name: "get_pricing",
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true }
}get_pricing, get_features, get_skill_file<!-- Give the tool a visible counterpart: a declarative form is one the person can see and use too. -->
<form toolname="get_pricing" tooldescription="...">
<!-- the same action, as UI -->
</form>{
"name": "get_pricing",
"description": "Get AgentLine pricing details for AI voice calls, phone numbers, and SMS.",
"inputSchema": {
"type": "object",
"properties": {}
},
"annotations": {}
}document.modelContext.provideContext({
tools: [{ name: "your_tool_name", description: "...", inputSchema: { type: "object", properties: {} }, execute: async (args) => { /* ... */ } }],
});get_features: registered at 1005.0999999046326ms// Register tools as soon as they're ready, not behind a deferred/async chunk.
document.modelContext.provideContext({ tools: [/* ... */] });get_pricing, get_features, get_skill_file{
name: "get_pricing",
execute: async (args) => {
// Perform the real action here - return live data, not a static placeholder.
return result;
}
}get_pricing, get_features, get_skill_file{
name: "get_pricing",
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true }
}document.modelContext.dispatchEvent(new Event("toolchange"));get_pricing, get_features, get_skill_file<!-- Give the tool a visible counterpart: a declarative form is one the person can see and use too. -->
<form toolname="get_pricing" tooldescription="...">
<!-- the same action, as UI -->
</form>