Inspiration
I started thinking about this when I realized how much of what's in a home nobody really keeps track of. The crib a friend lent you, the dresser from a second-hand shop, the car seat your sister passed down, the ice cream in the freezer. If any of those got recalled tomorrow, how would you find out? Probably you wouldn't.
Amazon already warns you about things you bought on Amazon, but most of what's in a home didn't come from there. So I wondered: what if the assistant that already lives in the kitchen just knew what you own, kept an eye on it, and told you when something was wrong?
What it does
Recall Guardian is an MCP server that turns Alexa+ into a recall guardian for the whole home:
- Register by voice, the step nobody does: "Alexa, we were gifted a dresser and a car seat." Alexa only asks what's needed to identify the product.
- Check instantly against official US recall data: CPSC (consumer products), NHTSA (vehicles and car seats) and the FDA (food and medicine), including the family's allergies.
- Watch every day: a daily watcher matches new recalls against every household and Alexa warns the family proactively.
- Guide the fix: what to do right now, who to contact and how to get the free repair, refund or replacement.
How I built it
- MCP server (TypeScript, official SDK, spec 2025-11-25, Streamable HTTP) with 11 tools, on AWS Lambda.
- Matching pipeline, the hard part: brand and model normalization, phonetic brand matching (speech recognition writes "Aitjunz" as "8th June"), a second opinion from Claude on Amazon Bedrock that can only make an answer more careful, never less, and one short clarifying question when a detail is missing instead of a guess.
- Daily watcher with EventBridge + Lambda, data in DynamoDB, all deployed with AWS CDK.
- Alexa+ simulator: since the real Alexa+ toolkit wasn't available to me, I built a web simulator where Claude on Bedrock acts as Alexa+ and talks to the MCP server as a real MCP client, with Amazon Transcribe (custom vocabulary of recalled brands), Amazon Polly, a wake word and a follow-up mode like a real Echo.
- Security and cost controls: demo key, reserved concurrency, daily caps. Estimated cost: about $12/month at demo usage.
- I built it with Claude Code as an AI pair programmer, working from a written spec and task list, with tests on every step: 447 automated tests that run on every push.
Challenges I ran into
- Rare brand names by voice. Speech recognition never gets "Aitjunz" right, so the MCP server matches brands by how they sound and confirms the spelling.
- Honest evaluation. My matcher scored 100% on my first test sets, which was too good to be true: some labels had been reconciled with its output, and the generated items came from the same fields it reads. So I wrote a blind challenge set of 40 messy descriptions (misheard brands, vague descriptions, partial model numbers), labeled before running the matcher, and tested it against 1,313 real recalls. Blind first run: 0 false "recalled" claims, and 21 of 26 recalled items handled safely (80.8%). I report that number, not the 100%.
- Data that doesn't fit. The NHTSA API can't list "new recalls since date X", and car seats are "equipment" rather than vehicles, so I needed a backfill and a cache.
- Making voice feel natural: wake word, follow-up mode without repeating "Alexa", and not letting Alexa hear herself.
Accomplishments that I'm proud of
A real, deployed system that runs the full story end to end: register, match, warn proactively and guide the fix. And the evaluation numbers are honest.
What I learned
How to design MCP tools for voice (short spoken summaries, confirmations, clarifying questions), how much the quality of a product depends on edge cases, and how to work with an AI coding agent on a real project: a clear spec, small verifiable tasks and tests are what make it work.
What's next for Recall Guardian
Connect it to the real Alexa+ MCP toolkit, read model numbers from a photo of the product label, add OAuth for households, and support more countries' recall databases.
Built With
- amazon-bedrock
- amazon-cloudfront-cdn
- amazon-dynamodb
- amazon-eventbridge
- amazon-polly
- amazon-transcribe
- aws-cdk
- aws-cloudformation
- aws-lambda
- aws-systems-manager
- claude
- cpsc-api
- github-actions
- model-context-protocol
- nhtsa-api
- node.js
- openfda
- playwright
- typescript
- vitest
- web-speech-api
Log in or sign up for Devpost to join the conversation.