Inspiration

Many families have a parent living alone while the children study or work in another city. Daily calls are hard to keep up, smart-home alerts feel impersonal, and apps are a barrier for older users. Voice is the interface they already accept, so I built a way for that voice to quietly keep the family informed. [Add your own personal reason here only if it is true.]

What it does

CareCircle is an MCP server (Streamable HTTP) for Alexa+. An older person just talks: "good morning", "I took my tablet", "tell my son to call me". CareCircle records the check-in, confirms routines, relays family messages, and notices what matters: a fall, chest pain, dizziness, a missed check-in or a missed dose. The right caregiver is alerted on Telegram within seconds and receives a plain-language summary each evening. It works in English, Hindi and Marathi.

It is a family notification aid. It is not a medical device or an emergency service, never gives medical advice, and never stores audio.

How I built it

  • 13 MCP tools, a timeline resource and a conversation prompt on top of a framework-free care engine (plain Python and SQLite with an injectable clock).
  • Safety classifier: offline, multilingual and negation-aware ("no chest pain", "चक्कर नहीं"). An optional LLM can only raise severity, never lower it.
  • Escalation: one gentle nudge, then one alert per missed check-in. Duplicates are suppressed, but a more severe event always gets through.
  • Delivery: alerts are pushed the instant they are created and retried by a scheduler if delivery fails. Telegram gives caregivers /status and /ack.
  • Tool design for voice: tools return structured needs_clarification results instead of errors, so the assistant naturally asks "which tablet?".
  • Security: bearer auth, Host-header validation, an anti-CSRF header, a strict CSP and no innerHTML anywhere in the UI.
  • Alexa+ simulator and dashboard in vanilla JS, with a live log of real MCP traffic and demo controls that jump the clock forward to show escalation.
  • 241 automated tests using real MCP client sessions against the server.

Challenges

  • The MCP Python SDK moved to v2 (FastMCP became MCPServer), and most tutorials still show v1.
  • Python's \w splits Devanagari words at vowel signs, which silently broke Hindi negation until I tested it.
  • Live testing exposed a real bug: onboarding someone in the evening instantly fired "missed check-in" and "missed dose" alerts for hours that had already passed. I fixed it and added a regression test.
  • Avoiding alert fatigue while never suppressing a more serious event.
  • [Pick one and edit: "I deployed to Alexa+ and tested in the web simulator." OR "Alexa+ onboarding was blocked by ___; I demonstrate the same MCP server through my own simulator and a standalone MCP client."]

What I learned

How the MCP protocol negotiates versions and runs statelessly, how to design tools that a voice assistant can recover from, and how much care multilingual safety rules need.

What's next

Native-speaker review of the Hindi and Marathi, proactive spoken nudges if the platform allows them, multi-household storage, and caregiver-side voice summaries.

Try it

Public repo with the MIT license and run instructions: [your repo URL]. Quick start: pip install -e ".[dev]", then python -m carecircle serve --demo, then open /sim and /dashboard.

Built With

Share this project:

Updates

Submission history