Inspiration
Voice assistants are great at answering questions, but they forget. Ask one "what should I review tomorrow?" and it can only guess, because nothing reliably remembers what you studied or when you last practised it. I wanted to give Alexa+ a real memory for learning: something you can study with out loud, hands-free.
What it does
Recall is a spoken study tutor, built as a self-hosted MCP server for the Alexa+ track. Quizzes you out loud: It asks the next card that is due, grades your answer, and reschedules it with the SM-2 spaced-repetition algorithm. A card answered well comes back after 1 day, then 6 days, and the gaps keep growing. Teach-back: For concepts, it asks you to explain the idea in your own words. The server checks which key points you covered and which you missed, then schedules the next review based on how well you did. Progress: It reports cards due, cards reviewed today, mastered cards, and your day streak. Every tool returns a short speech line written to be said aloud, plus structured data.
How we built it
MCP server (Python, official SDK, FastMCP): 7 tools served over Streamable HTTP. I verified it with MCP Inspector, which negotiated protocol version 2025-11-25. Core logic (core.py): SM-2 scheduling, teach-back scoring, and SQLite storage, kept free of MCP code so it is easy to unit test (11 tests). Simulated Alexa+: I could not test on a real Alexa+ device, so I built a browser-based simulator: a small MCP client with a rule-based agent, voice input and output through the Web Speech API, a hands-free mode, and a live panel showing every MCP tool call with its response time (about 13 to 30 ms locally).
Challenges we ran into
Open source: The scheduling and scoring code is also released as a separate MIT-licensed library, recall-engine, with its own tests.
Accomplishments that we're proud of
The MCP Python SDK released a 2.x version that renamed FastMCP, which broke the examples I started from. I pinned mcp<2 and logged it in my friction log (FRICTION.md in the repo). Designing replies for the ear, not the eye: short sentences, the answer revealed only after you respond, and the next question asked straight away. Making the voice loop feel natural, so the page listens again automatically after each spoken reply. Building without access to a real Alexa+ device, which is why the simulator exists.
What we learned
How MCP works end to end (servers, clients, tools, and protocol version negotiation), how to test a server both with MCP Inspector and with a scripted client, and how to turn an algorithm like SM-2 into something you can talk to.
What's next for Recall: a voice study tutor with a memory (Alexa+ MCP)
Per-user accounts (it is single-user today), hosting the server at a public URL and measuring real round-trip latency against Alexa+'s target, and connecting to Alexa+ itself. The simulator's rule-based agent stands in for Alexa+'s own language understanding, and the real thing would replace it.
Code: recall-alexa-mcp and recall-engine
Built With
- fastmcp
- git
- github
- javascript
- mcp
- python
- spaced-repetition
- sqlite
- starlette
- streamable-http
- web-speech-api
Log in or sign up for Devpost to join the conversation.