Inspiration
I teach IT at a public school in Punjab, Pakistan. I have seen students understand most of a programming lesson but get stuck on one small step. Often, a hint at the right moment is enough to help them work out the answer themselves. That experience inspired LessonLoop: a way to give students another chance to understand and give teachers a clear picture of their progress.
What LessonLoop does
LessonLoop gives learners short Python exercises on variables, decisions, and loops. They can try an answer, request a hint, and read an explanation. In supported browsers, they can also hear the guidance and speak an answer.
The teacher view records the learning goal, attempts, hints used, completion status, and suggested next topic. Sessions are saved locally, so progress remains available after the server restarts.
I added an optional AWS coach. When Amazon Bedrock is configured, a learner can request a short explanation based on the lesson and their typed answer. The written lesson answers still determine whether an answer is correct. The Bedrock feature has passed a test with a simulated response; I am completing a live AWS test separately.
How I built it
I built a local web app and a Model Context Protocol (MCP) server around the same lessons and session records. Five MCP tools support the core workflow: listing lessons, starting a lesson, getting a hint, submitting an answer, and reading progress. I verified that workflow with an independent client using the official TypeScript MCP SDK.
A sixth, optional MCP tool uses the AWS SDK for JavaScript to call Amazon Bedrock’s Converse API. It sends the lesson details and typed answer, without sending the learner’s name or saved progress. The web app shows an Ask AWS coach button when AWS is configured.
LessonLoop is an Alexa+ education concept with a working local MCP endpoint. It does not connect to an Alexa account or device.
Open source contribution
I wanted other developers to have a simple way to check the MCP workflow outside LessonLoop’s own browser. I therefore contributed a small, dependency-free Node.js testing tool to my public BAIG repository. It connects to a running LessonLoop server, discovers its tools, starts a lesson, requests a hint, submits an answer, and checks the saved progress. It exits with an error if any step fails.
I tested the tool against my local server and shared the contribution in pull request #1. My GitHub username is rajab-rajab. The contribution gives developers a quick, repeatable way to check that the lesson tools work from a separate client.
Challenges and what I learned
One challenge was keeping the web app and MCP tools in step. I wanted a lesson started through an MCP client to appear in the browser and remain available after a restart. I also learned to test the MCP endpoint with the right kind of request: opening its address in a browser sends GET, while an MCP client calls the tools through HTTP POST.
Adding Bedrock raised another question: where should AI help, and where should the result stay predictable? I kept grading tied to the written lesson answers and used the optional model call for extra explanation. Students and teachers should be able to understand why an answer was marked correct.
My next steps are to verify the Bedrock feature with a live call, add more lessons, and try the voice experience with learners in a real classroom.
Primary project repository: https://github.com/rajab-rajab/lessonloop-alexa-mcp Original demo: https://youtu.be/PAUA3DM8F9I
Built With
- enter-each-tag-separately
- javascript
- pytho
Log in or sign up for Devpost to join the conversation.