Ratiflow
Tagline
Capability grants for page agents: the human chooses access → WebMCP registers only that catalog → every edit lands as reversible, attributed proof.
Try it out
- Live: https://ratiflow-webmcp.vercel.app/
- Repo: https://github.com/anthonyisaa/webMCP_Hackathon
- Video: https://www.youtube.com/watch?v=5KixpBV92v8
Inspiration
Incident reports and launch docs already mix people and AI. The finished paragraph usually survives. The request, tools, sources, authorship, and rationale usually do not. The next teammate sees prose—not why it changed. Another agent often repeats the same work.
Most “AI in docs” products add chat beside a document. Ratiflow answers a different WebMCP question: what is this agent allowed to do on this page, right now?
The human chooses an access profile for the assignment. The live page registers only that tool catalog. The agent works inside that grant. The document records an immutable revision with prompt, sources, authorship, and diff.
WebMCP fits because the website—not a side chat—owns the capability surface for the current task.
What it does
Ratiflow is a shared Markdown workspace focused on two high-stakes templates: an incident postmortem and a product launch decision.
- Select a passage
- Assign
@Code,@Data, or@General(expertise label) - Separately choose assignment access: Repository, Metrics, or Editorial
- Ratiflow maps that choice to a capability grant and registers the matching WebMCP catalog
- The agent updates only the selection; Flight Recorder + History keep the proof
Product rule: bot name is not permission. The same @Code identity gets different tools when access switches from Repository → Editorial. During a managed run, the page withdraws the idle BYO-agent catalog and restores it after.
Demo sources are deterministic fixtures so judges can replay the same path. Server authority (range, lease, revision, evidence) is the security boundary; the visible catalog only guides the agent.
90-second demo
- Open completed INC-482 postmortem doc at the live URL
- Assign
@Code+ Repository scoped edit - Watch Flight Recorder: catalog → tool calls → commit
- Keep
@Code, switch to Editorial scoped edit → different catalog - Open History → inspect diff / Restore
How we built it
Next.js · React · TypeScript · Supabase/Postgres · Vercel
- Dynamic
document.modelContextregistration with generation-scoped catalogs - Two mutually exclusive surfaces: idle BYO-agent tools vs managed-assignment tools
- Application-owned Luna ↔ WebMCP relay (Responses API tool search → browser
getTools/executeTool); credentials stay server-side - Server enforcement of identity, access, document range, and source revision
- Full Markdown snapshots with digests, diffs, and Restore
Challenges we ran into
Connecting a server-side model to live browser WebMCP tools (discovery, execute, cancel, retry, stale descriptors). WebMCP has no pub/sub, so mentions wake the open page; long unattended runs are out of scope by design. Catalog visibility is guidance only—permissions are enforced on the server.
Accomplishments that we’re proud of
- Live, judge-runnable WebMCP workspace with coach + Flight Recorder
- Capability grants as product: same agent identity, different access → different registered tool catalog
- Application-owned Luna↔WebMCP relay with fail-closed stale-tool handling
- Immutable revisions with prompt, sources, authorship, diff, and Restore
- Narrow scope: two document types, deterministic fixtures, reproducible demo
- Open-sourced under MIT
What we learned
WebMCP is not “MCP in the browser” and not a fixed API. The valuable unit is a live, task-scoped tool surface. Designing the handoff—human chooses grant → page registers tools → agent acts → human reviews proof—mattered more than adding more tools. Treat the catalog as UX and the server as authority.
What’s next for Ratiflow
Polish editor UX, add ChatGPT in-app browser smoke notes for judges, and expand fixture-backed evals around catalog switching and stale-tool rejection. Stay narrow: capability grants + reversible proof for high-stakes docs—not a general collab suite.
Built With
- gpt-5.6-luna
- markdown
- next.js
- node.js
- openai-api
- playwright
- postgresql
- react
- responses-api
- supabase
- tailwind-css
- typescript
- vercel
- webmcp

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