Inspiration
Medication non-adherence is one of the most common, costly, preventable reasons older adults end up in hospital. The harder problem for families is quieter: an adult child who cannot be there 24/7 still needs a single place that remembers what was taken, who is coming, and what was said last week.
Voice assistants today reset every session. “Did Dad take his evening pills?” and “Did the physio ever call back?” are not search queries. They are memory questions. Saarthi (Sanskrit for guide / charioteer) is the notebook I wanted for a real household: an aging parent living independently, and a caregiver who worries from another room or another city.
The Amazon Build, Ship, Shape brief made the shape obvious. The Alexa+ track asked for a self-hosted MCP server, not a wrapper. The AWS Builder mini asked for a real multi-service pipeline. The Open Source mini asked for a license that is visible and a contribution that is usable. The judging criterion that decided the architecture was this line: an agentic workflow that orchestrates across services and maintains state across sessions. Most entries will answer a question. Very few will still know the answer tomorrow.
What Saarthi does
Saarthi is a family care notebook with persistent memory. A caregiver signs in, opens one household, and keeps:
- people and relationships
- medication schedules, remaining supply, and taken/missed dose logs
- appointments
- everyday notes and events
Those records live in a Neo4j knowledge graph. Every meaningful write becomes a node or an edge. The dashboard renders that graph live.
Ask by text or voice. Saarthi answers only from saved records and shows supporting evidence. If nothing is saved, it says so. A cited answer can be opened on the graph (“See in saved connections”). Sign out, sign back in, ask again: the graph still has it. The conversation’s short context is separate from household memory on purpose.
Spoken requests can become drafts. Drafts do not send. A caregiver reviews the title, recipient, date and timezone, then confirms. Confirmation is a real Google Calendar event or a real Amazon SES email, with a matching household record. check_in reports missed doses, low supply, and stale activity inside a configured local window. Escalation is to a person, never to an autonomous medical action.
This is an Alexa-style web experience backed by a real MCP server, Amazon Transcribe, Amazon Polly, and Amazon Bedrock. It is not an Alexa device connection and not a medical device.
Try it: live notebook · source · Voice Turns toolkit
How I built it
Browser family notebook (React, Vite, TypeScript)
├─ official MCP client → Cognito-protected Streamable HTTP /mcp
├─ voice capture → Amazon Transcribe (streaming captions)
└─ short-answer playback ← Amazon Polly (Kajal neural)
│
▼
Self-hosted MCP server (Python, official SDK, spec 2025-11-25+)
tools: household summary, meds/doses, appointments,
notify/digest review, query_memory, check_in, talk_to_saarthi
│
├─ Strands orchestrator on Amazon Bedrock (Nova Pro)
│ MedGuardian · Appointments · FamilyLoop · Watch
├─ Neo4j Aura → relational household graph
├─ Google Calendar → reviewed create / read
└─ Amazon SES → reviewed family email and weekly digest
Built With
- amazon-bedrock
- amazon-cognito
- amazon-ecr
- amazon-iam
- amazon-polly
- amazon-ses
- amazon-transcribe
- amazon-web-services
- aws-app-runner
- aws-cloudformation
- aws-secrets-manager
- boto3
- docker
- fastmcp
- github-actions
- google-calendar-api
- mcp
- model-context-protocol
- neo4j
- pydantic
- python
- react
- strands-agents)
- typescript
- vite

Log in or sign up for Devpost to join the conversation.