Opens in a new tabSkip to content
Agent LighthouseAgent Lighthouse

    Searches the text of every published page. The evidence sources themselves are not in this index — search all of them on the trusted sources page.

    GitHub ↗
    Browse checks and page contents
    agent-interfaces/webmcp-registered-tools

    WebMCP registered tools

    What it checks

    WebMCP lets a page register agent-callable tools at runtime through navigator.modelContext, which is what Chrome exposes to an in-browser agent and what Google Lighthouse reports as “Registered WebMCP tools”. This scanner has no JavaScript runtime, so it reports the registrations visible in the served document and treats silence as unknown rather than as absence.

    (The pre-rewrite audit demanded a /.well-known/webmcp manifest file. That artifact is invented; the grade-D evidence for it is below, unchanged, and the rewrite section records what replaced it.)

    Why it matters

    webmcp-well-known-manifest — Publishing a manifest at /.well-known/webmcp (or /.well-known/webmcp.json) listing a site’s WebMCP tools lets an agent discover those tools before navigating to the page.

    agent-surface-soft-404-validation — A well-known or conventional agent-discovery path that returns HTTP 200 with an HTML body is worse than a 404 — that body is an SPA catch-all rather than a real document. A conforming client follows the standard, fails to parse, and has no recourse. Any audit must therefore validate content-type and parseability, not status code.

    Evidence

    webmcp-well-known-manifest

    The idea is intuitively appealing — WebMCP tools are only visible after page load, so a pre-navigation index would help — and two real deployments exist: zapier.com/.well-known/webmcp (verified 2026-08-20) and cloudflare.com’s mcp.json points at a /.well-known/webmcp.json. So the practice is being invented in the wild.

    agent-surface-soft-404-validation

    This is a meta-signal about how the other audits must be implemented, and it is the best-evidenced claim in the whole domain. The May 2026 API Evangelist study covered 74 providers. Of the roughly 72 that served no valid catalog, only two returned a clean 404; sixty-eight returned HTTP 200 with an HTML body. The study concluded: ‘an agent following the standard would get a 200, try to parse a LinkSet out of the body, fail, and have no useful recourse — an HTML 200 at a well-known path lies, which is worse than a 404.’ A probe on 2026-08-20 reproduced that result across a different path set. linear.app returned 200 text/html for /openapi.json; github.com, linear.app, vercel.com and zapier.com returned 200 text/html for /mcp; zapier.com returned 200 text/html for /.well-known/ai-plugin.json.

    A status-code-only scanner would have reported all of these as adoption. The correct rule is to require a JSON, YAML or linkset content-type, and to require the body to parse. Where a spec names a media type, prefer it: application/ai-catalog+json for AI catalogs, application/linkset+json with the RFC 9727 profile for api-catalog, and application/mcp-server-card+json for card entries. Vercel demonstrates that all of this is achievable in production.

    Limits

    webmcp-well-known-manifest — There is no standard for it and every deployment is a different private schema. The WebMCP spec defines no manifest format at all — tools are registered imperatively in JavaScript, and the declarative HTML-form path in §4.3 is marked ‘entirely a TODO’. webmcp is not in the IANA Well-Known URIs registry. Zapier’s document self-identifies as "spec": "zapier-webmcp-discovery/1" — a vendor-versioned format of one — and its own description concedes the tools ‘are not HTTP endpoints’, so the manifest cannot be acted on remotely; an agent must still navigate to the page.

    The freeCodeCamp author shipped exactly this manifest on citability.dev and recorded zero agent calls five days later. Auditing for an undefined file with no schema and no consumer would generate advice no one can act on correctly.

    agent-surface-soft-404-validation — None found — this is a validation-correctness requirement, not a contested adoption claim. The only nuance is that content negotiation is legitimate. RFC 9727 permits additional formats beyond the mandatory Linkset, so an audit should send an explicit Accept header before concluding a publisher is non-conformant. It should also not penalise a clean 404, which is honest, the way it penalises an HTML 200, which is a lie.

    Sources