-
-
CareCircle on an Echo Show 8: one shared care record for the whole family.
-
Rose logs her morning pills by voice, and Sam’s phone updates live to 2 of 5.
-
Refills never happen by accident: Sam confirms in a form first (MCP form elicitation).
-
The order is only placed on a one-time secure checkout page (MCP URL elicitation).
-
Order placed, and the card tracks it from requested to arriving.
-
Booking runs as an MCP Task: a Strands care team offers three options, and nothing is booked until Sam picks.
-
Booked with a ride: Maya drives, leaving at 10:05 am.
-
Who’s speaking? On a shared Echo, an uncertain voice is asked before anything changes.
-
No medical advice: dosing questions get a safe answer, and no tool is called.
-
Morning check-in: a quiet morning gets a gentle check-in with Rose first, then the family is told.
-
Rose answers, and Sam gets the all-clear.
-
Under the hood: every MCP 2025-11-25 message, live.
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
- alexa
- amazon-bedrock
- amazon-nova
- amazon-polly
- amazon-web-services
- claude
- express.js
- fastapi
- mcp
- model-context-protocol
- node.js
- playwright
- pytest
- python
- strands-agent
- three.js
- typescript
- vite
- vitest
- zod
Log in or sign up for Devpost to join the conversation.