Hearth

Hearth

An Alexa+ caregiving co-pilot. One shared memory for an aging parent and the family looking after her.

Mom talks to the speaker in her kitchen. Her daughter, three states away, asks her own Alexa how Mom is doing. Hearth is the self-hosted MCP server in between.

Care, coordinated from three states away

More than one in five US adults is an unpaid family caregiver. Many coordinate care from a distance.

What they need to know lives in pill organizers, sticky notes, group texts and the parent's own memory. Voice suits the person being cared for, who may not use apps. The family needs the opposite: a summary, trends, and a nudge when something changes.

Hearth keeps one shared household state that every device and family member reaches through Alexa+. The care recipient adds to it simply by talking.

One day with Hearth

Scroll through Margaret's day. She's 78 and lives alone; Sarah, her daughter, coordinates care remotely. (Demo household.)

  1. Mom just talks

    Margaret tells the speaker in her kitchen that she took her pills. Hearth logs each dose against her schedule and keeps count of what's left.

  2. Compared with her baseline

    A morning check-in about sleep and a sore knee is scored against her recent pain, mood and sleep, so Hearth knows whether it matters.

  3. Something sounds wrong

    A fall and dizziness. The check-in comes back urgent, and Hearth doesn't just file it away.

  4. It asks first

    In the middle of the tool call, Hearth uses MCP elicitation to ask Margaret whether to alert Sarah. Nothing is sent without a yes.

  5. Sarah's phone buzzes

    A push notification through ntfy.sh, or any webhook such as Slack or Discord.

  6. The family catches up

    From her own home, Sarah asks how Mom is doing. Hearth answers out loud and, on screen devices, renders an MCP App card with trends and flags.

It doesn't wait to be asked

Hearth runs on its own clock and knows who it's talking to. Everything below is built and tested in the repo.

Reminders when a dose is missed
30 minutes after a dose is due with nothing logged, Margaret's screen shows a gentle reminder and the light bar glows yellow. After 3 hours, Sarah is told. Each step happens once, and never overnight.
Notes from the doctor's office
A clinic portal or an inbound-email webhook posts to Hearth's care-team inbox. The family gets an alert, and the next time Margaret asks what's due, Alexa reads her the note word for word.
A weekly email for family without an Echo
Every Sunday evening, or when Sarah says “Send David the weekly summary”, David gets the digest by email: adherence, trends, what needs attention, and who's driving.
It knows who is speaking
When the Echo is linked, Hearth asks “Who uses this Alexa?” and carries the answer in the OAuth token. Messages are signed, doses say “logged by David”, and only Margaret hearing a doctor's note counts as heard.

Built on MCP 2025-11-25

A self-hosted server over Streamable HTTP, using the official TypeScript SDK. Each connection gets its own McpServer, so elicitation reaches the right device, and every connection shares one SQLite store.

Tools with structured results
Medication schedule, dose logging, refill forecasting and check-ins return structuredContent and annotations.
Elicitation, form mode
“Should I alert Sarah now?” as a boolean, and a titled-enum (oneOf) picker for who drives to an appointment.
An MCP App
The family digest card at ui://hearth/digest, served as text/html;profile=mcp-app.
Resources and a template
hearth://profile and hearth://day/{date}, with completion.
Prompts
Guided routines: morning_checkin and weekly_family_update.
Logging notifications
An audit trail through notifications/message whenever an alert goes out.
A confirm fallback
Clients without elicitation get a read-back-and-confirm flow, so nothing is sent without a yes.
Transport hardening
GET SSE streams, DELETE teardown, Origin validation (403) against DNS rebinding, CORS for browser clients.
Hearth architecture Alexa+ on an Echo, the web simulator, MCP Inspector and Claude connect to the Hearth MCP server over Streamable HTTP. Hearth sends push notifications through ntfy.sh and webhooks, and stores everything in SQLite. Echo with Alexa+ Alexa+ simulator MCP Inspector Claude and others HearthMCP server ntfy.sh push Webhooks SQLite household Streamable HTTP: POST, GET and DELETE on /mcp

Runs on a real Echo Dot

Hearth deploys as an Alexa+ add-on through the Alexa+ MCP Toolkit. A family member links it in the Alexa app with a household PIN, and from then on the speaker on the counter calls Hearth's tools.

Echo Dot → Alexa+ → tunnel → Hearth on your laptop

  • OAuth 2.1 service tokens with client_credentials
  • Account linking with PKCE (S256), approved with a household PIN
  • RFC 9728 Protected Resource Metadata
  • A bare 401 to trigger linking
  • Tool round trips under 500 ms, checked in tests
  • Listing pages, example phrases and art

mcp-http-probe

Our open-source contribution: a dependency-free conformance checker for MCP servers on the Streamable HTTP transport. It runs 23 checks from the 2025-11-25 spec and links each failure to the rule it breaks.

SDK tests check the SDK. Real servers break in the glue: session maps, auth middleware, proxies and default security settings. Its first run found that a server built from the standard TypeScript SDK example skips the MUST-level Origin check.

- uses: Chinmay-92/mcp-http-probe@v1
  with:
    url: http://127.0.0.1:8787/mcp
    strict: "true"

See it working

Under three minutes, in the simulated Echo Show with its live MCP trace: a missed-dose reminder, elicitation before an alert, the family digest card, a weekly email, and a note from the doctor's office.

Demo video coming soon

Run it yourself

Needs Node.js 22.18 or later. No build step. The first run seeds a demo household.

git clone https://github.com/Chinmay-92/hearth.git && cd hearth
npm install
npm run dev:server     # http://127.0.0.1:8787/mcp
export ANTHROPIC_API_KEY=sk-ant-...
npm run dev:sim        # open http://127.0.0.1:5173 in Chrome
npm run probe          # 23 conformance checks

Connecting your own Echo Dot is covered step by step in alexa/README.md.