-
-
Kin — open-source voice caregiving MCP server for Alexa+ · github.com/lokesh-v/kin
-
Kin at rest — every request routed through its MCP server to one of seven tools.
-
"What medicines?" → check_medications_due; "I took it" → log_medication.
-
"Tell Sarah…" → notify_family; "I've fallen" → request_help: EMERGENCY alert.
-
"My knee's a 7" → daily_checkin auto-alerts family: urgent on Sarah's phone.
Inspiration
Tens of millions of older adults live on their own. For many of them, a smartphone is a wall of tiny text and menus — but talking is effortless. And far away, an adult child checks their phone a dozen times a day, wondering: did Mom take her pills? Is she okay? We wanted to give the Alexa already sitting in that living room a caregiving purpose — and quietly close the loop with the family who worries from a distance.
What it does
Kin turns Alexa+ into a gentle caregiving companion. By voice, an aging parent can:
- check which medications are due and log the ones they've taken
- do a daily wellbeing check-in ("my knee is a 7 today")
- hear their appointments
- send a message to family
- and get help immediately in an emergency
The quiet magic is the family loop: when something matters — a critical medication skipped, a hard day, or a fall — Kin reaches out to the family contact on its own. Loved ones stop guessing and simply know.
How we built it
Kin is a self-hosted MCP server over Streamable HTTP (MCP spec 2025-11-25+;
this build negotiates 2026-07-28), written in Python with the mcp SDK. It
exposes seven tools spanning a caregiving day. Every tool returns a speech
field written to be spoken aloud, plus structured data. Domain rules — "a
skipped critical dose notifies family," "pain ≥ 7 raises a gentle flag" — live
in a tested repository layer over SQLite. A simulated Alexa+ web client (itself
an MCP client of the same server) drives the demo, with a split screen showing
the living-room device and the family's phone lighting up live.
For intent planning — deciding which tool a spoken request maps to, exactly as Alexa+ does — Kin uses Amazon Bedrock (Converse API). The MCP server's live tool list is converted into Bedrock tool-use specs, and Bedrock routes each request; it falls back to transparent rules when no credentials are present.
Challenges we ran into
The Python MCP SDK had recently moved to 2.x: FastMCP became MCPServer, the
client helper was renamed, and structuredContent became structured_content
with a silent fallback that masked the bug for a while. We kept a full,
reproducible friction log (in the repo), each entry with a suggested fix.
Accomplishments that we're proud of
A complete, coherent experience that a non-technical 78-year-old could actually use — with a genuine safety payoff in the family loop, not a demo of disconnected features. Nine passing tests, a deterministic demo via a pinnable clock, and a spec-compliant MCP server proven end to end over Streamable HTTP.
What we learned
How Alexa+ consumes MCP, how the Streamable HTTP transport handles sessions and protocol negotiation, and how much of a real caregiving experience can be expressed cleanly as a small set of well-designed, speakable tools.
What's next for KIN
Real notification delivery (Amazon SNS / push) at the existing
record_notification seam, medication-adherence trends over time, and promoting
Amazon Bedrock from the planning layer to richer, memory-aware caregiving
dialogue.
Built With
- alexa+
- amazon-alexa
- amazon-bedrock
- boto3
- html
- javascript
- mcp
- model-context-protocol
- pydantic
- python
- sqlite
- starlette
- streamable-http
- uvicorn
- web-speech-api
Log in or sign up for Devpost to join the conversation.