Inspiration

I lose small things all the time. "Call the bank tomorrow." "Look into that budget idea." They come to me while my hands are full or my head is somewhere else, and by the time I sit down to type them out, they're gone.

Voice assistants are great at timers and weather, but they don't really keep track of your day. I wanted to just say a sentence and have it become a real task or note I could check later on a screen. When I saw Alexa+ was built on MCP, the open standard for connecting AI to tools, I figured I could build that bridge myself.

What it does

VoiceDesk is a self-hosted MCP server for Alexa+ with a live dashboard next to it.

Say "Add call the bank tomorrow" and it creates a task with the right due date, then answers in one short sentence you can hear aloud: "Added call the bank, due Wednesday."

Right now you can:

  • Add and list tasks in plain language ("what's on my list today?")
  • Mark things done by name. If two tasks match, it asks which one instead of guessing
  • Save and search notes by voice
  • Ask your notes a question ("what did I decide about the budget?") and get an answer built from your own notes, with the sources shown, using Amazon Bedrock

The part I'm proudest of is the Trace, a panel on the dashboard that shows each thing you say turning into a tool call, with the arguments, the result, and how long it took. You can see MCP working instead of just trusting that it is.

How I built it

  • Backend: FastAPI. One service layer powers two doors: /mcp for the Alexa+ tools and /api for the dashboard, so what you do by voice always shows up on screen.
  • MCP: the official Python MCP SDK, served over Streamable HTTP. Every tool returns structured data plus a short speech line meant to be read aloud.
  • Data: SQLite with SQLAlchemy, and full-text search for notes.
  • Dates and matching: dateparser turns "tomorrow" and "next Friday" into real dates, and rapidfuzz handles "mark call the bank done".
  • Frontend: React, TypeScript, and Tailwind. Live updates come through Server-Sent Events.
  • Simulated Alexa+ panel: I built a simulator in the web app that sends your sentence to a small router, which then calls my MCP server through a real MCP client. Nothing in the demo is faked. It runs the same code path an Alexa+ request would.
  • AWS: Amazon Bedrock (Converse API) powers the "ask your notes" answers and summaries. It's behind a feature flag, so the app still works without it.
  • Open source: MIT licensed, with tests for the tools and API.

Challenges I ran into

  • No physical Alexa+ setup. I couldn't test on a real device, so I built the simulator to go through the actual MCP endpoint, not around it.
  • Getting the MCP transport right. Mounting Streamable HTTP inside a FastAPI app and matching the spec version took more reading and trial and error than I expected.
  • Vague human language. "Tomorrow", "that bank thing", and "done" all need interpreting. Getting the server to ask a clarifying question instead of silently picking the wrong task took a few rewrites.
  • Writing for ears, not eyes. A reply that looks fine on a screen can be exhausting to hear. I kept trimming the spoken responses until they were short enough to say out loud.
  • Three days. I had to cut features to protect the core flow and the demo.

What I learned

  • MCP tool descriptions matter a lot. Writing them for the model that will call them, with a clear "use this when..." and an example, made tools get picked correctly far more often.
  • Returning a short spoken reply alongside the structured result makes a tool feel much better in a voice setting.
  • Making the invisible visible is worth the effort. The Trace panel helped me debug faster and also made the demo easier to follow.
  • I wrote down every rough spot as I went. The friction log and product feedback are in the repo.

What's next

  • Trying it on a real Alexa+ device once I have access
  • Sign-in so a household can share lists
  • Calendar sync, so due dates show up where you already look
  • Recurring tasks ("every Monday")

Built With

Share this project:

Updates

posted an update —

VoiceDesk is submitted to the Amazon Developer Hackathon (Alexa+ track).

Say "Add call the bank tomorrow" and it becomes a real task with a due date, confirmed in one short spoken sentence. A live dashboard shows every step as an MCP tool call, with its arguments, result and latency.

What's inside

  • Self-hosted MCP server over Streamable HTTP
  • Clarifying questions when a request is ambiguous
  • "Ask Bedrock Recall" for answers grounded in your own saved notes
  • A simulated Alexa+ panel that calls the real MCP server
  • Open source under the MIT license, with tests

Links

Feedback is welcome in the comments!

Log in or sign up for Devpost to join the conversation.

Submission history