Inspiration
At home, three of us share the little things — like Mom's daily pill. And we keep asking each other the same question: did she already take it? People forget, texts get buried, and a dose can be given twice by mistake. We wanted a shared memory any family member can ask out loud, and that always shows where its answer came from.
What it does
Care Ledger is a family care log for Alexa+. Family members say what they did — "I gave Mom her blood pressure pill" — and it keeps their exact words, with who said it and when. Later, anyone can ask "Did Mom take her pill?" and hear an answer built from that log, ending with the person and the words behind it.
- If someone tries to log a dose that is already recorded, it pauses, reads back the earlier record, and asks: "Your call."
- If two people disagree, it reads both accounts and asks them to check with each other. It does not guess.
- "Catch me up" gives the next person the latest events, in the family's own words, and anything still open.
How we built it
- MCP server. A self-hosted Model Context Protocol server over Streamable HTTP (spec 2025-11-25), with five tools:
log_event,get_status,check_repeat,handoffandforget. The web simulator is a real MCP client: initialize, tools/list, tools/call. - Amazon Bedrock (Claude Haiku 4.5) reads the spoken sentence and turns it into a structured intent. That is all it does.
- Rules decide the facts. Whether something is already in the log, whether two people disagree, and what counts as "given" are plain code over an append-only log. The language model never decides whether a dose is allowed.
- Amazon Polly (neural voice Joanna) reads each answer aloud.
- Append-only. Nothing is overwritten. A correction is a new record next to the old one. "Forget" removes the words from storage and from every later answer.
Challenges we ran into
- The official Alexa+ developer tools are partner-only, so we built our own simulator that is a genuine MCP client.
- A review found real gaps in our first version: the server answered requests from any website, "I will give Dad his pill tomorrow" was saved as already given, and a correction could slip past the repeat check. We wrote a failing test for each one, then fixed it.
- Getting a browser to act as an MCP client needed exact CORS and Accept headers that were spread across several pages.
Accomplishments that we're proud of
- Every answer can be traced back to a person, a time, and their exact words.
- The safety check is plain code, not a language model, and the final decision always stays with people.
- A friendly helper, not a replacement. We drew this line on purpose. People welcome an AI that extends them, and resist one that seems to replace someone they love. So Care Ledger speaks briefly and kindly, but never as a family member, never imitates the person being cared for, and gives no medical advice. These rules are written once in the code, used in the Bedrock prompt, and checked by a test that fails if a reply drifts.
What we learned
In care, trust comes from knowing who said what. A helper that remembers exactly and hands decisions back keeps people in charge, and means nobody has to carry the memory alone. Letting the model understand the sentence, and letting code decide the facts, made the app both friendlier and safer.
What's next for Care Ledger
- Connect to a real Alexa+ device once a public sandbox exists.
- Deploy the DynamoDB store so several family members can share one ledger from different homes.
- Let each family set its own repeat-check windows. The current ones are sample settings, not dosing guidance. Care Ledger is not medical advice.
Built With
- alexa+
- amazon-bedrock
- amazon-dynamodb
- amazon-polly
- javascript
- kiro
- mcp
- node.js
Log in or sign up for Devpost to join the conversation.