agentic‑readiness docs
/
Scan at scale Blog Build one › Run a scan ›
Menu

Scan at scalePages with broken WebMCP tools

Pages with broken WebMCP tools

A per-URL report: one row per page that matches, over the pages a crawl reached.

What this report returns

WebMCP lets a page register tools that in-browser agents can call.

A row appears here when any of these is wrong, worst first:

  • Tool Missing NameA tool (declarative form or imperative registerTool) has no name, so agents have nothing to call. A registerTool call without one is rejected outright under the W3C draft; the declarative form's rules aren't written yet, so this is reported as a readiness fault rather than a specification violation.Fix Give every tool a name (the declarative toolname attribute, or registerTool's name field).
  • Invalid Tool NameA tool name is outside what the W3C draft allows for registerTool (1-128 characters, only A-Z a-z 0-9 _ - .), so it is rejected there; the declarative form has no published naming rules, so this is a readiness fault rather than a specification violation.Fix Rename it within those characters, e.g. search_flights.
  • Tool Missing DescriptionA declarative form tool has no tooldescription, which Chrome's declarative API expects (the W3C draft no longer specifies the declarative form), so an agent can't know what the tool does.Fix Add a tooldescription attribute saying what the tool does and when to use it.
  • Imperative Missing DescriptionA registerTool call has no (or an empty) description, which is required, so agents can't tell what the tool does.Fix Pass a description saying what it does and when to call it.
  • Imperative Missing ExecuteA registerTool call omits its execute handler, so the tool is described but can never actually run.Fix Pass an execute function implementing the tool.
  • Input Schema Not An ObjectA registerTool call passes inputSchema as a JSON string. The WebMCP dictionary member is an object (it was a string until 14 Aug 2026), so a current browser rejects the registration and the tool never exists for agents.Fix Pass the schema object itself, not JSON.stringify of it: inputSchema: { type: "object", properties: { … } }.
  • Duplicate Tool NameTwo tools share the same (case-sensitive) name, so calls are ambiguous and one tool shadows the other. Names are compared across declarative forms and registerTool calls together: a duplicate registerTool call is rejected under the W3C draft, while a collision between the two surfaces is a readiness fault rather than a specification violation.Fix Give every tool a unique name.
  • Param Missing DescriptionA tool parameter has no usable description (no toolparamdescription, associated label, or aria-description), so agents can't supply it correctly.Fix Describe every parameter, e.g. toolparamdescription="Departure date, YYYY-MM-DD".

The Conformance Issue Detected column is true only when an imperative registerTool call omits description or execute, which the W3C WebMCP draft requires; the name, duplicate-name and declarative-description rules are Lumar's readiness bar and Chrome's guidance, and they are deliberately not spec claims because the same flag can fire on a declarative form whose rules the draft has not yet written.

An inputSchema passed as a JSON string is a defect of its own: the WebMCP dictionary member is an object (it was a string until 14 Aug 2026), so a current browser refuses the registration and the tool never exists.

The columns it shows

Every defect this technology can carry is a column in the grid, worst first, so nothing is hidden behind a filter you have to know to apply.

  • WebMCP ValidwebMcpValid
  • WebMCP Conformance Issue DetectedwebMcpConformanceIssueDetected
  • WebMCP FindingswebMcpFindings
  • WebMCP Tool NameswebMcpToolNames
  • WebMCP Undescribed Tool NameswebMcpUndescribedToolNames
  • WebMCP Undescribed ParameterswebMcpUndescribedParamNames
  • WebMCP Tool Missing NamewebMcpToolMissingName
  • WebMCP Invalid Tool NamewebMcpInvalidToolName
  • WebMCP Tool Missing DescriptionwebMcpToolMissingDescription
  • WebMCP Imperative Missing DescriptionwebMcpImperativeMissingDescription
  • WebMCP Imperative Missing ExecutewebMcpImperativeMissingExecute
  • WebMCP Input Schema Not An ObjectwebMcpInputSchemaNotObject
  • WebMCP Duplicate Tool NamewebMcpDuplicateToolName
  • WebMCP Param Missing DescriptionwebMcpParamMissingDescription
  • WebMCP Imperative Missing Input SchemawebMcpImperativeMissingInputSchema

About WebMCP

In-page tools a browsing agent can call directly.

Read how WebMCP is checked, including the specification it is validated against and a worked correct and broken example.

Running it

This report comes with Agentic Readiness in Lumar and appears on every crawl of any project that has it turned on. See the whole set, or check a single URL with the scanner on this site, which runs the same code with no account.

Get Lumar pricing