WebMCP surface: three legal attestations are structurally unreachable by any tool - human-only fields enforced in the data model itself, not by prompt instruction.
Inspiration
Nobody's brain fails at forms; their patience does. A renters-insurance application asks forty questions, a third of which only appear conditionally, in the form's own order - even though the applicant already knows all of it.
What it does
Tell the agent what happened in plain language; it drafts answers onto the real six-step form, in front of you. Nothing the agent writes is an answer yet - every draft lands in a pending layer, highlighted, tracked by provenance (empty / human / pending / accepted / uncertain), and only counts once you accept it. Three legal attestations - fraud acknowledgement, an animal attestation, final accuracy - are marked human-only in the data model itself: no tool can reach them, structurally, not by instruction.
How we built it
One file, vanilla JavaScript. Every tool writes through the same setField() the inputs commit through via one invoke() chokepoint, so conditional fields, repeaters, and validation behave identically whichever side acted. fill_field/fill_section draft into the pending layer; review_submission is read-only and there is no submit tool at all - Submit is a human-only button.
Challenges we ran into
An edge case in add_repeater_item: when a conditional trigger (e.g. "any claims in the last 5 years?") auto-spawned an empty repeater row, the tool would add a second row instead of reusing the empty one the UI had already created - a subtle UI/agent-state drift caught by explicit testing of the conditional-field interaction, not the isolated tool call.
Accomplishments that we're proud of
A form where the agent can genuinely say "I'm not sure" - a flagged, visible uncertainty on a field, not a silent guess - and where three specific legal fields are unreachable by any tool, not merely discouraged by one.
What we learned
Provenance tracking (who wrote this field, and is it still pending) turned out to be the real product, more than the fill-from-text trick itself - it's what makes it safe to let an agent write into a legal document at all.
What's next
Multi-document support (a second insurer's form with a different question set) to prove the provenance model generalizes beyond one carrier's application.
Part of a seven-app portfolio
Each entry proves a different WebMCP capability: Tablemap (dynamic tool registration), Signoff (a tool that only exists once a human approves it), Shortlist (a tool schema generated live from the catalog), Jhola (genuinely cancellable long-running tools), Almari (quarantined untrusted content), Dhwani (declarative, no-JavaScript tools).
Built With
- chrome
- css3
- html5
- javascript
- playwright
- webmcp
Log in or sign up for Devpost to join the conversation.