5 tools registered. Strongest in usefulness, weakest in WebMCP use.
No agent run recorded yet.
ic_overview: declares no input schema; ic_how_to_connect: declares no input schema; ic_get_latest_signal: declares no input schema{
name: "ic_overview",
inputSchema: { type: "object", properties: { /* ... */ }, required: [] }
}{ name: "ic_overview" /* short, unique, verb-based */ }ic_overview, ic_how_to_connect, ic_get_latest_signal{
name: "ic_overview",
execute: async (args) => {
// Perform the real action here - return live data, not a static placeholder.
return result;
}
}ic_overview, ic_how_to_connect, ic_get_latest_signal{
name: "ic_overview",
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true }
}ic_overview, ic_how_to_connect, ic_get_latest_signal<!-- Give the tool a visible counterpart: a declarative form is one the person can see and use too. -->
<form toolname="ic_overview" tooldescription="...">
<!-- the same action, as UI -->
</form>{
"name": "ic_overview",
"description": "What Immersive Commons is, plus the URL map an agent needs to discover and connect to its agent surface (manifest, MCP, A2A, OAuth metadata, skills, registration guide). Read this first.",
"inputSchema": null,
"annotations": {}
}document.modelContext.provideContext({
tools: [{ name: "your_tool_name", description: "...", inputSchema: { type: "object", properties: {} }, execute: async (args) => { /* ... */ } }],
});ic_how_to_connect: registered at 1107.2999999523163ms// Register tools as soon as they're ready, not behind a deferred/async chunk.
document.modelContext.provideContext({ tools: [/* ... */] });ic_overview: declares no input schema; ic_how_to_connect: declares no input schema; ic_get_latest_signal: declares no input schema{
name: "ic_overview",
inputSchema: { type: "object", properties: { /* ... */ }, required: [] }
}ic_overview, ic_how_to_connect, ic_get_latest_signal{
name: "ic_overview",
execute: async (args) => {
// Perform the real action here - return live data, not a static placeholder.
return result;
}
}ic_overview, ic_how_to_connect, ic_get_latest_signal{
name: "ic_overview",
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true }
}document.modelContext.dispatchEvent(new Event("toolchange"));{ name: "ic_overview" /* short, unique, verb-based */ }ic_overview, ic_how_to_connect, ic_get_latest_signal<!-- Give the tool a visible counterpart: a declarative form is one the person can see and use too. -->
<form toolname="ic_overview" tooldescription="...">
<!-- the same action, as UI -->
</form>