Inspiration
Recent discussions online about agentic traffic exceeding human traffic alerted me to the concept that if your site/app isn't agent ready, you ain't gonna make it. I also realized that what's needed during development is a lightweight web app to provide quick check with easy to understand results, and, in line with being agent ready, this app needed to be readily available to one's coding agent.
Why WebMCP is the right fit for this use case
WebMCP's hardest problem isn't technical — it's adoption. Almost every page an agent visits today declares zero tools. AgentReady attacks that directly, twice over. First, it is a WebMCP app: open it in ChatGPT's browser and the agent discovers audit_site, a declared-and-registered tool that audits any public URL and returns the score, grade, coverage and top finding — human and agent reading the same report on the same page. Second, its output creates more WebMCP: for every audited page, it generates a working tool from that page's own first form — the declarative toolname/tooldescription/toolparamdescription attributes and the document.modelContext.registerTool code with a correct JSON schema — ready to paste. Every WebMCP app improves one site; AgentReady is built to recruit the rest of the web.
How it improves the user experience
For a site owner, an invisible problem becomes a number in ten seconds, and the number comes with the fix: six evidence-backed checks (discovery, structure, renderability, forms, actionability, WebMCP), a "Do this first" list, copy-paste remediations, and a computed "+N with WebMCP" showing exactly what declaring one tool is worth. For an agent, the site is a first-class user: the audit works as a WebMCP tool call, a plain GET /report?url= (fully server-rendered — the entire report works with JavaScript disabled), or POST /api/audit described by /openapi.json. The report is honest by construction — unobserved evidence never counts against a site, coverage and confidence are always visible, and a blocked fetch yields "no score", never a fake grade.
Novel collaborative capabilities
The human pastes a URL; the agent calls the same action as a tool; both land on one shared report. In ChatGPT's browser you can ask the agent to audit a site, then expand the findings it summarised and copy the generated stub yourself — a genuine division of labour on a single page. The demo bistro (/demo) completes the loop: a reservation form an agent can book through, next to a deliberately gorgeous-but-broken page (/fixtures/soup, 28/F) that shows what agents face everywhere else. And the tool teaches: what helps agents (labels, landmarks, real buttons, schemas) is what helps assistive technology, so every fix serves both user bases.
How it was built
Next.js 16 App Router on Vercel, TypeScript, zero database — URL in, report out. A hardened safe-fetch (SSRF-proof: pinned DNS, per-hop robots.txt enforcement, streaming caps) acquires one page plus its discovery sidecars; six pure check modules score it against a published rubric (weights in one file, methodology in /docs and docs/INVARIANTS.md); a stub generator turns the page's own form into spec-correct WebMCP code (document.modelContext, plain-value execute returns, the @mcp-b/[email protected] pinned with a verified SRI hash). 348 tests, including an SSRF bypass corpus and a runtime test that executes generated tool code against a real DOM. Built entirely within the submission window — the git history is the timeline — by a human directing a multi-agent AI team with adversarial cross-review on every merge. AgentReady audits itself at 96/A, and the one point category it drops is documented as "we don't run an MCP server, and won't pretend to for points."
Accomplishments that I'm proud of
This whole thing was done in an afternoon, which is the first time I've essentially one-shot a finished, useful, deployed app in a single day.
What I learned
Just how crazy easy it is to incorporate WebMCP. Now I'll be making sure to go back into other apps I'm working on and add it.
What's next for AgentReady
Circulate v1 in some communities I'm part of & get any feedback. Next version should include detection of dynamic WebMCP.
Built With
- next.js
- typescript
- webmcp
Log in or sign up for Devpost to join the conversation.