{
  "markdown": "# webmcpify — the WebMCP agent skill\n\n**Make any web app agent-ready — verifiably.**\n\n🌐 **[webmcpify.at](https://webmcpify.at)** — the site itself is webmcpified: open it with a WebMCP-enabled agent and call its tools.\n\nwebmcpify is a WebMCP agent skill for **curated core coverage or route-by-route\nparity**. It integrates [WebMCP](https://webmachinelearning.github.io/webmcp/)\n(`document.modelContext` — a proposed web standard incubated in the W3C Web Machine\nLearning Community Group, currently in Chrome origin trial) into an **existing**\nweb application — from a static landing page to a large multi-tenant SaaS — end to end:\n\n```\nDETECT ─▶ INVENTORY ─▶ [you approve the tool manifest] ─▶ INTEGRATE ─▶ VERIFY ─▶ HEAL ─▶ AUDIT\n             loop                                            loop        loop     loop\n```\n\nYour coding agent investigates the codebase, asks whether you want a curated set of\nhigh-value actions or an auditable per-route interaction census, then proposes a\n**tool manifest** with names, schemas, examples, coverage reasons, and a read-only/\nmutating classification. After your approval it integrates the tools, **exercises\neach one in a real browser**, and heals failures—while keeping unrelated logic and\nUI untouched.\n\n## See native Chrome verification\n\n**[Watch the uncut 63-second runtime demo](proof/artifacts/webmcpify-proof-480p.mp4)** —\na prepared local fixture passes a real approval click, registers one client-only\ntool, then exercises native `document.modelContext.getTools()` / `executeTool()`\nverification, a visible UI change, invalid-input handling, and cleanup.\n\nThe runtime registration and browser assertions are real. The phase labels are\nadvanced by a deterministic script for legibility; the recording does not execute\nthe skill's inventory, integration, or audit phases. The [`proof/`](proof/README.md)\npack includes the runnable fixture, prepared before/after example manifests, an\nillustrative integration patch, and artifact checksums. Reproduce the native-browser\nchecks with `npm run proof:verify`.\n\n## Why\n\nBrowser AI agents (Gemini in Chrome, extensions, assistive tech) are learning to\ncall structured page tools instead of scraping the DOM. WebMCP is the emerging\nstandard for that, co-authored by Google and Microsoft engineers, in origin trial\nsince Chrome 149. Making an app agent-ready by hand means reading a spec that is\nstill moving (the API surface changed twice during the trial), learning tool-design\nconventions, and building a verification setup — webmcpify packages all of that\ninto one command for your coding agent.\n\n## Install (one command)\n\n**Any agent** — Claude Code, Codex, Cursor, opencode, Copilot, and [70+ more](https://github.com/vercel-labs/skills):\n\n```sh\nnpx skills add TueJon/webmcpify\n```\n\n**Claude Code** (as a plugin):\n\n```\n/plugin marketplace add TueJon/webmcpify\n/plugin install webmcpify@webmcpify\n```\n\n**Manual**: copy [`skills/webmcpify/`](skills/webmcpify/) into your agent's skills\ndirectory, or just tell your agent to follow\n[`skills/webmcpify/SKILL.md`](skills/webmcpify/SKILL.md).\n\nThe skill directory is self-contained — pipeline, phase guides, vendorable runtime,\nand the verification template all ship inside it.\n\n## Use\n\nOpen your agent in the target repo and pick your scope:\n\n```\n/webmcpify                # full pipeline\n/webmcpify inventory      # just investigate + propose the tool manifest (zero code changes)\n/webmcpify integrate      # integrate the approved manifest\n/webmcpify verify         # verify + heal what's integrated\n/webmcpify status         # where are we? what's next?\n/webmcpify full parity    # census every interactive element on every authenticated route\n```\n\n(or in plain words: *\"webmcpify this app\"*, *\"map what tools this app could expose\"*)\n\nThe pipeline has **one main checkpoint** — you approve the tool manifest (and, for\napps under git, choose whether integration batches are committed). Beyond that it\nonly comes back for things it genuinely can't resolve: an app that won't start, or\na tool that still fails after capped heal attempts. All state persists in\n`.webmcpify/manifest.json`, so runs are **resumable** across sessions, context\nwindows, and even different agents.\n\n## Built to scale to large codebases\n\nEvery phase is a **loop over persistent state**, not a one-shot pass:\n\n- **Inventory** maps the codebase into areas (routes/views/modules) first, then\n  deep-reads one area per iteration — a 500-file SaaS is processed area by area,\n  never in one context-busting sweep. Sub-agent fan-out writes per-area shard\n  files; a single coordinator merges them (no write races).\n- **Coverage is explicit:** `curated` produces a reviewed route→tool map for core\n  actions; `parity` produces a per-route element census where every interaction is\n  mapped to a tool or a written reason. A tool count alone is never called 100%.\n- **Tool budgets** keep curated SaaS toolsets usable: priority waves, an overlap rule\n  (no two tools matching the same request), and role/tenant coverage tracking.\n  Parity uses route-scoped registration and reports client-capacity gaps instead of\n  claiming an unmeasured universal per-page limit.\n- **Integrate** works in small batches (one area or ≤5 tools), each independently\n  built and typechecked — committed per batch only if you opted in.\n- **Verify/Heal** iterate per tool with attempt caps and honest escalation\n  instead of infinite loops; mutating tools get cleanup steps between retries.\n- Interrupt at any point; the next run resumes from the manifest.\n\n## Guarantees\n\n- **Unrelated logic and UI stay untouched** — every diff hunk traces to a manifest\n  entry; a final audit against the recorded baseline commit enforces it, and files\n  that were already dirty when the run started are never modified or reverted.\n- **Read-only first** — server mutations require your explicit per-tool approval.\n  Auth, signup, billing, payment and credential-returning tools stay excluded;\n  irreversible delete actions can only open the app's existing confirmation UI.\n- **Server stays the trust boundary** — tools only call code paths your UI already\n  uses; no new endpoints, no bypasses.\n- **Spec-shaped, zero dependencies** — a small MIT runtime is vendored into your\n  repo (no npm dependency), everything feature-detected: your app is\n  **behaviorally unchanged** in browsers without WebMCP.\n- **No ambiguous imperative results** — the runtime guards accidental bare\n  `null`/`undefined`, and route-changing tools return a structured result before\n  deferring navigation and route-scope disposal.\n- **Exercised, not assumed** — every tool is enumerated and executed in real\n  Chrome, asserting on both the tool result and the resulting UI state, from\n  examples recorded in the manifest. That includes mutating declarative forms,\n  where Chrome pauses the execution until a real submit interaction — the\n  harness performs that submit click mid-execution instead of faking the pass.\n- **Spec over scoreboard** — WebMCP checkers and inspector extensions grade pages\n  against a mix of spec features, conventions, and invented checks. webmcpify\n  classifies their findings instead of chasing them: it never emits\n  non-existent attributes or adds markup an app doesn't need to raise a score.\n  Optional off-page discovery (a `/.well-known/webmcp` manifest, `rel=\"webmcp\"`\n  links) is a separately approved layer, because it publishes tool metadata\n  publicly — never part of a default integration.\n\n## What's in this repo\n\n| Path | Purpose |\n|---|---|\n| [`skills/webmcpify/SKILL.md`](skills/webmcpify/SKILL.md) | The pipeline (what your agent follows) |\n| [`skills/webmcpify/references/`](skills/webmcpify/references/) | Phase guides: inventory, integrate, runtime, verify, heal, security, discovery |\n| [`skills/webmcpify/templates/`](skills/webmcpify/templates/) | Vendorable runtime (TS + JS), ambient types, Playwright verification template, discovery manifest |\n\n## Status\n\nWebMCP itself is an **origin trial** (Chrome 149 →; the stable milestone is an\nestimate, not a commitment): production exposure needs an\n[origin-trial token](https://developer.chrome.com/origintrials/), local development\nneeds `chrome://flags/#enable-webmcp-testing`. The API surface has already changed\nduring the trial (testing API removed 2026-07; `navigator` → `document`) — webmcpify\nisolates that churn in one vendored file, probes for the current\nenumeration/execution surface, and treats Google's live\n[modern-web-guidance](https://github.com/GoogleChrome/modern-web-guidance) as the\nsource of current best practices at integration time.\n\nRelease-by-release spec adaptations are recorded in the [changelog](CHANGELOG.md).\nChatGPT's separate, model/account-gated client surface is documented as\n[Site tools](skills/webmcpify/references/client.md), with dated availability facts\nand a troubleshooting order.\n\n## Related projects\n\n- [webmcpify.at](https://webmcpify.at) — project website (itself agent-ready, in all three layers: imperative tools via the vendored runtime, a declarative install form, and a published `/.well-known/webmcp` manifest)\n- [webmachinelearning/webmcp](https://github.com/webmachinelearning/webmcp) — the spec draft (W3C WebML CG)\n- [GoogleChromeLabs/webmcp-tools](https://github.com/GoogleChromeLabs/webmcp-tools) — Google's demos, types, and evals CLI (webmcpify follows these patterns)\n- [GoogleChrome/modern-web-guidance](https://github.com/GoogleChrome/modern-web-guidance) — official best-practice guides (webmcpify pulls its WebMCP guides live)\n- [Puppeteer WebMCP](https://pptr.dev/guides/webmcp) — experimental first-class WebMCP automation API (Chrome 151+ as documented 2026-08-29; alternative verify harness)\n- [MCP-B / WebMCP-org](https://github.com/WebMCP-org/npm-packages) — WebMCP ecosystem: polyfill, extension, transports, and dev tooling (webmcpify vendors a minimal runtime instead of adding dependencies)\n\n## License\n\n[MIT](LICENSE) — © Jonas Tüchler\n",
  "bytes": 9967,
  "sha": "dde0bc72a42ccd8730935a1e1fd5924e7fa20944af7dc3b1fa047a62a7109c6b",
  "repo_slug": "tuejon/webmcpify",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_tuejon_webmcpify_738ae152/readme"
}