Inspiration
SafeBite already had a product evaluator, but a verdict alone is not always enough. When product information is incomplete, people need to understand what is known, what is missing, and what they should verify next without uncertainty being turned into a false safety claim.
SafeBite Ask explores how that experience can work conversationally.
What it does
SafeBite Ask is a typed conversational web simulation for the Alexa+ track backed by real Model Context Protocol (MCP) calls.
The demonstration uses one entirely fictional profile and one invented, unbranded topical product. Only Aqua is supplied as ingredient evidence; the rest of the formulation is deliberately unspecified.
The existing SafeBite evaluator therefore returns:
Needs Review — Need More Information
The 20/100 “Very Low” product-data confidence score represents evidence coverage, not a probability that the product is safe.
The user can then ask four connected questions:
- Is this product okay for the fictional profile?
- Why does it need review?
- What information is missing?
- What are the fictional profile’s restrictions?
Those follow-up questions explain the same stored evaluation rather than generating a new verdict.
The verification response explains what would need to be checked on a real product, including the complete physical label and active or inactive ingredients where listed. Because the demonstration product is fictional, it has no real label or manufacturer.
Profile restrictions are shown only when requested and are separated into categories such as simulated medical allergies, sensitivities, contact triggers, personal avoidance, and food dietary rules. Food rules are not applied to the topical sample.
An evidence card keeps the result, confidence, provenance, and limitations visible throughout the conversation.
How we built it
A bounded utterance router maps supported questions to exactly four authenticated MCP tools:
- check_product
- explain_result
- what_needs_verification
- get_profile_restrictions
Supported turns use the official MCP client and a real Streamable HTTP endpoint.
check_product runs the existing SafeBite evaluator and stores a scoped result reference with its timestamp and session information. Explanation and verification retrieve that same stored result.
The demonstrated four-turn interaction therefore performs one evaluation while progressively explaining it.
The prototype uses TypeScript, Node.js 24, Zod, esbuild, the official Model Context Protocol SDK, and a lightweight HTML/CSS/JavaScript interface.
The underlying SafeBite evaluator existed before this hackathon and was reused without modification. This submission adds the typed four-tool conversational prototype, isolated fictional demo fixture, authentication and session handling, result continuity, scoped MCP outputs, tests, and a reproducible judge package.
Challenges we ran into
The biggest design challenge was explaining incomplete evidence without accidentally implying safety.
The original conversational prototype repeated too much information between turns. We changed the presentation so each question advances the user’s task:
- the first turn gives the result,
- the second explains why,
- the third identifies what needs verification,
- and the fourth shows relevant restrictions.
Another challenge was preparing a judge-ready demonstration without exposing real health or product information. We created a fully fictional profile and product and produced a separate, history-free judging repository.
Alexa+ development tools available only through gated access were not available to hackathon participants, so we used the official MCP SDK with our own clearly labeled web simulator and self-hosted MCP implementation.
Accomplishments that we’re proud of
SafeBite Ask preserves one traceable evaluation across four different conversational turns.
Incomplete information never becomes a fabricated “Safe” result.
The interface explicitly distinguishes evidence coverage from probability of safety.
The evidence card preserves the result and its limitations throughout the conversation.
The isolated judging package passed clean-room TypeScript, build, automated test, MCP interoperability, authorization, and four-turn HTTP validation before submission.
What we learned
Conversation is most useful when every follow-up moves the user’s task forward instead of repeating the original answer.
For evidence-based product decisions, uncertainty itself needs to be treated as useful information.
We also learned that a credible MCP demonstration does not require pretending unavailable Alexa+ tooling is accessible. We can demonstrate the real MCP behavior honestly while stating the boundaries of the simulation.
What’s next for SafeBite Ask
Future work could expand product evidence sources, accessibility, supported product types, voice interaction, and direct Alexa+ integration when the necessary development tooling becomes available.
Those are future directions, not capabilities claimed by this submission.
SafeBite Ask provides decision support, not medical advice.
Built With
- alexa+
- css
- esbuild
- github
- html
- javascript
- mcp
- model-context-protocol
- node.js
- render
- typescript
- zod
Log in or sign up for Devpost to join the conversation.