## Inspiration

Millions of families look after an elderly parent from a distance. A son or daughter works in another city while Amma lives at home, and medicines have to be taken at different times of the day. It's easy to miss a tablet, and nobody notices until it becomes a real health problem, like high blood sugar or a spike in blood pressure.

I wanted something simple enough for an elderly person to use by just speaking, and transparent enough for the family to trust. Alexa+ is already in the living room, and MCP gives assistants a structured way to call tools. That led to "CareCue": peace of mind for families, by voice.

What it does

CareCue is a "self-hosted MCP server" that lets Alexa+ manage a person's medicine routine entirely by voice, while the family watches a "live caregiver dashboard".

  • "Add Metformin for Amma in the morning" adds the medicine to her schedule.
  • "Amma took her Metformin" logs the dose with a timestamp. Duplicates are ignored, so the same tablet can't be counted twice.
  • "How is Amma doing today?" gives the family a short summary of what was taken and what is still pending.

CareCue exposes "eight MCP tools":

  1. add medication
  2. remove medication
  3. today's schedule
  4. what's due now
  5. mark taken
  6. caregiver summary
  7. weekly adherence
  8. family update message

How I built it

  • "MCP server (server.py):" Each tool is a simple function marked with the MCP tool decorator. The server uses the "Streamable HTTP" transport and serves the caregiver web app alongside the MCP endpoint.
  • "Core logic (carecue_core):" Scheduling, dose logging, duplicate protection, and adherence calculations live in a separate module with "no outside dependencies", so it is easy to read, test, and reuse.
  • "Caregiver dashboard:" A web app showing each person's schedule, taken and pending doses, and an adherence bar that updates live as voice commands come in.
  • "Alexa+ simulator:" A web panel where you type or speak requests the way you would to Alexa. It replies in one short, speakable sentence and shows exactly which MCP tool was called.
  • "Demo client:" A real MCP client that connects over MCP and calls the same tools, showing CareCue works with any MCP-compatible assistant.
  • "Amazon Bedrock (optional):" When AWS is configured, Bedrock writes the family update message in warm, natural language. When it isn't, CareCue falls back to a plain summary, so the project works fully offline.
  • "Testing:" Unit tests cover duplicate protection and adherence calculations, and I verified the server with the "MCP Inspector" over Streamable HTTP.

The project is open source under the "MIT license".

Challenges I ran into

  • "Designing for voice:" Replies have to be one short sentence that is easy to hear, not a paragraph to read. I had to cut every response down to what a person actually needs to know.
  • "Duplicate doses:" In real life a parent may say "I took it" twice, or two family members may both report it. I made dose logging idempotent so adherence numbers stay accurate.
  • "Working with or without the cloud:" I wanted Bedrock to improve the family message without making AWS a requirement, so I built a graceful fallback.
  • "Keeping the core simple:" Keeping the logic dependency-free meant writing small, focused functions, but it made testing and debugging much easier.

What I learned

  • How the "Model Context Protocol" works: tool definitions, schemas, and the Streamable HTTP transport.
  • How to test an MCP server with the "MCP Inspector" and a real client, not just a simulator.
  • That good voice UX is about brevity, and that health-related tools need guardrails like duplicate protection.
  • How to combine optional AWS services like Bedrock with a fully offline-capable design.

What's next

  • Real reminders and "what's due now" prompts spoken proactively on Alexa+
  • Support for multiple family members and multiple care recipients
  • Alerts to caregivers when a dose is missed
  • Regional-language voice support

"CareCue: peace of mind for families, by voice."

Built With

Share this project:

Updates

Submission history