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
/statusand/ack. - Tool design for voice: tools return structured
needs_clarificationresults 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
innerHTMLanywhere 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 (
FastMCPbecameMCPServer), and most tutorials still show v1. - Python's
\wsplits 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.
Log in or sign up for Devpost to join the conversation.