Inspiration

I wanted to solve a real problem that affect small online shops. I researched the issues they face and built an app that solves those. From 25 minutes of manual copy/pasting per batch of orders to under 3 minutes.

What it does

OpsFlow is a 3-screen console — Batch → Shipping → Holds — It is webMCP native, then the full functionality can be controlled by external AIs. OpsFlow also has a built-in fully functional AI chat box that allows to use natural language to control the application.

How we built it

Vite + React SPA on Vercel, origin-isolated with Origin-Agent-Cluster: ?1 and Permissions-Policy: tools=(self). Five imperative tools registered once in src/webmcp/register.ts with hand-written JSON Schema, readOnlyHint/openWorldHint annotations, validation, input limits, and signal abort handling, plus a declarative shipping form. Built-in agent is built using Gemini 3.6 Flash.

Challenges we ran into

WebMCP only exists in origin-isolated documents behind a flag/ChatGPT browser, with an Aug 2026 draft spec — so we had to probe capability, ban cross-origin iframes, keep GEMINI_API_KEY server-side, and still run fully in a plain browser. Making abort-safe tools that never throw (typed TOOL_ABORTED/DEGRADED errors) and replay golden cache instead of blanking, while gating holds/fulfillments on human confirmation, was the hardest correctness work.

Accomplishments that we're proud of

This is my first webMCP application. The built-in AI chat window also works as well as I had planned, I didn't need to reduce the scope or functionality.

What we learned

WebMCP does provide a lot of functionality. It looks like the future of the web will be AI agents interacting with pages. Functionality is a league ahead of DOM scrapping

What's next for OpsFlow — WebMCP Fulfillment Console for Solo Operators

Stronger Built-in chat capabilities. Using external WebMCP agents is still no widespread. However allowing a builtin chatbot overcomes that limitation. WebMCP run inside the same webpage the users get the full functionality without even knowing it.

Built With

  • ajv
  • chatgpt-in-app-browser
  • chrome-149
  • css
  • declarative-webmcp-forms
  • gemini-2.5-flash
  • gemini-api
  • html
  • json-schema
  • node.js
  • origin-agent-cluster
  • permissions-policy
  • playwright
  • react
  • typescript
  • vercel
  • vercel-serverless-functions
  • vite
  • vite-node
  • vitest
  • webmcp
Share this project:

Updates

Submission history