Inspiration
A parent’s medicines are easy to miss, and the person checking in is often not in the room. We wanted Alexa to act as a home caretaker: know today’s doses, log what was taken or missed, and answer “Did Mom take her medicines?”
What it does
Alexa Caretaker is a simulated Alexa+ companion for one household. Mom’s starter day has Amoxicillin morning and evening, Amlodipine in the morning, and Vitamin D at night.
A caretaker can ask what is due, mark a dose taken, mark a dose missed, and ask for a family summary. The web page is an MCP client. It calls a self-hosted Streamable HTTP server (spec 2025-11-25) for list_today_doses, mark_taken, mark_missed, caretaker_summary, next_due, and add_medicine.
The tools own the schedule. Spoken replies use a rules engine. Amazon Bedrock (Nova Lite) is wired to rephrase that result only, and it stays off until the account quota is above 0. This is reminder and logging support, not medical advice.
How we built it
The UI is React on Vite. The API is Express. On load, the page sends MCP initialize and tools/list to POST /mcp. A typed question is mapped to a tool name, then executed with tools/call. The same endpoint can be opened in MCP Inspector.
Dose state lives in memory, or in MongoDB when MONGO_URI is set. Bedrock uses the Converse API through bedrock:InvokeModel, with the US East inference profile us.amazon.nova-lite-v1:0. If Bedrock is missing or throttled, the app still answers from the tool result.
The repo is public and MIT licensed: swarupe7/alexa-caretaker.
Challenges we ran into
The Alexa+ console, MCP Toolkit, and Web Simulator are select-partner only, so we could not attach the server to a real device. We demoed it with our own page sending initialize, tools/list, and tools/call.
Bedrock onboarding took several wrong turns. The policy editor rejected bedrock:Converse even though the API is named Converse. The base model id was invalid until we switched to the cross-region profile. A new account showed an applied quota of 0, so playground and API calls throttled. The demo keeps the rules-engine voice.
Accomplishments that we're proud of
The medicine action in the demo really goes through MCP, not a hidden REST shortcut. Judges can see list_today_doses, mark_taken, mark_missed, and caretaker_summary on screen, and the checklist updates from those calls.
The tool result stays the source of truth. Bedrock is only a phrasing layer, so a quota failure cannot invent a dose.
What we learned
An Alexa+ hackathon project can still be a real MCP server when the official console is closed. Streamable HTTP is enough: one POST endpoint, a session id, and the three calls above.
We also learned that bedrock:InvokeModel covers Converse, and that Nova Lite in US East must be called as us.amazon.nova-lite-v1:0.
What's next for alexa-caretaker
When the Bedrock quota is applied, Nova Lite will rephrase the same tool facts in a warmer voice. After that, we want dose-time reminders and a path onto Alexa+ itself once self-hosted MCP servers can be linked outside the partner preview.
Log in or sign up for Devpost to join the conversation.