Watch the current 2:39 demo: four exact models, a real public MCP server, persistent evidence, and a bounded handover.
Run the zero-setup production MCP judge suite or try the browser experience.
Inspiration
Australia's Productivity Commission found significant and unnecessary barriers to repair for some products and identified restricted access to repair information among them. Australia's environment department reports that 511,000 tonnes of e-waste were created in 2019. FixProof tests a narrow response: preserve what was actually tried, distinguish observations from assumptions, and carry source-linked evidence into the next repair conversation.
Those sources establish the problem context, not FixProof's effect. This prototype has not measured repair success, time or cost savings, or waste avoided.
What it does
FixProof turns an appliance problem into a persistent, source-linked case. It matches a supported exact model, proposes one bounded user-level check, links the relevant manufacturer page, and waits for the user to record what happened. Later interactions use those explicit outcomes. If the issue remains unresolved, FixProof produces a repair handover containing model provenance, observations, attempted checks, citations, evidence status, and unresolved limits.
The current catalog covers ten paths for three exact Bosch dishwasher models. Electrolux ESF8735ROX adds a separately mapped eight-path subset from its own official manual. Each model has its own official product or service page, manual identity, visually checked page map, and verified source hash. FixProof does not diagnose faults, inspect an appliance, or claim a repair succeeded.
How we built it
The public implementation is a self-hosted five-tool MCP server over Streamable HTTP using the official TypeScript MCP SDK 2.0.0 and D1 persistence. It exposes start_case, read_case, ask_fixproof, record_outcome, and prepare_handover, advertises a self-contained MCP App, and accepts fixed fictional demonstration cases only.
Judges can run one complete production suite in the browser. It negotiates MCP protocol 2025-11-25, discovers all five tools and the App, checks cited continuity, proves an unsupported report stays outside verified guidance, and tests overlapping duplicate delivery plus exact replay and changed-input rejection. The current v0.17.0 suite passes 3/3 and exports a self-contained JSON report containing all three evidence objects, integrity declarations, explicit limits, and an offline verifier URL. Every SHA-256 digest can be independently recomputed; a match detects changed fields but does not prove authorship or real-world work.
The deeper local implementation uses the official MCP Python SDK 2.2.0, Python, SQLite, Ollama, and Qwen 3.5 4B. The model classifies the reported symptom and chooses only among server-supplied remaining check IDs. Application code owns the approved wording, citations, safety boundary, state transitions, and stale-write rejection.
The public HTML/CSS/JavaScript experience is a clearly labelled Alexa+ simulation. It offers optional review-before-send browser speech, browser persistence, model-specific guided paths, a local evidence verifier, and direct judge routes. No Alexa-device execution is claimed.
Challenges
The central engineering challenge was preserving evidence boundaries while still using an agentic model. Early combined classification and selection could assume a symptom or repeat a completed check. We separated classification from selection and restricted the model to the current closed-world IDs.
Retries and concurrent tabs also had to be safe. Request IDs make writes idempotent, case revisions reject stale updates, and database transactions preserve the last confirmed state. The production retry proof sends overlapping copies of one mutation, confirms convergence, replays the same request, rejects changed input under that request ID, and reads back exactly one persisted outcome.
Adding a second manufacturer required separate manuals, service pages, hashes, page maps, and unsupported-path behavior rather than treating similar symptoms as interchangeable.
Accomplishments
- A real public five-tool MCP endpoint with D1 continuity and a self-contained MCP App.
- A zero-setup 3/3 production suite with independently recomputable evidence.
- Four exact models: ten Bosch paths and an eight-path Electrolux subset.
- Explicit outcome recording without inferred completion or resolution.
- Portable Markdown and versioned JSON handovers with exact citations and integrity declarations.
- Performed, deferred, skipped, and merely suggested checks remain distinct.
- Safety and unsupported reports stop guidance and persist into the handover.
- A public zero-install simulation and a public MIT-licensed repository.
- A controlled equal-fact retrieval evaluation across 54 blind-format reads. FixProof handovers preserved 254/270 scored fields with zero critical errors, versus 243/270 and five critical errors for ordinary transcripts. Handovers scored lower in two scenarios and tied in one; this is synthetic mechanism evidence, not customer research.
Open Source Mini Challenge
The additional FixProof Evidence Verifier is an MIT-licensed, standard-library-only Python command-line tool. Its hackathon contribution verifies a fictional handover bundle exported by the public TypeScript service, rejects changed or malformed evidence, and states the boundary that integrity is not authorship or repair proof.
What we learned
Persistent state changes the value of an assistant more than adding another answer. The useful unit is a verified observation with provenance, not a confident paragraph. We also learned that a clearly labelled Alexa+ web simulation can make the experience testable while a real MCP surface provides the stronger agent-integration path.
What's next
Expand the catalog only with model-specific evidence. Add authenticated hosted storage before accepting real household cases. Seek legitimate appliance-owner and repair-professional evaluation, then adapt the handover to what actually improves a service conversation. An Alexa-device experience remains future work.
Built with
TypeScript, Python, official MCP TypeScript and Python SDKs, Streamable HTTP, D1, SQLite, Ollama, Qwen 3.5 4B, HTML, CSS, JavaScript, and the Web Speech API.
Built With
- javascript
- mcp
- ollama
- python
- sqlite
Log in or sign up for Devpost to join the conversation.