Recall
Recall
Voice-native spaced repetition, exposed to Alexa+ as a self-hosted MCP server.
Recall quizzes you out loud while your hands are busy — cooking, driving, folding laundry — and grades what you actually said for meaning, not for exact wording.
Built for the Build, Ship, Shape: Amazon Developer Hackathon. Primary track: Alexa+. Mini challenges: AWS Builder, Open Source.
Why this exists
Spaced repetition works. Flashcard apps mostly don't get used, because reviewing requires sitting down with a screen — competing for the exact time of day you have least of.
Recall moves the review into time you already waste. You answer aloud, which is also the better form of practice: free recall beats visual recognition, and speaking an answer forces you to produce it rather than recognise it.
The idea underneath
SM-2, the classic spaced-repetition algorithm, has always taken a 0–5 quality score for each review. Every flashcard app in existence collects that score by making you tap Again / Hard / Good / Easy — a self-assessment made after you have already seen the correct answer, which is precisely when people are worst at judging themselves.
Recall fills that slot honestly. You answer aloud before seeing anything, and a semantic grader scores the answer from outside. The algorithm has had a slot for this signal for thirty years; no interface could fill it until voice and language models arrived together.
How it works
You (speaking)
|
Alexa+ ────── MCP (Streamable HTTP, spec 2025-11-25+)
|
Recall MCP server (FastMCP, Python)
| |
SQLite Amazon Bedrock
store semantic grader
|
SM-2 scheduler (pure functions)Full detail in docs/ARCHITECTURE.md.
Design rationale and the decisions behind it in
docs/superpowers/specs/2026-09-04-recall-design.md.
Tool surface
Tool | What it does |
| Creates a card from spoken input |
| The single most overdue card, phrased as a question - never a list, never with the answer |
| Records what you said and returns immediately. Grading runs behind it. |
| The verdict, once it exists - or an honest "still thinking" |
| Current streak and how many cards are due |
Why five tools and not four. Alexa+ allows a tool call roughly 500 ms, and the
fastest Bedrock model measured takes 557 ms - every model is over budget before the
prompt is even real. So grading is split: submit_answer acknowledges in ~18 ms and
grades in the background, get_grade collects the result. It is also better
conversation than blocking would have been. "Let me think", then an answer, is how
people talk; four seconds of silence is a fault.
Running it
git clone https://github.com/khalidbench1-collab/Recall_Amazon.git
cd Recall_Amazon
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e ".[dev]"
pytest # 77 tests, no credentials needed
python scripts/seed_demo.py # load 8 cards to try
python -m recall.server # MCP over Streamable HTTP on :8080It runs without an AWS account
Grading needs Bedrock; nothing else does. With no credentials the server still starts, serves all five tools, stores and schedules cards, and prints a notice saying what is missing. Answers come back ungraded - and an ungraded answer never changes a card's schedule, so running this way corrupts nothing.
To enable grading, create a Bedrock API key (Bedrock console, Discover, API keys):
cp .env.example .env # then set AWS_BEARER_TOKEN_BEDROCKTesting it without an Alexa device
You do not need one. The server is an ordinary web service speaking an open protocol, so any MCP client drives it:
Unit tests - scheduler, store, grader and speech shaping:
pytestGrader calibration against the live model, which is the evidence that the scoring is fair rather than merely present:
RECALL_CALIBRATION=1 pytest tests/test_calibration.pyResults indocs/CALIBRATION.md.Protocol - point MCP Inspector or Claude Code at
http://localhost:8080/mcp(no trailing slash; a trailing slash costs a 307 redirect on every call)Voice - the browser harness in
sim/uses the Web Speech API to speak to the same server, which is also the hackathon's sanctioned simulated-experience path
Hackathon artefacts
Document | Purpose |
Demo video script, timed to the second | |
Live friction log (worth up to a 10% judging bonus) | |
Required per-SDK product feedback, written as we go | |
Grader calibration against the live model - generated, not written |
Licence
MIT — see LICENSE.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/khalidbench1-collab/Recall_Amazon'
If you have feedback or need assistance with the MCP directory API, please join our Discord server