Inspiration

Data preparation tools are visually dense, stateful, and risky for agents to operate through generic browser automation. An agent can target the wrong dataset, repeat a mutation, lose track of the current revision, or expose sensitive values while inferring state from tables and graph coordinates.

TabulaFlow explores a better model: one visible data workflow shared by people and agents, with precise semantic operations and explicit human authority.

What it does

TabulaFlow is an auditable, local-first data workbench built around Source → Prepare → Compose.

  • Source imports Excel, CSV, JSON, JSONL, and NDJSON while keeping local data in the browser.
  • Prepare profiles data quality, manages ordered transformation recipes, creates deterministic Formula columns, applies protected filters, and supports human-reviewed qualitative coding.
  • Compose validates and chains Append, Join, Difference, Aggregate, Filter, Distinct, Pivot, and Unpivot operations.
  • WebMCP exposes stable, strict tools for agents to inspect, validate, mutate, export, and monitor the same application state shown to the user.

People retain control of local file selection, agent-upload consent, destructive confirmation, semantic declassification, and qualitative interpretation.

Why WebMCP is a strong fit

Generic browser automation must guess from visual coordinates and transient UI state. TabulaFlow instead exposes a semantic agent API through WebMCP. Agents can discover action-specific contracts, target stable dataset and node IDs, dry-run changes, reject stale revisions, replay idempotently, poll asynchronous operations, and cancel before commit.

This creates a better user experience because agent work is visible in the normal product, recorded in a shared privacy-safe activity ledger, and governed by the same validation and transaction boundaries as direct user actions.

People and agents can now collaborate on multi-step data preparation and graph-based composition without hiding mutations inside an opaque autonomous workflow.

How we built it

  • Frontend: React 19 and Vite
  • Analytical engine: DuckDB-Wasm in a dedicated browser worker
  • Agent interface: document.modelContext.registerTool() with stable dispatcher tools and strict action-specific JSON Schemas
  • Persistence: IndexedDB flow metadata, recipes, graph positions, and activity events
  • Safety: optimistic workspace revisions, idempotency keys, protected-value bindings, bounded redacted previews, writer serialization, asynchronous lifecycle, cooperative cancellation, and visible user confirmations
  • Hosting: ChatGPT Sites-compatible production bundle

The current contract exposes 17 stable WebMCP tools and 60 bounded Source, Prepare, Compose, and qualitative-coding action routes.

What people and agents can do together

Agents can inspect schemas and quality, validate candidate changes, maintain recipes, create Compose operations, promote results, export datasets, and report evidence-backed qualitative coding suggestions. Users can see and review the same state, undo transformations, reject unsafe actions, and retain exclusive authority over sensitive boundaries.

How we used AI

Codex and ChatGPT supported implementation, debugging, regression testing, live WebMCP QC, documentation, and demo preparation. The human owner set product direction, reviewed trade-offs, controlled releases, and accepted or rejected changes.

Testing instructions

  1. Open the live app in ChatGPT's in-app browser or Chrome with WebMCP enabled.
  2. Download the synthetic fixture from the public repository at examples/webmcp-demo.csv.
  3. Import it manually in Source. No login is required.
  4. Call the capabilities, workspace-state, and workflow-guide tools.
  5. Inspect the dataset and data profile through Prepare.
  6. Add a Formula column named weight_gap_kg with [chargeable_weight_kg] - [actual_weight_kg].
  7. In Compose, validate and create an Aggregate grouped by service, with count and average actual-weight metrics.
  8. Inspect the operation schema, preview, and quality.
  9. Demonstrate stale-revision rejection, idempotent replay, cancellation, or the shared activity ledger. Do not confirm deletion or reset.

Full walkthrough: https://github.com/jacobcalvyn/TabulaFlow/blob/main/docs/DEMO.md

Challenges and accomplishments

The hardest work was making a complex data mutation surface agent-safe without duplicating application logic. We hardened strict schema discovery, protected recipe round-trips, privacy-aware previews, atomic tool publication, asynchronous cancellation, response pagination, and local-file recovery boundaries.

The result passed live WebMCP regression coverage across Prepare and all eight Compose operation types, alongside repository tests and production build checks.

Built during the challenge

TabulaFlow's WebMCP integration, safety contracts, Formula workflow, Compose parity, agent upload consent, qualitative-coding boundary, and demo materials were implemented and hardened during the challenge period. Dated evidence is available in docs/HACKATHON.md and the Git history.

Known limitations

Browser imports are capped at 50 MB, 100,000 rows, and 1,000 stored columns. Local file permissions may require explicit re-linking. Formula columns intentionally exclude window, rank, LOD, regex, and nondeterministic current-time functions. WebMCP requires a compatible browser implementation.

Built With

  • chatgpt-sites
  • codex
  • duckdb-wasm
  • indexeddb
  • react
  • vite
  • webmcp
Share this project:

Updates

Submission history