10 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: [/* ... */] });start_here: description is 835 characters, over Chrome's 500-character guidance; find_provider: description is 1083 characters, over Chrome's 500-character guidance; find_provider: 4 parameters have n{
name: "start_here",
inputSchema: {
type: "object",
properties: {
query: { type: "string", description: "What to search for" }
},
required: ["query"]
}
}start_here: readOnlyHint=true; book_matching_session: readOnlyHint=true; book_appointment: readOnlyHint=true// Set destructiveHint/idempotentHint to match what this tool actually does.
{ name: "start_here", annotations: { destructiveHint: true } }start_here, find_provider, check_availability, about_emora, search_content<!-- Give the tool a visible counterpart: a declarative form is one the person can see and use too. -->
<form toolname="start_here" tooldescription="...">
<!-- the same action, as UI -->
</form>{
"name": "start_here",
"description": "[Step 1 of find_a_clinician · optional]\n\nBest first action for a user describing a concern. Runs a parallel lookup across crisis screening, provider availability, and the article corpus, then returns the recommended path (crisis | evaluation | self-help | mixed) with concrete next steps. Optimized for the agent's first turn — a single call replaces 2-3 sequential lookups.\n\nUse when: The user has just described a concern and you don't yet know if they need crisis routing, a clinician, articles, or all three. Call this FIRST before find_provider / search_content.\n\nDon't use when: You already have a chosen provider and just need availability or a booking URL — use check_availability or book_appointment instead.\n\nExample: start_here({ concern: \"My 12-year-old has trouble sleeping and seems anxious\", state: \"Florida\", age: 12 })",
"inputSchema": {
"type": "object",
"required": [
"concern"
],
"properties": {
"concern": {
"type": "string",
"description": "Free-text description of what the user is experiencing or concerned about."
},
"age": {
"type": "number",
"description": "Client age in years (0–25+)."
},
"state": {
"type": "string",
"description": "U.S. state where the client resides.",
"enum": [
"Florida",
"Texas",
"Illinois",
"North Carolina",
"Georgia",
"Ohio",
"Missouri",
"Arizona",
"Wisconsin",
"South Carolina",
"Indiana"
]
},
"insurance": {
"type": "string",
"description": "Insurance plan name.",
"enum": [
"Cash Pay",
"Aetna",
"Anthem Blue Cross",
"Baylor Scott & White",
"Blue Cross Blue Shield",
"ChampVA",
"Cigna",
"Florida Blue",
"Magellan",
"Medical Mutual",
"United Healthcare",
"Optum",
"Oscar",
"Tricare",
"Tricare West",
"UMR"
]
}
}
},
"annotations": {
"readOnlyHint": true,
"untrustedContentHint": true
}
}get_cost_estimate: registered at 1821.7000000476837ms// 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: [/* ... */] });start_here: description is 835 characters, over Chrome's 500-character guidance; find_provider: description is 1083 characters, over Chrome's 500-character guidance; find_provider: 4 parameters have n{
name: "start_here",
inputSchema: {
type: "object",
properties: {
query: { type: "string", description: "What to search for" }
},
required: ["query"]
}
}start_here: readOnlyHint=true; book_matching_session: readOnlyHint=true; book_appointment: readOnlyHint=true// Set destructiveHint/idempotentHint to match what this tool actually does.
{ name: "start_here", annotations: { destructiveHint: true } }document.modelContext.dispatchEvent(new Event("toolchange"));{ name: "about_emora" /* short, unique, verb-based */ }start_here, find_provider, check_availability, about_emora, search_content<!-- Give the tool a visible counterpart: a declarative form is one the person can see and use too. -->
<form toolname="start_here" tooldescription="...">
<!-- the same action, as UI -->
</form>