Inspiration
Stress and low energy build up quietly. Most of us only notice when a week has already gone wrong. We build Aawiz, a privacy-first AI companion that helps people notice early signs of stress and low energy before they become bigger problems. The hardest part of any wellbeing routine is the routine itself: opening an app, filling in a form. Voice is the lowest-effort habit there is: three numbers said out loud while the kettle boils.
The people who need this most are also the least willing to hand their feelings to a product that harvests them. So for us, privacy is the product, not a footnote.
What it does
Aawiz Voice Check-in is a 30-second daily check-in for Alexa+:
- Check in: say your mood, energy and stress (1 to 5) and, if you like, how you slept.
- Reflect: ask "How was my week?" and hear the direction of the last 7 days against the 7 before, in one plain sentence.
- Act: ask "What can I do right now?" and get one small, low-risk action, with the reason.
- Talk to Elin: in Aawiz mode, a new
ask_elintool lets you talk to Elin, the companion inside Aawiz, who remembers earlier conversations. - Stay in control: ask "What do you keep about me?", export everything, or delete everything, by voice.
It never diagnoses, never uses clinical labels, and never claims certainty. If someone uses crisis language, everything stops: no tool is called, nothing is stored or sent, and the assistant points to real people (113 in the Netherlands, 988 in the US).
How we built it
- A self-hosted MCP server on the official MCP Python SDK 2.3.0, over Streamable HTTP at
/mcp. It negotiates protocol 2025-11-25 through the initialize handshake and 2026-07-28 through the SDK's default mode, and our tests check both. It has 7 tools in local mode and 8 in Aawiz mode, each with a fully described JSON schema, so the Alexa+ model knows when to call it. Bearer tokens map to pseudonyms; no token means 401. - An Alexa+ simulator, as the track allows: a web page with voice input, always-on captions, and an "MCP activity" panel. Its backend is a real MCP client, so every tool call you see is a live
tools/call. The default brain is deterministic, so anyone can reproduce the demo without an API key. An optional LLM brain lets a model read the tool schemas and choose tools itself. - Aawiz mode connects the same tools to the real Aawiz product: check-ins go to the user's Aawiz account, the weekly reflection and "Elin suggests" come from Aawiz, and
ask_elintalks to Elin over the app's own chat. Every reply can be spoken in Elin's voice, with the browser's voice as a fallback. - Policy in one file: banned clinical words, crisis phrases, regional resources and the curated actions all live in one auditable JSON file.
- Verified, not trusted: more than 100 automated tests cover the protocol, consent, privacy isolation, the 90-day purge, the safety gate, auth, the language guard, and a full end-to-end browser run.
make verifyruns them all and prints PASS or FAIL per check. CI and a Docker build run on every push.
We are a small team, and we built this with an AI coding assistant (Claude Code). Every change had to pass the tests and CI before it was merged.
Challenges we ran into
- There is no public way yet to attach a self-hosted MCP server to a real Alexa+ device, so we built a faithful simulator that acts as the Alexa+ host through a real MCP client.
- Voice and privacy pull in opposite directions. Browser speech recognition sends audio to a cloud service, so we disclose it plainly and keep typing as a fully local option.
- The real Aawiz check-in stores one named mood, not three scores. We mapped our mood score to Aawiz's own mood list and never assign a worry label to someone who only said a number.
- Safety had to run before anything else. We put the crisis check in front of every network call and proved it with a test that counts zero outgoing requests.
Accomplishments that we're proud of
- It runs on a real product, not a mock-up: a real account, real memory, a real voice.
- A judge can reproduce the whole local version with one command.
- Privacy you can hear: "What do you keep about me?" and "Delete my data" are first-class voice commands.
What we learned
MCP turns a product into a set of well-described actions that any agent host can use. Writing tool descriptions for a voice assistant is product design: short, honest, and specific about when not to call a tool.
What's next
- Real Alexa+ account linking with OAuth, as soon as developer access allows it.
- Dutch and English, for our home market.
- Energy, stress and sleep stored inside Aawiz itself.
- Opt-in team insight for organizations: anonymous and aggregated patterns only, never individual data.
Log in or sign up for Devpost to join the conversation.