Emora Health
Server Details
Find kids' and teens' mental health clinicians, check availability, get booking links and costs.
- Status
- Healthy
- Uptime
- 100.0% over 58 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 8 tools
Each tool targets a distinct step or resource: availability lookup, booking link generation, cost estimation, crisis escalation, informational overview, care recommendation, resource search, and provider search. The descriptions explicitly include 'Use when'/'Don't use when' boundaries and workflow tags (find_a_clinician, cost_check, crisis, explore_information), so recommend_care vs search_providers overlap is clearly disambiguated.
All names follow a consistent snake_case verb_noun pattern with predictable verbs (get_*, search_*, recommend_*). No mixed conventions or vague verbs appear anywhere in the set.
Eight tools is well-scoped for a care-navigation assistant, with each tool earning its place across the cost, crisis, information, and clinician-finding workflows. No redundant or filler tools.
The surface covers the key pre-booking lifecycle: cost check, crisis, info search, provider search, availability, and booking link, plus care recommendations. Minor gaps exist (e.g., no post-booking appointment management or rescheduling), but the booking flow is intentionally delegated to an external checkout link, so agents can work around it.
Available Tools
8 toolsget_availabilityGet a clinician's availabilityARead-onlyInspect
[Step 3 of find_a_clinician]
Returns open appointment times for one clinician and service, grouped by day and labelled in the family's state time zone. Each time carries the date_time value that get_booking_link takes.
Use when: A family has chosen a clinician and wants to see open times.
Don't use when: No clinician is chosen yet: search_providers or recommend_care find one.
Example: get_availability({ state: 'Texas', service: 'adhd-testing', provider_id: '7598079' })
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | U.S. state, full name or 2-letter code. For a state Emora does not serve, the result says so and lists alternatives. | |
| service | Yes | therapy (the default), clinical-matching (unsure what is needed), medication (non-stimulant only), adhd-testing or autism-testing. | |
| time_zone | No | Optional IANA time zone, e.g. 'America/Chicago'. Defaults to the state's main zone. | |
| provider_id | Yes | Clinician id from search_providers or recommend_care. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint already declares this as a safe read. The description adds real value beyond that: results are grouped by day, labelled in the family's state time zone, and each time carries the date_time value required by get_booking_link. It stops short of pagination or result-size behavior, but for a read-only lookup this is solid disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with step number and purpose, then use/don't-use guidance and a concrete example. Every line earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of return-value explanation and does so well (grouped by day, state time zone, chained date_time). It could say more about unsupported-state behavior or empty results, but the essentials for correct invocation and follow-up are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description adds an example invocation and clarifies the chaining role of provider_id ('from search_providers or recommend_care') and that the time zone defaults to the state's main zone, giving a bit more than the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns open appointment times for one clinician and service') and positions itself as 'Step 3 of find_a_clinician', which cleanly separates it from search_providers/recommend_care and from get_booking_link.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use when' (a clinician is chosen and the family wants open times) and 'Don't use when' (no clinician chosen yet) clauses, with named alternative tools that handle the pre-selection case. An agent knows exactly when to route here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_booking_linkGet a booking linkARead-onlyInspect
[Step 4 of find_a_clinician]
Returns a booking link pre-filled with the clinician, service, time, state and insurance. Nothing is booked: the family opens the link and completes checkout, which takes about 2 minutes. A Clinical Matching Session is service clinical-matching with an intake specialist.
Use when: A family has chosen a clinician and a time from get_availability.
Don't use when: No clinician or time yet: search_providers and get_availability come first.
Example: get_booking_link({ provider_id: '7598079', state: 'Texas', service: 'adhd-testing', date_time: '2026-10-29T14:00:00-05:00', insurance: 'Aetna' })
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Optional. Your agent or product name, e.g. "chatgpt". Added to the booking link as utm_source. | |
| state | Yes | U.S. state, full name or 2-letter code. For a state Emora does not serve, the result says so and lists alternatives. | |
| service | Yes | therapy (the default), clinical-matching (unsure what is needed), medication (non-stimulant only), adhd-testing or autism-testing. | |
| date_time | Yes | The date_time of a slot from get_availability, unchanged, e.g. "2026-10-29T14:00:00-05:00". | |
| insurance | No | Insurance plan name, or "Cash Pay" for self-pay. A plan Emora does not take is ignored, and the result says so. | |
| client_age | No | Child's age in years. | |
| provider_id | Yes | Clinician id from search_providers. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true already declared, the description reinforces rather than contradicts it by stating 'Nothing is booked' and explaining that the family completes checkout in about 2 minutes. It also discloses the special-case semantics of a Clinical Matching Session. It stops short of describing the link's form, expiry, or failure modes for invalid clinician/time combinations, so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the workflow position and the return value, then tight Use/Don't-use blocks and a single concrete example. Every sentence carries distinct information; no filler or repetition of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and 7 parameters, the description carries the burden and does so: it explains what is returned (a pre-filled booking link), what is not returned (no booking is made), and how the link is consummated. Nothing an agent needs to invoke this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already carries the per-parameter documentation and the baseline would be 3. The description adds a fully instantiated example call showing the exact combined shape (provider_id, state, service, date_time, insurance) and clarifies that date_time must be copied unchanged from get_availability, which meaningfully reinforces the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (returns a booking link) and immediately qualifies the scope: pre-filled with clinician, service, time, state and insurance, but nothing is actually booked. It also distinguishes itself from siblings by naming the upstream tools search_providers and get_availability, so an agent can route correctly without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use when' (a clinician and time have already been chosen from get_availability) and 'Don't use when' (no clinician or time yet — search_providers and get_availability come first) sections name the alternatives and the exact precondition. This is the ideal routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cost_estimateGet a cost estimateARead-onlyInspect
[Step 1 of cost_check]
Returns a general cost range and a link to the cost estimate page, pre-filled with the plan and service, where the family sees the exact amount for their plan.
Use when: A parent asks what care costs, about a copay, or whether a plan is covered.
Example: get_cost_estimate({ insurance: 'Aetna', service: 'adhd-testing' })
| Name | Required | Description | Default |
|---|---|---|---|
| service | No | therapy (the default), clinical-matching (unsure what is needed), medication (non-stimulant only), adhd-testing or autism-testing. | |
| insurance | No | Insurance plan name, or "Cash Pay" for self-pay. A plan Emora does not take is ignored, and the result says so. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes this is a safe read, so the description's added value is in disclosing what is actually returned: a general range rather than an exact figure, plus a pre-filled link where the family sees the precise amount. That distinction (estimate here, exact amount off-tool) is important behavior an agent would otherwise assume wrongly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded step marker, then what it returns, then when to use it, then a one-line example. Every sentence earns its place; the range-versus-exact-amount contrast is the one piece of non-obvious information and it is stated crisply.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so by describing both the range and the link artifact. Parameters are sparse (2, none required) and fully covered by the schema, so the only modest gap is not spelling out the step-2 handoff implied by 'cost_check'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% — both parameters carry descriptions and the service enum lists all five valid values, so the schema does the heavy lifting. The description adds only a single worked example using 'Aetna' and 'adhd-testing', which illustrates typical values but adds no semantics beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns a general cost range and a link to the cost estimate page'), plus the scope and pre-fill behavior. The '[Step 1 of cost_check]' marker and the cost-focused framing cleanly separate it from siblings like get_availability, get_booking_link, and search_providers, which handle scheduling and search rather than pricing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Use when: A parent asks what care costs, about a copay, or whether a plan is covered' line gives concrete triggering intents. It does not name an alternative tool or state a when-not condition, but the step marker implies a follow-on 'cost_check' action and the intent coverage is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_crisis_resourcesCrisis resources (988, 911, Crisis Text Line)ARead-onlyInspect
[Step 1 of crisis]
Returns 911, the 988 Suicide & Crisis Lifeline and the Crisis Text Line, for a child or teen in danger now.
Use when: Any mention of self-harm, suicidal thoughts, or someone in immediate danger.
Example: get_crisis_resources({})
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes this is a safe, non-mutating call, so the bar is lower. The description usefully adds that it is a static, argument-free retrieval of specific emergency contacts, though it does not describe the response shape (e.g., how numbers are returned).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly front-loaded lines: role marker, what it returns, when to use, and a call example. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter static resource lookup with no output schema, the description supplies everything needed: the returned resources, the trigger condition, and a concrete invocation example.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline is 4. The example call get_crisis_resources({}) reinforces that no arguments are needed, leaving nothing ambiguous for the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns 911, the 988 ... Lifeline and the Crisis Text Line') and names the audience ('a child or teen in danger now'). It is clearly distinguishable from sibling tools like search_care_resources or get_availability, which serve non-emergency lookups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger ('Any mention of self-harm, suicidal thoughts, or someone in immediate danger') and positions itself as 'Step 1 of crisis', so the agent knows both when to call it and that it precedes other crisis handling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_emora_overviewGet an overview of EmoraARead-onlyInspect
[Step 1 of explore_information · optional]
Describes Emora Health: services, states served, insurance accepted, ages seen, how care works, and how to reach the care team.
Use when: A parent asks what Emora is, what it offers, where it works, or which plans it takes.
Example: get_emora_overview({})
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, so the safety profile is already covered. The description adds workflow context by marking it as '[Step 1 of explore_information · optional]' and lists the information returned, which helps an agent understand what a successful call provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with workflow context, then a compact summary of coverage, usage guidance, and an example. Every sentence adds useful information for selection and invocation without unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only overview tool with no output schema, the description sufficiently enumerates what the response covers, so an agent knows what it will get. Annotations and the empty schema cover the rest, making the definition complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty, so there are no parameter semantics to explain. The example call get_emora_overview({}) reinforces that no arguments are required. The baseline for a zero-parameter tool is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Describes') and resource ('Emora Health'), then enumerates the covered areas: services, states served, insurance accepted, ages seen, how care works, and care team contact. This clearly distinguishes it from task-specific siblings like get_availability, get_cost_estimate, and search_providers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides an explicit 'Use when' clause covering parent questions about what Emora is, what it offers, where it works, and which plans it accepts. It lacks when-not guidance or named alternatives, but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recommend_careRecommend care for a concernARead-onlyInspect
[Step 1 of find_a_clinician · optional]
Takes a parent's concern and returns a recommended path: crisis resources when there is danger, the service that fits (therapy, medication, ADHD or autism testing, or a clinical matching session), matched clinicians with their next opening, and related care resources. Says so when the family's state is not one Emora serves.
Use when: A parent has described a concern and the next step (crisis help, a clinician, reading, or all three) is not yet clear.
Don't use when: A clinician is already chosen: get_availability and get_booking_link cover the rest.
Example: recommend_care({ concern: "Teacher thinks my 9-year-old may have ADHD", state: "Texas", age: 9, insurance: "Aetna" })
| Name | Required | Description | Default |
|---|---|---|---|
| age | No | Child's age in years. | |
| state | No | U.S. state, full name or 2-letter code. For a state Emora does not serve, the result says so and lists alternatives. | |
| concern | Yes | What the parent is worried about, in their words. | |
| service | No | Optional; inferred from the concern when omitted. therapy, clinical-matching, medication, adhd-testing or autism-testing. | |
| insurance | No | Insurance plan name, or "Cash Pay" for self-pay. A plan Emora does not take is ignored, and the result says so. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description still adds real behavioral context beyond that: crisis resources are surfaced on danger, unserved states are reported back rather than silently filtered, and the service type is inferred when omitted. It stops short of describing result ordering or size, but for a read-only tool this is strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with workflow position and optionality, then cleanly sectioned into Use when / Don't use when / Example. Slightly long, but each sentence carries routing or behavior information rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by enumerating the return categories (crisis resources, recommended service, matched clinicians with openings, related resources). Combined with the state-not-served caveat, an agent has everything needed to call and interpret this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter already carries its own description (including the inference behavior for 'service' and the fallback behavior for 'state'/'insurance'), so the baseline is 3. The worked example shows parameters used together, which adds marginal value but largely restates the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (recommend) and resource (care path from a parent concern) and enumerates what comes back: crisis resources, the fitting service, matched clinicians with next openings, and related reading. It also names its workflow position ('Step 1 of find_a_clinician') and differentiates from siblings like get_availability/get_booking_link.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use when' names the condition (concern described, next step unclear), and 'Don't use when' names the alternative tools (get_availability, get_booking_link) for the case where a clinician is already chosen. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_care_resourcesSearch care resourcesARead-onlyInspect
[Step 2 of explore_information]
Searches Emora's clinician-reviewed resources for parents by words: articles on behavior, conditions, treatment and medication, free self-tests, activities, condition and specialty pages, and clinical insights. Each result has a type, title, description and URL to cite.
Use when: A parent wants to understand something (a behavior, a condition, a treatment, a medication question) or asks for a test, worksheet or activity.
Don't use when: The parent wants a clinician: search_providers or recommend_care.
Example: search_care_resources({ query: 'social anxiety test for teens' })
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Optional. Only this kind of resource. | |
| limit | No | Results to return (default 10, max 20). | |
| query | Yes | The parent's question or topic, in their words. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so basic safety is covered. The description adds genuine behavioral context beyond that: it discloses the result shape (type, title, description, URL to cite) and its sequencing within the explore_information flow. It stops short of pagination or ranking behavior, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well front-loaded with labeled sections and an example, so an agent can scan it quickly. The enumeration of resource types is somewhat long but each item is informative; overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by stating what each result contains (type, title, description, URL to cite). Combined with the usage routing and workflow step, nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the enum values for 'type' and the limit default/max are already documented structurally. The description's example clarifies query phrasing in a parent's own words, but adds little beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (searches) and resource (Emora's clinician-reviewed resources for parents), and enumerates the content types returned (articles, self-tests, activities, condition/specialty pages, clinical insights). It also flags its position in a workflow (Step 2 of explore_information), which no sibling does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use when' and 'Don't use when' sections name the exact alternatives (search_providers, recommend_care) and the condition that selects them (parent wants a clinician). A concrete example call is included, so routing is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_providersSearch Emora cliniciansARead-onlyInspect
[Step 2 of find_a_clinician]
Returns Emora clinicians who fit a state, service, insurance and child's age, ranked by clinical fit when concerns are given, then by availability and reviews. Each result has the clinician's next opening. Ten per page; limit and offset page through the rest.
Use when: A family wants to see clinicians: therapists, psychiatric prescribers, psychologists for testing, or intake specialists (service clinical-matching).
Don't use when: The family hasn't said what they're worried about yet: recommend_care orients first.
Example: search_providers({ state: 'Florida', service: 'therapy', concerns: ['social-anxiety'], insurance: 'Aetna', client_age: 12 })
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Matches to return. Defaults to 10, with no maximum. | |
| state | Yes | U.S. state, full name or 2-letter code. For a state Emora does not serve, the result says so and lists alternatives. | |
| offset | No | Matches to skip. next_offset from a previous result gives the next page. | |
| service | Yes | therapy (the default), clinical-matching (unsure what is needed), medication (non-stimulant only), adhd-testing or autism-testing. | |
| concerns | No | One to three concern IDs from the list. More than three dilutes the ranking. | |
| insurance | No | Insurance plan name, or "Cash Pay" for self-pay. A plan Emora does not take is ignored, and the result says so. | |
| client_age | No | Child's age in years. | |
| continuation | No | Token from a previous search_providers result. Repeats its filters; new arguments take precedence. | |
| preferred_gender | No | Clinician gender preference: 'female', 'male' or 'non-binary'. | |
| preferred_language | No | A language other than English the clinician should speak. | |
| preferred_approaches | No | Therapy approaches, e.g. ["cbt","playTherapy"]. Clinicians who use them rank higher. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, and the description adds real behavioral detail beyond that: ranking order (clinical fit, then availability and reviews), that each result carries a next opening, ten-per-page pagination, and graceful degradation when a state or insurance plan is unsupported. It stops short of describing error handling or auth/rate-limit characteristics, so a 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the pipeline step and the one-line purpose, then use/don't-use, then a compact example. Every sentence carries information; nothing is repeated from the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter tool with no output schema, the description covers the salient return facts (next opening, pagination via next_offset, ten per page) and the multi-step workflow context. It does not enumerate the full result shape, but for a read-only search that is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: it clarifies that concerns drive ranking rather than filtering ('ranked by clinical fit when concerns are given') and supplies a worked example showing a realistic five-parameter combination. That is genuine added value on top of the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns Emora clinicians who fit a state, service, insurance and child's age') plus the ranking logic, and names the sibling it is not (recommend_care). An agent can distinguish it from get_availability or search_care_resources without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use when' names the eligible clinician types and the qualifying condition, while 'Don't use when' routes to recommend_care when concerns are unknown. This is a complete when/when-not/alternative triad.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
15 tool updates
- Removed
about_emora - Removed
book_appointment - Removed
book_matching_session - Removed
browse_pages - Removed
check_availability - Removed
find_provider - Added
get_availability - Added
get_booking_link - Changed
get_cost_estimate3 fields changed- changed
Input schema / properties / insurance / descriptionPrevious value: -"The family's insurance plan. In-network plans: Cash Pay, Aetna, Anthem Blue Cross, Blue Cross Blue Shield, ChampVA, Cigna, Florida Blue, Magellan, Medical Mutual, United Healthcare, Optum, Oscar, Tricare, Tricare West, UMR. \"Cash Pay\" for self-pay. You may pass any plan: for one we're not in-network with, the tool drops the insurance filter and says so."New value: +"Insurance plan name, or \"Cash Pay\" for self-pay. A plan Emora does not take is ignored, and the result says so." - changed
Input schema / properties / service / descriptionPrevious value: -"Which service. Pass the name, not a number:\n- therapy: Ongoing therapy for a child, teen or parent: anxiety, mood, behavior, school or family stress, parent training (PCIT). The default when nothing points elsewhere.\n- clinical-matching: A 45-minute virtual intake where a clinician works out the right care and the right clinician. For families who aren't sure what they need or don't want to pick. Billed like any visit; never call it free.\n- medication: A psychiatric evaluation and ongoing medication care, when a family or pediatrician is asking about medication. Non-stimulant medications only: Emora never prescribes stimulants or controlled substances.\n- adhd-testing: A psychologist-led ADHD evaluation for a diagnosis (focus, impulsivity, hyperactivity), e.g. when a teacher or pediatrician suggests getting evaluated for ADHD.\n- autism-testing: A psychologist-led autism (ASD) evaluation for a diagnosis (social communication, repetitive behaviors, sensory needs). Evaluation only: Emora does not provide ABA therapy.\nNumeric appointment-type IDs are still accepted.\nPass it when known: the estimate page opens on that service."New value: +"therapy (the default), clinical-matching (unsure what is needed), medication (non-stimulant only), adhd-testing or autism-testing." - changed
Input schema / properties / service / enumPrevious value: -[ - "354092", - "446840", - "446841", - "449671", - "465593", - "therapy", - "clinical-matching", - "medication", - "adhd-testing", - "autism-testing" -]New value: +[ + "therapy", + "clinical-matching", + "medication", + "adhd-testing", + "autism-testing" +]
- Added
get_emora_overview - Added
recommend_care - Added
search_care_resources - Removed
search_content - Added
search_providers - Removed
start_here
6 tool updates
- Changed
book_appointment6 fields changed- added
Input schema / properties / appointment_type / descriptionAdded value: +"Which service. Pass the name, not a number:\n- therapy: Ongoing therapy for a child, teen or parent: anxiety, mood, behavior, school or family stress, parent training (PCIT). The default when nothing points elsewhere.\n- clinical-matching: A 45-minute virtual intake where a clinician works out the right care and the right clinician. For families who aren't sure what they need or don't want to pick. Billed like any visit; never call it free.\n- medication: A psychiatric evaluation and ongoing medication care, when a family or pediatrician is asking about medication. Non-stimulant medications only: Emora never prescribes stimulants or controlled substances.\n- adhd-testing: A psychologist-led ADHD evaluation for a diagnosis (focus, impulsivity, hyperactivity), e.g. when a teacher or pediatrician suggests getting evaluated for ADHD.\n- autism-testing: A psychologist-led autism (ASD) evaluation for a diagnosis (social communication, repetitive behaviors, sensory needs). Evaluation only: Emora does not provide ABA therapy.\nNumeric appointment-type IDs are still accepted.\nUse the same service you passed to find_provider and check_availability." - changed
Input schema / properties / appointment_type / enumPrevious value: -[ - "354092", - "446840", - "446841", - "449671", - "465593" -]New value: +[ + "354092", + "446840", + "446841", + "449671", + "465593", + "therapy", + "clinical-matching", + "medication", + "adhd-testing", + "autism-testing" +] - added
Input schema / properties / insurance / descriptionAdded value: +"The family's insurance plan. In-network plans: Cash Pay, Aetna, Anthem Blue Cross, Blue Cross Blue Shield, ChampVA, Cigna, Florida Blue, Magellan, Medical Mutual, United Healthcare, Optum, Oscar, Tricare, Tricare West, UMR. \"Cash Pay\" for self-pay. You may pass any plan: for one we're not in-network with, the tool drops the insurance filter and says so." - removed
Input schema / properties / insurance / enumRemoved value: -[ - "Cash Pay", - "Aetna", - "Anthem Blue Cross", - "Blue Cross Blue Shield", - "ChampVA", - "Cigna", - "Florida Blue", - "Magellan", - "Medical Mutual", - "United Healthcare", - "Optum", - "Oscar", - "Tricare", - "Tricare West", - "UMR" -] - added
Input schema / properties / state / descriptionAdded value: +"U.S. state where the client lives (full name or 2-letter code). Emora sees patients in: Florida, Texas, Illinois, North Carolina, Georgia, Ohio, Missouri, Arizona, Wisconsin, South Carolina, Indiana. You may pass any state: for one we don't serve, the tool says so and suggests what the family can do instead." - removed
Input schema / properties / state / enumRemoved value: -[ - "Florida", - "Texas", - "Illinois", - "North Carolina", - "Georgia", - "Ohio", - "Missouri", - "Arizona", - "Wisconsin", - "South Carolina", - "Indiana" -]
- Changed
book_matching_session1 field changed- changed
Input schema / properties / provider_id / descriptionPrevious value: -"Healthie ID of the intake specialist. Get this from find_provider with appointment_type='446840'. REQUIRED — never construct the URL without it."New value: +"Healthie ID of the intake specialist. Get this from find_provider with appointment_type='clinical-matching'. REQUIRED — never construct the URL without it."
- Changed
check_availability6 fields changed- added
Input schema / properties / appointment_type / descriptionAdded value: +"Which service. Pass the name, not a number:\n- therapy: Ongoing therapy for a child, teen or parent: anxiety, mood, behavior, school or family stress, parent training (PCIT). The default when nothing points elsewhere.\n- clinical-matching: A 45-minute virtual intake where a clinician works out the right care and the right clinician. For families who aren't sure what they need or don't want to pick. Billed like any visit; never call it free.\n- medication: A psychiatric evaluation and ongoing medication care, when a family or pediatrician is asking about medication. Non-stimulant medications only: Emora never prescribes stimulants or controlled substances.\n- adhd-testing: A psychologist-led ADHD evaluation for a diagnosis (focus, impulsivity, hyperactivity), e.g. when a teacher or pediatrician suggests getting evaluated for ADHD.\n- autism-testing: A psychologist-led autism (ASD) evaluation for a diagnosis (social communication, repetitive behaviors, sensory needs). Evaluation only: Emora does not provide ABA therapy.\nNumeric appointment-type IDs are still accepted.\nUse the same service you passed to find_provider." - changed
Input schema / properties / appointment_type / enumPrevious value: -[ - "354092", - "446840", - "446841", - "449671", - "465593" -]New value: +[ + "354092", + "446840", + "446841", + "449671", + "465593", + "therapy", + "clinical-matching", + "medication", + "adhd-testing", + "autism-testing" +] - added
Input schema / properties / provider_id / descriptionAdded value: +"The id of a provider from find_provider or start_here." - added
Input schema / properties / state / descriptionAdded value: +"U.S. state where the client lives (full name or 2-letter code). Emora sees patients in: Florida, Texas, Illinois, North Carolina, Georgia, Ohio, Missouri, Arizona, Wisconsin, South Carolina, Indiana. You may pass any state: for one we don't serve, the tool says so and suggests what the family can do instead." - removed
Input schema / properties / state / enumRemoved value: -[ - "Florida", - "Texas", - "Illinois", - "North Carolina", - "Georgia", - "Ohio", - "Missouri", - "Arizona", - "Wisconsin", - "South Carolina", - "Indiana" -] - added
Input schema / properties / time_zoneAdded value: +{ + "description": "Optional. The family's IANA time zone (e.g. 'America/Chicago') if you know it. Defaults to the state's main zone.", + "type": "string" +}
- Changed
find_provider6 fields changed- added
Input schema / properties / appointment_type / descriptionAdded value: +"Which service. Pass the name, not a number:\n- therapy: Ongoing therapy for a child, teen or parent: anxiety, mood, behavior, school or family stress, parent training (PCIT). The default when nothing points elsewhere.\n- clinical-matching: A 45-minute virtual intake where a clinician works out the right care and the right clinician. For families who aren't sure what they need or don't want to pick. Billed like any visit; never call it free.\n- medication: A psychiatric evaluation and ongoing medication care, when a family or pediatrician is asking about medication. Non-stimulant medications only: Emora never prescribes stimulants or controlled substances.\n- adhd-testing: A psychologist-led ADHD evaluation for a diagnosis (focus, impulsivity, hyperactivity), e.g. when a teacher or pediatrician suggests getting evaluated for ADHD.\n- autism-testing: A psychologist-led autism (ASD) evaluation for a diagnosis (social communication, repetitive behaviors, sensory needs). Evaluation only: Emora does not provide ABA therapy.\nNumeric appointment-type IDs are still accepted.\nEvaluations (adhd-testing, autism-testing) are done by psychologists, medication by prescribers: pick the service the family asked for, not therapy by default." - changed
Input schema / properties / appointment_type / enumPrevious value: -[ - "354092", - "446840", - "446841", - "449671", - "465593" -]New value: +[ + "354092", + "446840", + "446841", + "449671", + "465593", + "therapy", + "clinical-matching", + "medication", + "adhd-testing", + "autism-testing" +] - added
Input schema / properties / insurance / descriptionAdded value: +"The family's insurance plan. In-network plans: Cash Pay, Aetna, Anthem Blue Cross, Blue Cross Blue Shield, ChampVA, Cigna, Florida Blue, Magellan, Medical Mutual, United Healthcare, Optum, Oscar, Tricare, Tricare West, UMR. \"Cash Pay\" for self-pay. You may pass any plan: for one we're not in-network with, the tool drops the insurance filter and says so." - removed
Input schema / properties / insurance / enumRemoved value: -[ - "Cash Pay", - "Aetna", - "Anthem Blue Cross", - "Blue Cross Blue Shield", - "ChampVA", - "Cigna", - "Florida Blue", - "Magellan", - "Medical Mutual", - "United Healthcare", - "Optum", - "Oscar", - "Tricare", - "Tricare West", - "UMR" -] - added
Input schema / properties / state / descriptionAdded value: +"U.S. state where the client lives (full name or 2-letter code). Emora sees patients in: Florida, Texas, Illinois, North Carolina, Georgia, Ohio, Missouri, Arizona, Wisconsin, South Carolina, Indiana. You may pass any state: for one we don't serve, the tool says so and suggests what the family can do instead." - removed
Input schema / properties / state / enumRemoved value: -[ - "Florida", - "Texas", - "Illinois", - "North Carolina", - "Georgia", - "Ohio", - "Missouri", - "Arizona", - "Wisconsin", - "South Carolina", - "Indiana" -]
- Changed
get_cost_estimate4 fields changed- added
Input schema / properties / insurance / descriptionAdded value: +"The family's insurance plan. In-network plans: Cash Pay, Aetna, Anthem Blue Cross, Blue Cross Blue Shield, ChampVA, Cigna, Florida Blue, Magellan, Medical Mutual, United Healthcare, Optum, Oscar, Tricare, Tricare West, UMR. \"Cash Pay\" for self-pay. You may pass any plan: for one we're not in-network with, the tool drops the insurance filter and says so." - removed
Input schema / properties / insurance / enumRemoved value: -[ - "Cash Pay", - "Aetna", - "Anthem Blue Cross", - "Blue Cross Blue Shield", - "ChampVA", - "Cigna", - "Florida Blue", - "Magellan", - "Medical Mutual", - "United Healthcare", - "Optum", - "Oscar", - "Tricare", - "Tricare West", - "UMR" -] - added
Input schema / properties / service / descriptionAdded value: +"Which service. Pass the name, not a number:\n- therapy: Ongoing therapy for a child, teen or parent: anxiety, mood, behavior, school or family stress, parent training (PCIT). The default when nothing points elsewhere.\n- clinical-matching: A 45-minute virtual intake where a clinician works out the right care and the right clinician. For families who aren't sure what they need or don't want to pick. Billed like any visit; never call it free.\n- medication: A psychiatric evaluation and ongoing medication care, when a family or pediatrician is asking about medication. Non-stimulant medications only: Emora never prescribes stimulants or controlled substances.\n- adhd-testing: A psychologist-led ADHD evaluation for a diagnosis (focus, impulsivity, hyperactivity), e.g. when a teacher or pediatrician suggests getting evaluated for ADHD.\n- autism-testing: A psychologist-led autism (ASD) evaluation for a diagnosis (social communication, repetitive behaviors, sensory needs). Evaluation only: Emora does not provide ABA therapy.\nNumeric appointment-type IDs are still accepted.\nPass it when known: the estimate page opens on that service." - changed
Input schema / properties / service / enumPrevious value: -[ - "354092", - "446840", - "446841", - "449671", - "465593" -]New value: +[ + "354092", + "446840", + "446841", + "449671", + "465593", + "therapy", + "clinical-matching", + "medication", + "adhd-testing", + "autism-testing" +]
- Changed
start_here5 fields changed- changed
Input schema / properties / insurance / descriptionPrevious value: -"Insurance plan name."New value: +"The family's insurance plan. In-network plans: Cash Pay, Aetna, Anthem Blue Cross, Blue Cross Blue Shield, ChampVA, Cigna, Florida Blue, Magellan, Medical Mutual, United Healthcare, Optum, Oscar, Tricare, Tricare West, UMR. \"Cash Pay\" for self-pay. You may pass any plan: for one we're not in-network with, the tool drops the insurance filter and says so." - removed
Input schema / properties / insurance / enumRemoved value: -[ - "Cash Pay", - "Aetna", - "Anthem Blue Cross", - "Blue Cross Blue Shield", - "ChampVA", - "Cigna", - "Florida Blue", - "Magellan", - "Medical Mutual", - "United Healthcare", - "Optum", - "Oscar", - "Tricare", - "Tricare West", - "UMR" -] - added
Input schema / properties / serviceAdded value: +{ + "description": "Which service. Pass the name, not a number:\n- therapy: Ongoing therapy for a child, teen or parent: anxiety, mood, behavior, school or family stress, parent training (PCIT). The default when nothing points elsewhere.\n- clinical-matching: A 45-minute virtual intake where a clinician works out the right care and the right clinician. For families who aren't sure what they need or don't want to pick. Billed like any visit; never call it free.\n- medication: A psychiatric evaluation and ongoing medication care, when a family or pediatrician is asking about medication. Non-stimulant medications only: Emora never prescribes stimulants or controlled substances.\n- adhd-testing: A psychologist-led ADHD evaluation for a diagnosis (focus, impulsivity, hyperactivity), e.g. when a teacher or pediatrician suggests getting evaluated for ADHD.\n- autism-testing: A psychologist-led autism (ASD) evaluation for a diagnosis (social communication, repetitive behaviors, sensory needs). Evaluation only: Emora does not provide ABA therapy.\nNumeric appointment-type IDs are still accepted.\nOptional. Leave it out and start_here picks from the concern (an ADHD evaluation request becomes adhd-testing, a medication question becomes medication). Pass it when the family has said what they want.", + "enum": [ + "354092", + "446840", + "446841", + "449671", + "465593", + "therapy", + "clinical-matching", + "medication", + "adhd-testing", + "autism-testing" + ], + "type": "string" +} - changed
Input schema / properties / state / descriptionPrevious value: -"U.S. state where the client resides."New value: +"U.S. state where the client lives (full name or 2-letter code). Emora sees patients in: Florida, Texas, Illinois, North Carolina, Georgia, Ohio, Missouri, Arizona, Wisconsin, South Carolina, Indiana. You may pass any state: for one we don't serve, the tool says so and suggests what the family can do instead." - removed
Input schema / properties / state / enumRemoved value: -[ - "Florida", - "Texas", - "Illinois", - "North Carolina", - "Georgia", - "Ohio", - "Missouri", - "Arizona", - "Wisconsin", - "South Carolina", - "Indiana" -]
1 tool update
- Changed
find_provider2 fields changed- added
Input schema / properties / limitAdded value: +{ + "description": "How many ranked matches to return. Defaults to 10. There is no maximum: pass total_candidates from a previous call to get every match.", + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "description": "How many ranked matches to skip. Pass next_offset from a previous call to get the next page.", + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" +}
2 tool updates
- Changed
book_appointment1 field changed- added
Input schema / properties / agentAdded value: +{ + "description": "Optional. Your agent or product name, e.g. \"chatgpt\", \"claude-desktop\", \"acme-scheduler\". It is written into the returned booking URL as utm_source so we can tell agent-referred families from direct traffic. MCP clients that send clientInfo on initialize are already identified and can omit this.", + "type": "string" +}
- Changed
book_matching_session1 field changed- added
Input schema / properties / agentAdded value: +{ + "description": "Optional. Your agent or product name, e.g. \"chatgpt\", \"claude-desktop\", \"acme-scheduler\". It is written into the returned booking URL as utm_source so we can tell agent-referred families from direct traffic. MCP clients that send clientInfo on initialize are already identified and can omit this.", + "type": "string" +}
5 tool updates
- Changed
book_appointment1 field changed- changed
Input schema / properties / insurance / enumPrevious value: -[ - "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" -]New value: +[ + "Cash Pay", + "Aetna", + "Anthem Blue Cross", + "Blue Cross Blue Shield", + "ChampVA", + "Cigna", + "Florida Blue", + "Magellan", + "Medical Mutual", + "United Healthcare", + "Optum", + "Oscar", + "Tricare", + "Tricare West", + "UMR" +]
- Changed
book_matching_session1 field changed- changed
Input schema / properties / insurance / enumPrevious value: -[ - "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" -]New value: +[ + "Cash Pay", + "Aetna", + "Anthem Blue Cross", + "Blue Cross Blue Shield", + "ChampVA", + "Cigna", + "Florida Blue", + "Magellan", + "Medical Mutual", + "United Healthcare", + "Optum", + "Oscar", + "Tricare", + "Tricare West", + "UMR" +]
- Changed
find_provider1 field changed- changed
Input schema / properties / insurance / enumPrevious value: -[ - "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" -]New value: +[ + "Cash Pay", + "Aetna", + "Anthem Blue Cross", + "Blue Cross Blue Shield", + "ChampVA", + "Cigna", + "Florida Blue", + "Magellan", + "Medical Mutual", + "United Healthcare", + "Optum", + "Oscar", + "Tricare", + "Tricare West", + "UMR" +]
- Changed
get_cost_estimate1 field changed- changed
Input schema / properties / insurance / enumPrevious value: -[ - "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" -]New value: +[ + "Cash Pay", + "Aetna", + "Anthem Blue Cross", + "Blue Cross Blue Shield", + "ChampVA", + "Cigna", + "Florida Blue", + "Magellan", + "Medical Mutual", + "United Healthcare", + "Optum", + "Oscar", + "Tricare", + "Tricare West", + "UMR" +]
- Changed
start_here1 field changed- changed
Input schema / properties / insurance / enumPrevious value: -[ - "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" -]New value: +[ + "Cash Pay", + "Aetna", + "Anthem Blue Cross", + "Blue Cross Blue Shield", + "ChampVA", + "Cigna", + "Florida Blue", + "Magellan", + "Medical Mutual", + "United Healthcare", + "Optum", + "Oscar", + "Tricare", + "Tricare West", + "UMR" +]
5 tool updates
- Changed
book_appointment1 field changed- changed
Input schema / properties / state / enumPrevious value: -[ - "Florida", - "Texas", - "Illinois", - "North Carolina", - "Ohio", - "Missouri", - "Arizona", - "Georgia", - "Wisconsin", - "South Carolina", - "Indiana" -]New value: +[ + "Florida", + "Texas", + "Illinois", + "North Carolina", + "Georgia", + "Ohio", + "Missouri", + "Arizona", + "Wisconsin", + "South Carolina", + "Indiana" +]
- Changed
book_matching_session1 field changed- changed
Input schema / properties / state / enumPrevious value: -[ - "Florida", - "Texas", - "Illinois", - "North Carolina", - "Ohio", - "Missouri", - "Arizona", - "Georgia", - "Wisconsin", - "South Carolina", - "Indiana" -]New value: +[ + "Florida", + "Texas", + "Illinois", + "North Carolina", + "Georgia", + "Ohio", + "Missouri", + "Arizona", + "Wisconsin", + "South Carolina", + "Indiana" +]
- Changed
check_availability1 field changed- changed
Input schema / properties / state / enumPrevious value: -[ - "Florida", - "Texas", - "Illinois", - "North Carolina", - "Ohio", - "Missouri", - "Arizona", - "Georgia", - "Wisconsin", - "South Carolina", - "Indiana" -]New value: +[ + "Florida", + "Texas", + "Illinois", + "North Carolina", + "Georgia", + "Ohio", + "Missouri", + "Arizona", + "Wisconsin", + "South Carolina", + "Indiana" +]
- Changed
find_provider1 field changed- changed
Input schema / properties / state / enumPrevious value: -[ - "Florida", - "Texas", - "Illinois", - "North Carolina", - "Ohio", - "Missouri", - "Arizona", - "Georgia", - "Wisconsin", - "South Carolina", - "Indiana" -]New value: +[ + "Florida", + "Texas", + "Illinois", + "North Carolina", + "Georgia", + "Ohio", + "Missouri", + "Arizona", + "Wisconsin", + "South Carolina", + "Indiana" +]
- Changed
start_here1 field changed- changed
Input schema / properties / state / enumPrevious value: -[ - "Florida", - "Texas", - "Illinois", - "North Carolina", - "Ohio", - "Missouri", - "Arizona", - "Georgia", - "Wisconsin", - "South Carolina", - "Indiana" -]New value: +[ + "Florida", + "Texas", + "Illinois", + "North Carolina", + "Georgia", + "Ohio", + "Missouri", + "Arizona", + "Wisconsin", + "South Carolina", + "Indiana" +]
5 tool updates
- Changed
book_appointment1 field changed- changed
Input schema / properties / insurance / enumPrevious value: -[ - "Cash Pay", - "Aetna", - "Anthem Blue Cross", - "Baylor Scott & White", - "Blue Cross Blue Shield", - "ChampVA", - "Cigna", - "Florida Blue", - "Magellan", - "United Healthcare", - "Optum", - "Oscar", - "Tricare", - "Tricare West", - "UMR" -]New value: +[ + "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" +]
- Changed
book_matching_session1 field changed- changed
Input schema / properties / insurance / enumPrevious value: -[ - "Cash Pay", - "Aetna", - "Anthem Blue Cross", - "Baylor Scott & White", - "Blue Cross Blue Shield", - "ChampVA", - "Cigna", - "Florida Blue", - "Magellan", - "United Healthcare", - "Optum", - "Oscar", - "Tricare", - "Tricare West", - "UMR" -]New value: +[ + "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" +]
- Changed
find_provider1 field changed- changed
Input schema / properties / insurance / enumPrevious value: -[ - "Cash Pay", - "Aetna", - "Anthem Blue Cross", - "Baylor Scott & White", - "Blue Cross Blue Shield", - "ChampVA", - "Cigna", - "Florida Blue", - "Magellan", - "United Healthcare", - "Optum", - "Oscar", - "Tricare", - "Tricare West", - "UMR" -]New value: +[ + "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" +]
- Changed
get_cost_estimate1 field changed- changed
Input schema / properties / insurance / enumPrevious value: -[ - "Cash Pay", - "Aetna", - "Anthem Blue Cross", - "Baylor Scott & White", - "Blue Cross Blue Shield", - "ChampVA", - "Cigna", - "Florida Blue", - "Magellan", - "United Healthcare", - "Optum", - "Oscar", - "Tricare", - "Tricare West", - "UMR" -]New value: +[ + "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" +]
- Changed
start_here1 field changed- changed
Input schema / properties / insurance / enumPrevious value: -[ - "Cash Pay", - "Aetna", - "Anthem Blue Cross", - "Baylor Scott & White", - "Blue Cross Blue Shield", - "ChampVA", - "Cigna", - "Florida Blue", - "Magellan", - "United Healthcare", - "Optum", - "Oscar", - "Tricare", - "Tricare West", - "UMR" -]New value: +[ + "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" +]
10 tool updates
- Changed
about_emora1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
book_appointment1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
book_matching_session1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
browse_pages1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
check_availability1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
find_provider1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
get_cost_estimate1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
get_crisis_resources1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
search_content1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
start_here1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
1 tool update
- Changed
find_provider1 field changed- changed
Input schema / properties / concerns / items / enumPrevious value: -[ - "sep-anxiety", - "gad", - "social-anxiety", - "specific-phobia", - "panic-attacks", - "depression", - "bipolar", - "irritability", - "grief", - "adhd", - "odd", - "conduct", - "impulsivity", - "autism", - "speech-delay", - "motor-delay", - "learning-disability", - "sleep-disorder", - "peer-issues", - "life-transitions", - "family-changes", - "relocation", - "social-stress", - "relationship-issues", - "build-confidence", - "grow-faith", - "mindfulness", - "personal-values", - "resilience", - "self-compassion", - "unsure", - "other" -]New value: +[ + "parenting-stress", + "sep-anxiety", + "gad", + "social-anxiety", + "specific-phobia", + "panic-attacks", + "depression", + "bipolar", + "irritability", + "grief", + "adhd", + "odd", + "conduct", + "impulsivity", + "autism", + "speech-delay", + "motor-delay", + "learning-disability", + "sleep-disorder", + "peer-issues", + "life-transitions", + "family-changes", + "relocation", + "social-stress", + "relationship-issues", + "build-confidence", + "grow-faith", + "mindfulness", + "personal-values", + "resilience", + "self-compassion", + "unsure", + "other" +]
2 tool updates
- Changed
book_appointment1 field changed- changed
Input schema / properties / date_time / descriptionPrevious value: -"Time slot string from check_availability (e.g. \"2026-04-27 13:00:00 -0400\"). REQUIRED — the booking form is stuck on step 1 without it. Pass exactly as received from check_availability."New value: +"Time slot string from check_availability (e.g. \"2026-04-27T13:00:00-04:00\"). REQUIRED — the booking form is stuck on step 1 without it. Pass exactly as received from check_availability."
- Changed
book_matching_session1 field changed- changed
Input schema / properties / date_time / descriptionPrevious value: -"Time slot string from check_availability for the chosen intake specialist (e.g. \"2026-04-27 13:00:00 -0400\"). REQUIRED — the booking form is stuck on step 1 without it. Pass exactly as received from check_availability."New value: +"Time slot string from check_availability for the chosen intake specialist (e.g. \"2026-04-27T13:00:00-04:00\"). REQUIRED — the booking form is stuck on step 1 without it. Pass exactly as received from check_availability."
5 tool updates
- Changed
book_appointment1 field changed- changed
Input schema / properties / state / enumPrevious value: -[ - "Florida", - "Texas", - "Illinois", - "North Carolina", - "Ohio", - "Missouri", - "Arizona", - "Georgia", - "Wisconsin", - "South Carolina" -]New value: +[ + "Florida", + "Texas", + "Illinois", + "North Carolina", + "Ohio", + "Missouri", + "Arizona", + "Georgia", + "Wisconsin", + "South Carolina", + "Indiana" +]
- Changed
book_matching_session1 field changed- changed
Input schema / properties / state / enumPrevious value: -[ - "Florida", - "Texas", - "Illinois", - "North Carolina", - "Ohio", - "Missouri", - "Arizona", - "Georgia", - "Wisconsin", - "South Carolina" -]New value: +[ + "Florida", + "Texas", + "Illinois", + "North Carolina", + "Ohio", + "Missouri", + "Arizona", + "Georgia", + "Wisconsin", + "South Carolina", + "Indiana" +]
- Changed
check_availability1 field changed- changed
Input schema / properties / state / enumPrevious value: -[ - "Florida", - "Texas", - "Illinois", - "North Carolina", - "Ohio", - "Missouri", - "Arizona", - "Georgia", - "Wisconsin", - "South Carolina" -]New value: +[ + "Florida", + "Texas", + "Illinois", + "North Carolina", + "Ohio", + "Missouri", + "Arizona", + "Georgia", + "Wisconsin", + "South Carolina", + "Indiana" +]
- Changed
find_provider1 field changed- changed
Input schema / properties / state / enumPrevious value: -[ - "Florida", - "Texas", - "Illinois", - "North Carolina", - "Ohio", - "Missouri", - "Arizona", - "Georgia", - "Wisconsin", - "South Carolina" -]New value: +[ + "Florida", + "Texas", + "Illinois", + "North Carolina", + "Ohio", + "Missouri", + "Arizona", + "Georgia", + "Wisconsin", + "South Carolina", + "Indiana" +]
- Changed
start_here1 field changed- changed
Input schema / properties / state / enumPrevious value: -[ - "Florida", - "Texas", - "Illinois", - "North Carolina", - "Ohio", - "Missouri", - "Arizona", - "Georgia", - "Wisconsin", - "South Carolina" -]New value: +[ + "Florida", + "Texas", + "Illinois", + "North Carolina", + "Ohio", + "Missouri", + "Arizona", + "Georgia", + "Wisconsin", + "South Carolina", + "Indiana" +]
10 tool updates
- Changed
about_emora1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
book_appointment2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / appointment_type / enumPrevious value: -[ - "354092", - "446840", - "465593", - "446841", - "449671" -]New value: +[ + "354092", + "446840", + "446841", + "449671", + "465593" +]
- Changed
book_matching_session1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
browse_pages1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
check_availability2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / appointment_type / enumPrevious value: -[ - "354092", - "446840", - "465593", - "446841", - "449671" -]New value: +[ + "354092", + "446840", + "446841", + "449671", + "465593" +]
- Changed
find_provider2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / appointment_type / enumPrevious value: -[ - "354092", - "446840", - "465593", - "446841", - "449671" -]New value: +[ + "354092", + "446840", + "446841", + "449671", + "465593" +]
- Changed
get_cost_estimate2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / service / enumPrevious value: -[ - "354092", - "446840", - "465593", - "446841", - "449671" -]New value: +[ + "354092", + "446840", + "446841", + "449671", + "465593" +]
- Changed
get_crisis_resources1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
search_content1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
start_here1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
2 tool updates
- Changed
book_appointment2 fields changed- changed
Input schema / properties / date_time / descriptionPrevious value: -"Time slot string from check_availability (e.g. \"2026-04-27 13:00:00 -0400\"). Pass exactly as received."New value: +"Time slot string from check_availability (e.g. \"2026-04-27 13:00:00 -0400\"). REQUIRED — the booking form is stuck on step 1 without it. Pass exactly as received from check_availability." - changed
Input schema / requiredPrevious value: -[ - "provider_id", - "state", - "appointment_type" -]New value: +[ + "provider_id", + "state", + "appointment_type", + "date_time" +]
- Changed
book_matching_session3 fields changed- changed
Input schema / properties / date_time / descriptionPrevious value: -"Optional. If the user has already chosen a slot from check_availability for the matching-session intake type, pass it here. Otherwise the booking page lets the user pick."New value: +"Time slot string from check_availability for the chosen intake specialist (e.g. \"2026-04-27 13:00:00 -0400\"). REQUIRED — the booking form is stuck on step 1 without it. Pass exactly as received from check_availability." - added
Input schema / properties / provider_idAdded value: +{ + "description": "Healthie ID of the intake specialist. Get this from find_provider with appointment_type='446840'. REQUIRED — never construct the URL without it.", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "state" -]New value: +[ + "provider_id", + "state", + "date_time" +]
10 tool updates
- First observed
about_emora - First observed
book_appointment - First observed
book_matching_session - First observed
browse_pages - First observed
check_availability - First observed
find_provider - First observed
get_cost_estimate - First observed
get_crisis_resources - First observed
search_content - First observed
start_here
Related MCP Connectors
Check live availability and book therapy sessions with a Malayalam-speaking psychologist.
Teen-first library on CBT, DBT, and finding the right therapist.
Plain-English child psychiatry library — short explainers and decision guides for parents.
Open-access rating scales and clinical references for adolescent psychiatry clinicians.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceConnects users to mental health counseling centers and welfare programs based on location and situation, prioritizing crisis resources.1-
- AlicenseAqualityCmaintenanceSearch 12,338 curated, SAMHSA-sourced addiction treatment facilities across all 50 US states.4MIT
- AlicenseNot gradedqualityAmaintenanceProvides AI-powered child safety tools to detect bullying, grooming, and unsafe content within digital conversations. It enables AI assistants to perform emotional analysis and generate age-appropriate safety action plans or incident reports.736 npm3MIT
- AlicenseNot gradedqualityCmaintenanceEnables searching and comparing GLP-1 medication providers, medications, side effects, and FAQs across a directory of 18,344 US clinics, telehealth programs, and pharmacies.32 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.