Inspiration

Recognising a worked solution is different from being able to produce one independently. RecallLab makes that gap visible through an attempt-first learning loop for mathematics for economics.

What it does

Students explain their thinking, open reviewed hints and original source notes, retry, and complete five separate questions with feedback withheld until the check ends. The first module includes 12 concepts, 25 practice questions and five independent check questions. Progress records explored questions, hint/solution assistance and independent results, with a suggested next-day review queue. Optional speech leaves an editable transcript; typing always works.

How we built it

React, Vite and TypeScript call a real FastMCP server through the official MCP TypeScript SDK and Streamable HTTP. Four tools start or resume a session, submit an attempt, request reviewed help and retrieve progress. FastAPI serves the interface and MCP endpoint together, and SQLite stores attempts, assistance flags, content versions and model usage.

A bounded AST grammar constructs SymPy expressions directly. Learner text is never executed as Python. Intermediate size, depth, power and degree limits protect mathematical checking. SQLite transactions and request IDs make duplicate submissions return one saved attempt.

The optional Amazon Bedrock Converse adapter validates rubric results and allowlisted misconception IDs, then renders authored feedback. AWS authentication works, but AWS Support declined model access and the latest inference retry remains blocked. Cloud assessment is therefore off: conceptual answers are explicitly saved for self-review, not falsely marked as model-graded.

Challenges we ran into

We separated MCP transport sessions from durable learning sessions, enforced hidden check results on every server response, and rejected malformed or contradictory model diagnostics. The AWS onboarding restriction also led us to preserve a useful local learning experience and report the limitation directly.

Accomplishments

The full local release verifier passes: 79 backend tests, production TypeScript/Vite build, dependency checks and zero production dependency audit vulnerabilities. Browser checks covered actual MCP practice, original sources, saved resume, responsive layouts and a completed five-question independent check. The official Python MCP client also negotiated protocol 2025-11-25 and discovered all four tools.

What we learned

A useful learning tool must distinguish assistance from independent performance. Deterministic maths, reviewed feedback and explicit abstention make the assessment boundary easier to understand and test.

What is next

Independent educator label review, a live 60-case conceptual benchmark after access clears, and a five-student pilot with parallel immediate and next-day questions. No live model accuracy, measured cloud cost, student research or learning-effect claim is made yet. This is a browser simulation of an Alexa+ use case with real MCP, not a native Alexa+ integration.

Product feedback

The repository includes observed SDK/service feedback, actionable feature requests and an actual friction log in docs/PRODUCT_FEEDBACK.md. The demo is an edited walkthrough of real browser captures and clearly labelled explanatory cards. All source and original learning content are MIT licensed.

Built With

Share this project:

Updates

Submission history