Emora Health

Find kids' and teens' mental health clinicians, check availability, get booking links and costs.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
81%
Naming quality
98%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,692Tokens (tool definitions)
~2.3 KBTypical response size
Significant attention impact (2.10% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mental-health-care": {
      "url": "https://www.emorahealth.com/api/mcp/v1"
    }
  }
}

Remote endpoints

https://www.emorahealth.com/api/mcp/v1streamable-http

What it can do

Tool inventory

Tools (8)

๐ŸŸข Read-only๐ŸŸก Write๐Ÿ”ด Deleteโšช Unknown
๐ŸŸขrecommend_care(concern, age, state, service, insurance)

[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" })

Input Schema

{
  "type": "object",
  "properties": {
    "concern": {
      "type": "string",
      "description": "What the parent is worried about, in their words."
    },
    "age": {
      "type": "number",
      "description": "Child's age in years."
    },
    "state": {
      "type": "string",
      "description": "U.S. state, full name or 2-letter code. For a state Emora does not serve, the result says so and lists alternatives."
    },
    "service": {
      "type": "string",
      "enum": [
        "therapy",
        "clinical-matching",
        "medication",
        "adhd-testing",
        "autism-testing"
      ],
      "description": "Optional; inferred from the concern when omitted. therapy, clinical-matching, medication, adhd-testing or autism-testing."
    },
    "insurance": {
      "type": "string",
      "description": "Insurance plan name, or \"Cash Pay\" for self-pay. A plan Emora does not take is ignored, and the result says so."
    }
  },
  "required": [
    "concern"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
๐ŸŸขsearch_providers(state, service, concerns, preferred_approaches, insurance, ...)

[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 })

Input Schema

{
  "type": "object",
  "properties": {
    "state": {
      "type": "string",
      "description": "U.S. state, full name or 2-letter code. For a state Emora does not serve, the result says so and lists alternatives."
    },
    "service": {
      "type": "string",
      "enum": [
        "therapy",
        "clinical-matching",
        "medication",
        "adhd-testing",
        "autism-testing"
      ],
      "description": "therapy (the default), clinical-matching (unsure what is needed), medication (non-stimulant only), adhd-testing or autism-testing."
    },
    "concerns": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "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"
        ]
      },
      "description": "One to three concern IDs from the list. More than three dilutes the ranking."
    },
    "preferred_approaches": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Therapy approaches, e.g. [\"cbt\",\"playTherapy\"]. Clinicians who use them rank higher."
    },
    "insurance": {
      "type": "string",
      "description": "Insurance plan name, or \"Cash Pay\" for self-pay. A plan Emora does not take is ignored, and the result says so."
    },
    "client_age": {
      "type": "number",
      "description": "Child's age in years."
    },
    "preferred_gender": {
      "type": "string",
      "description": "Clinician gender preference: 'female', 'male' or 'non-binary'."
    },
    "preferred_language": {
      "type": "string",
      "description": "A language other than English the clinician should speak."
    },
    "continuation": {
      "type": "string",
      "description": "Token from a previous search_providers result. Repeats its filters; new arguments take precedence."
    },
    "limit": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Matches to return. Defaults to 10, with no maximum."
    },
    "offset": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Matches to skip. next_offset from a previous result gives the next page."
    }
  },
  "required": [
    "state",
    "service"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
๐ŸŸขget_availability(state, service, provider_id, time_zone)

[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' })

Input Schema

{
  "type": "object",
  "properties": {
    "state": {
      "type": "string",
      "description": "U.S. state, full name or 2-letter code. For a state Emora does not serve, the result says so and lists alternatives."
    },
    "service": {
      "type": "string",
      "enum": [
        "therapy",
        "clinical-matching",
        "medication",
        "adhd-testing",
        "autism-testing"
      ],
      "description": "therapy (the default), clinical-matching (unsure what is needed), medication (non-stimulant only), adhd-testing or autism-testing."
    },
    "provider_id": {
      "type": "string",
      "description": "Clinician id from search_providers or recommend_care."
    },
    "time_zone": {
      "type": "string",
      "description": "Optional IANA time zone, e.g. 'America/Chicago'. Defaults to the state's main zone."
    }
  },
  "required": [
    "state",
    "service",
    "provider_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
๐ŸŸขget_booking_link(agent, provider_id, state, service, date_time, ...)

[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' })

Input Schema

{
  "type": "object",
  "properties": {
    "agent": {
      "type": "string",
      "description": "Optional. Your agent or product name, e.g. \"chatgpt\". Added to the booking link as utm_source."
    },
    "provider_id": {
      "type": "string",
      "description": "Clinician id from search_providers."
    },
    "state": {
      "type": "string",
      "description": "U.S. state, full name or 2-letter code. For a state Emora does not serve, the result says so and lists alternatives."
    },
    "service": {
      "type": "string",
      "enum": [
        "therapy",
        "clinical-matching",
        "medication",
        "adhd-testing",
        "autism-testing"
      ],
      "description": "therapy (the default), clinical-matching (unsure what is needed), medication (non-stimulant only), adhd-testing or autism-testing."
    },
    "date_time": {
      "type": "string",
      "description": "The date_time of a slot from get_availability, unchanged, e.g. \"2026-10-29T14:00:00-05:00\"."
    },
    "insurance": {
      "type": "string",
      "description": "Insurance plan name, or \"Cash Pay\" for self-pay. A plan Emora does not take is ignored, and the result says so."
    },
    "client_age": {
      "type": "number",
      "description": "Child's age in years."
    }
  },
  "required": [
    "provider_id",
    "state",
    "service",
    "date_time"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
๐ŸŸขsearch_care_resources(query, type, limit)

[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' })

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "The parent's question or topic, in their words."
    },
    "type": {
      "type": "string",
      "enum": [
        "article",
        "self_test",
        "activity",
        "condition",
        "specialty",
        "clinical_insight"
      ],
      "description": "Optional. Only this kind of resource."
    },
    "limit": {
      "type": "number",
      "description": "Results to return (default 10, max 20)."
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
๐ŸŸขget_cost_estimate(insurance, service)

[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' })

Input Schema

{
  "type": "object",
  "properties": {
    "insurance": {
      "type": "string",
      "description": "Insurance plan name, or \"Cash Pay\" for self-pay. A plan Emora does not take is ignored, and the result says so."
    },
    "service": {
      "type": "string",
      "enum": [
        "therapy",
        "clinical-matching",
        "medication",
        "adhd-testing",
        "autism-testing"
      ],
      "description": "therapy (the default), clinical-matching (unsure what is needed), medication (non-stimulant only), adhd-testing or autism-testing."
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
๐ŸŸขget_emora_overview

[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({})

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
๐ŸŸขget_crisis_resources

[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({})

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded10 tools
verifiedversion not recorded10 tools
verifiedversion not recorded10 tools