Inspiration
Kids love to be quizzed out loud, and parents struggle to find screen-free practice that is actually adaptive and safe. We wanted Alexa+ to be a patient tutor that remembers every child, revisits what they find hard, and tells parents what happened this week.
What it does
A child says "Alexa, let's practise". The coach asks one question at a time, listens, and gives warm, varied feedback across eight topics: abacus, algebra, geography (60 countries), times tables, fractions, a spelling bee, reading stories and science. It is built for families, not one demo household: each family gets its own PIN and link token and can add several children, spoken names are matched forgivingly ("Toby" finds Tobi), and data is isolated per family.
The teaching is adaptive. Spaced repetition brings tricky items back later, the coach tracks per-skill mastery and adjusts difficulty, and wrong answers get progressive hints with partial credit. It understands number words, homophones ("to" means 2), spoken fractions ("three quarters"), spelled-out letters ("c a t"), and intents like hint, repeat, "I don't know" and stop. When a child stops they hear a short recap.
Parents get a dashboard with 14-day activity, skill mastery, streaks, badges, weekly goals, daily time limits, topic locks (PIN protected), a weekly report, and data export and delete.
How we built it
A FastMCP server (streamable HTTP at /mcp) exposes the coach as MCP tools: list_children, start_session, next_question, check_answer, get_hint, repeat_question, end_session, get_progress, plus PIN-protected lock_topic and unlock_topic. A bearer token identifies the family, so no tool takes a family argument. A Coach service holds the learning logic on SQLite or Postgres. The repo includes a simulated Alexa+ screen (learning_coach/alexa_sim.py): a web page that listens or takes typed text, speaks replies, and routes every turn through the real MCP tools over /mcp.
An optional AWS layer (off by default) adds Amazon Bedrock Converse with Guardrails for a second opinion on free-text answers and the weekly report narrative, a Strands Agents tutor that plans topics from mastery data, AgentCore Runtime packaging, and CloudFormation for App Runner, Secrets Manager and least-privilege IAM. Every model call has a timeout, a daily cap and a rule-based fallback, and no child personal data goes into prompts.
Where the Alexa+ technology is called in code
learning_coach/server.py: the MCP server and its tools.learning_coach/alexa_sim.py: the simulated Alexa+ screen, which opens an MCP client session against/mcpfor every turn.- Try it:
PARENT_PIN=1234 python -m learning_coach.server, then open/alexa/, or point the MCP Inspector athttp://localhost:8000/mcp/.
Challenges
Speech recognition mishears numbers and letters, so most of the work went into forgiving answer matching and into keeping hints from giving the answer away. Keeping families isolated while a tool call carries no family argument shaped the token design.
Built during the submission window
The first commit is from 2026-09-25 and the project was built for this hackathon: the MCP server and tools, voice layer, spaced repetition, content, families as tenants, parent dashboard and reports, the TV-facing REST API, the simulated Alexa+ screen, the optional AWS layer, and about 240 automated tests.
What's next
Connect to a real Alexa+ device, run the Bedrock features on a live AWS account, and tune the learning parameters on real practice data.
Built With
- amazon-bedrock
- aws-cloudformation
- fastmcp
- mcp
- postgresql
- python
- sqlite
- starlette
- strands-agents
Log in or sign up for Devpost to join the conversation.