-
-
Simulated Alexa+ display: the exact wrong step (line 1 → 2), the typed translation to check, a labelled hint, and a proof verified 17/17.
-
A line that is ambiguous or doesn't parse is held for review: nothing is concluded about it, and the steps around it are still checked.
-
A worksheet problem with no valid answer: the only exact solution is −12 child tickets, certified with a two-line proof.
-
Weekly progress rebuilt from the family notebook; every saved certificate is re-verified before it is counted.
-
How it works: AI only turns words into equations. The exact compiler calculates, and an independent verifier re-checks every certificate.
-
Research tier over real MCP (Streamable HTTP): the compiler returns an exact witness, and the independent verifier replays it.
A child writes 3x = 25 for 3x + 5 = 20. Show Your Work finds the exact line where the answer changes, with a counterexample you can check by hand and a certificate anyone can replay. (A simulated Alexa+ display, not an Amazon product.)
Try it
- Web demo, no install: https://akari-h-111.github.io/algebraic-constraint-compiler/ runs the real Python compiler and verifier in your browser. It uses Guided requests and no AI; spoken replies are pre-recorded Gemini TTS clips (the browser's voice for the rest, labelled).
- Public MCP endpoint (Streamable HTTP, protocol 2025-11-25):
https://show-your-work-mcp.onrender.com/mcp. It's a free instance, so the first request can take about 50 seconds while it wakes up. - Source (MIT): https://github.com/Akari-H-111/algebraic-constraint-compiler
- Open-source spin-off: https://github.com/Akari-H-111/mcp-apps-preview
Inspiration
Just over half of U.S. teens have used AI chatbots for schoolwork, and about four in ten have used them to solve math problems. Parents underestimate how often this happens (Pew Research Center, Feb 2026; 1,458 teens and parents surveyed Sept–Oct 2025). Language models sound sure of themselves, but they are fragile at math. In Apple's GSM-Symbolic study, accuracy fell when only the numbers in a problem changed, and by up to 65% when one irrelevant clause was added.
Picture the kitchen at 8 pm. A parent asks the assistant whether their daughter's algebra is right. The assistant sounds equally sure either way, and nothing in the answer tells the parent whether to believe it. We wanted Alexa+ to be able to show its work, and prove it.
What it does
Show Your Work is a self-hosted MCP server (Streamable HTTP, protocol 2025-11-25) plus a simulated Alexa+ smart-display experience.
- "Check Maya's homework." Maya wrote 3x + 5 = 20, then 3x = 25. Alexa finds the exact line that changes the answer, with a certified counterexample: x = 5 works before that step but gives 15 ≠ 25 after it. Next comes a hint, labelled as a guess: "when +5 moves across, it becomes −5." The answer is revealed only if someone asks.
- Word problems that can't happen. Adult tickets cost $12 and child tickets cost $7, and 20 tickets sold for $300. The only exact solution is −12 child tickets, so the worksheet has a typo. It's a certified "no", with a two-line proof.
- Checks, solves, practice. It checks a proposed answer by substitution and confirms it's the only solution. It solves systems exactly: one answer, a complete infinite family, or "no solution" with a 0 = c contradiction. It makes practice problems whose answer keys were verified before anyone sees them.
- Lines it can't read stay unjudged. Each line of work can carry where it came from (a page region or text range) and whether the reader was sure of it. If a line is ambiguous or doesn't parse as an equation, it goes into a needs-review state: Alexa names the line and asks, nothing is concluded about it, and the steps around it are still certified. The first certified wrong step comes back with its source span so a host can highlight it. Show Your Work does no handwriting recognition itself; the host model reads the page. This ships in 0.4.0 in the source and on the public MCP endpoint (the browser demo runs it too).
- Remembers across sessions. "How is Maya doing this week?" The family notebook stores only verified certificates, replays every one of them before counting it, and names the most common slip.
- An interactive certificate card (MCP Apps). Every result renders as an MCP App. The card shows the typed translation to check, the proof, and live buttons. Replay verifier re-checks the proof through the server. Try a forgery changes one number, recomputes the SHA-256, and shows that the verifier still rejects it.
The trust boundary is visible on purpose. Turning words into equations is the only AI step, and the card shows that translation back ("What I understood — please check"). Everything after it is exact rational arithmetic, replayed by a verifier that never trusts the compiler. Swap the agent's model and the math can't change, because the model never calculates.
How we built it
- Exact compiler (Python standard library). A small, safe reader for linear equations: numbers, exact decimals, unknowns and
+ − × ÷ ( ) =, with noevaland no floats. Elimination overFractiontracks row operations, so every conclusion carries a witness. A unique answer gets the combination of equations that isolates each unknown. "No solution" gets a combination that leaves 0 = c. A broken step gets a point that satisfies one line but not the next. A sound step gets the new equations written as exact combinations of the old ones. - Independent verifier. It never imports the producer, never sees its matrix, and never runs elimination. It re-reads each equation by plugging numbers into its own evaluator, then checks every witness with multiplication and addition. Certificates bind the canonical input SHA-256, scope, backend and version. A certificate from the public server replays on any machine.
- MCP server. MCP Python SDK 1.30.0 (FastMCP) over Streamable HTTP and stdio. It has 8 model-visible tools, 1 app-only tool (
_meta.ui.visibility: ["app"]), 4 prompts, and aui://resource served astext/html;profile=mcp-app. It's deployed from the repository's Dockerfile to a public endpoint. - Simulated Alexa+ host. A standard-library web server with a hand-written MCP client and a real agent loop: the model picks tools, and the host calls them over MCP. It supports Gemini (the model used in the demo video) and Claude (official Anthropic SDK; implemented, not run against the live API), with a model switch in the UI (only Gemini was run live). It listens with the browser's Web Speech recognition and speaks with Gemini TTS: pre-recorded clips of the exact wording in the web demo, live synthesis when run locally with a Gemini key, and the browser's voice as a labelled fallback. It implements the MCP Apps host side, including the required cross-origin sandbox proxy, CSP injection, app-only tool enforcement and fixed container sizing for a smart display. A "Behind the screen" timeline shows every model turn and
tools/callwith timings and verification status. If a model call fails, the device says so. If the model calls a tool but stays silent, the device speaks the tool's verified suggested speech. Guided mode sends preset typed requests to the same tools without any AI. - Research tier. The same architecture began as an exact certifier for finite-dimensional algebraic reconstruction and second-order deformation obstructions (Passes 1–6), and it still ships.
- Testing. 102 automated tests, including real HTTP MCP, adversarial forgeries for every claim type, 250 random systems cross-checked against brute force, verifier-independence checks, corrupted notebook rows, and the simulator's scenarios and agent loop. A no-dependency Chrome DevTools script drives the UI for visual QA and records the demo.
Challenges we ran into
- Keeping "no" honest. "No solution", "no valid answer in the domain", "your step 2 is wrong", "that's nonlinear, I can't certify it", "I can't read that line yet" and "the server failed" are six different things. They stay six distinct statuses all the way to the voice reply.
- Pedagogy versus proof. A kid needs a hint, not the answer. The broken step is certified. The kind of slip is a rule-based guess, and it's labelled that way.
- MCP Apps on a smart display. Web hosts must wrap views in a cross-origin sandbox proxy. We implemented one and hit real sizing and painting behaviour in hidden panes (see the friction log). A fixed-height container, which the spec allows, turned out to be the right design for a display anyway. On a phone the card takes its own height instead.
- Free-tier model limits. Busy models return 503 errors and cap daily requests. The host retries with backoff, falls back to a lighter model, and never lets a model failure look like math.
Accomplishments that we're proud of
- A certified negative answer is a finding: "this worksheet has a typo", with a two-line proof.
- A forged certificate with a freshly recomputed hash is still rejected, live, from a button inside the card.
- Progress reports re-verify every stored result before counting it.
- We released the MCP Apps host tooling as its own open-source project: mcp-apps-preview lints any server against SEP-1865 and previews its views locally. Show Your Work passes it with 0 errors and 0 warnings.
What we learned
Exactness is a product feature only when people can see it. The design moves that mattered were showing the translation back and putting the proof on the screen. A bigger model would not have done that.
What's next
- Quadratics with exact surd certificates, and inequalities (Farkas witnesses for "you can't meet this budget").
- Teacher mode: answer keys for a whole worksheet, each with its own certificate.
- An Alexa+ account-linked notebook for families.
Simulated Alexa+ experience built for the Amazon Developer Hackathon. Not an Amazon product.

Log in or sign up for Devpost to join the conversation.