Inspiration
Conservation decisions are not a ranking problem. A conservator has to weigh reversible versus cosmetic treatment, standards, budget and exhibition pressure, then sign their name to one option. Most tools optimise the score and hide the reasoning. We wanted a workspace where the recommendation and the human decision stay visibly separate.
What it does
Conservation Studio walks a prepared Cizhou-ware vase case through six stages: multi-source data fusion, plan cover sheet, damage assessment, plan generation, plan evaluation and export.
Plan generation exposes its own derivation: the evidence, the prepared strategies, the active constraints and the weighted ranking. The conservator can override the recommendation. The system records the recommendation, the confirmed choice and the export target as separate values, and the exported decision package carries a SHA-256 digest.
A voice-and-card Studio surface runs on the same backend, so the same case can be reviewed hands-free: speak or type, compare plans, confirm a choice, export.
How we built it
- Vue 3 and TypeScript for the dashboard and the Studio, built with Vite, with three.js viewers for two reduced display references.
- A Python FastAPI backend with the Python MCP SDK: seven typed tools over Streamable HTTP, negotiated at protocol 2025-11-25.
- Deterministic scoring, constraint adjustment, step-order validation and export builders, covered by Node, Python and Playwright tests.
- A public-release gate that keeps original scans, a private reference PDF and credentials out of the production build.
Challenges we ran into
Making the evidence boundary honest without making the product feel empty. The condition findings and plans are authored inputs, and the interface says so at the point of use instead of hiding it in a footnote.
The second challenge was keeping an agent-driven UI trustworthy. Every tool result is validated before it can change state, and stale, duplicated or mismatched responses are rejected rather than applied.
Accomplishments that we're proud of
- Recommendation, human choice and export target stay distinct end to end, including in the exported JSON.
- The derivation panel makes the ranking auditable instead of presenting a black-box score.
- A real MCP handshake and audit trail on screen, not a mock.
- 44 browser tests, 11 Node suites and the Python suite green before submission.
What we learned
Human-in-the-loop is a data-model problem before it is a UI problem. Once recommendation, choice and export are separate records, the interface, the audit trail and the exports all become simpler and more defensible.
What's next
Evaluation with professional conservators, a broader case library, and a native Alexa+ surface instead of the browser simulation.
What this is — and is not
This is a browser-based Alexa+-style simulation backed by a real MCP server. It is not a published Alexa skill, an Echo integration or an Amazon endorsement. Condition findings, treatment plans and scoring inputs are authored for the prepared case. The application computes rankings, constraint checks, validation and export digests, but it does not diagnose damage from images, simulate physical treatment or certify safety.
Built With
- fastapi
- gltf
- mcp
- playwright
- python
- three.js
- typescript
- vite
- vue.js

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