Inspiration

In families like mine, an older parent manages five medicines a day on their own, and their grown-up children ask the same question every day: how is Mom? The answer comes from phone calls, group chats and guesswork. Alexa is already in the kitchen, so we asked: what if the whole family shared one care record, and Mom could keep it up to date just by talking?

What it does

CareCircle is a self-hosted MCP server (spec 2025-11-25, Streamable HTTP) that turns Alexa+ into a family care coordinator, shown in an Alexa+ simulator with a Show 8, Show 15, Dot and phone.

  • Rose (the parent) says "Good morning" and hears what's due; "I took my morning pills" logs them, and Sam's and Maya's devices update live.
  • Sam (son) asks "How is Mom today?" and gets the whole day in one sentence.
  • Refills, never by accident: "Reorder it" opens a confirmation form (MCP elicitation), and the order is only placed on a secure checkout page (URL elicitation).
  • Appointments as an MCP Task: "Book Mom's cardiology follow-up next week, mornings only, and sort out a ride." A Strands care team checks the clinic, family calendars and travel time and offers three options. Nothing is booked until a person picks one. Preferences like "Mom prefers mornings" are remembered for the whole family.
  • Who's speaking? A kitchen Echo is shared. Reads work for anyone, but changes need a confident voice match; if unsure, CareCircle asks who it is first. The rule is enforced by the server, not the model.
  • Morning check-ins: CareCircle learns when Rose is usually up. If her morning goes quiet, it first checks in with her; only if she doesn't answer are Sam and Maya told, calmly, and told again when she answers. The family can pause check-ins ("Mom's staying with me till Sunday").
  • Safe by design: it never gives medical advice, logs red-flag words like a fall and alerts the family, speaks Hindi as well as English, and sends an evening summary (Amazon SNS).

How we built it

  • MCP server (TypeScript, MCP SDK v2): 12 tools with output schemas and annotations, form and URL elicitation, MCP Tasks, an MCP Apps dashboard, subscribable live resources, prompts and an Agent Skill. 152 server tests.
  • Alexa+ simulator: a Python FastAPI orchestrator with a Strands agent on Amazon Bedrock (Nova 2 Lite), a Strands Graph care team for appointment planning, Amazon Polly voices (English and Hindi), and a React web app with device frames and an "Under the hood" panel that shows every MCP message live. 34 simulator tests, plus a mock mode that runs with no AWS account.
  • All data is synthetic. Built with Claude Code as a pair programmer.

Challenges we ran into

  • Our AWS account was locked to one region by an organisation policy, which blocked Bedrock until support helped; we moved everything to ap-southeast-2.
  • Nova once treated "Reorder it" as consent and skipped the confirmation, so confirmation now lives in the server, where a model can't skip it.
  • The MCP TypeScript SDK has Task wire types but no Task runtime, and no hook to put a policy in front of every tool call, so we built both.
  • MCP has no way for a server to make a device speak first, which morning check-ins need; we used live resource updates instead. We logged 19 of these in a friction log with suggested fixes.

Accomplishments that we're proud of

Every action that orders, books or changes something needs a person's yes, and the server enforces it. The check-in asks the parent before it worries the family.

What we learned

Put safety rules in the server, not the prompt. MCP's newer features (elicitation, Tasks, Apps, subscriptions) make a voice assistant feel like a real product, and the hard part of care tech is tone: calm, short, never alarming.

What's next

Deploying on Amazon Bedrock AgentCore Runtime, a real voice-profile signal from Alexa+, and real pharmacy and clinic integrations.

Built With

Share this project:

Updates

Submission history