Repository navigation
The state of the repository as submitted to The WebMCP Challenge. Tagged so the snapshot judges evaluated stays reachable if work continues on main.
- Live demo: traces.ribdsp.com
- Video: youtu.be/KyME2kG7_PI
- Submission: devpost.com/software/traces-3snwtz
What's in it
17 WebMCP tools over a session replay engine. The agent reads the session's shape, compresses a replayed DOM into something a model can actually read, and binary-searches the timeline for the millisecond a state change happened — then hands the answer back to a human by moving their playhead to it.
Two things it does that a tool surface usually doesn't:
ask_human_visualblocks. The agent declares that it cannot see rendered output, asks a person to look at a specific moment, and waits. Answers come back structured — a choice plus a timestamp — not as prose to reinterpret. WebMCP has no"image"content type, and that constraint produced a better design than screenshots would have.- Every mutation carries an author. The activity feed distinguishes what the agent did from what the human did, per contribution, with undo on each.
No backend. Recordings are static JSON; replay, binary search, DOM compression and report validation all happen in the tab.
Verified at this tag
npx tsc --noEmitclean- 309 tests passing across 25 files.
compress-dom,bisectandevaluatePredicatewere written first as specifications and stayed red until the implementations satisfied them no-eval.test.tsgreps the source and fails the build ifeval(ornew Functionappears — nothing from the model is ever executed
Known, and stated rather than hidden
registerDynamicTool is a stub and nothing calls it: promoting a hypothesis does not mint an 18th tool. bisect assumes a monotonic predicate. read_network cannot see sendBeacon, WebSockets or EventSource. Full list in the README's Status and limitations.
Requires Node 20+ and WebMCP in the browser — see Getting WebMCP in your browser. Without it, Traces still works as an ordinary replay player; the tools simply aren't registered.