# lapse > Measures the gap between what a WebMCP tool promises in its input schema and what it actually accepts. A WebMCP tool publishes an inputSchema. Nothing enforces it. lapse enumerates tools through getTools, generates input each schema forbids, calls the tool through executeTool, and records whether it was accepted. Measured against the official Chrome WebMCP reference demos, vendored unmodified under Apache-2.0: 299 probes, 23 tools, 8 sites, 225 violations. 17 of 17 imperative tools accept input their own published schema forbids. Verdicts are HONOURED, VIOLATED, or NOT MEASURED. A probe that could not be generated, could not be run, or never returned is recorded as unmeasured and is never counted as a pass. ## Tools registered on this page - list_targets: List the demo sites under audit and the tools each exposes. - run_audit: Run the full contract audit. Returns probe, violation and not-measured counts. - get_findings: Return findings, optionally filtered by verdict or site. - export_report: Return the full audit as plain text for a bug report. ## Requirements Google Chrome 149 or later with chrome://flags/#enable-webmcp-testing enabled, or ChatGPT's in-app browser. Without WebMCP the page shows enabling instructions rather than failing silently. ## Links - Live: https://lapse-webmcp.ochinimus.workers.dev - Source: https://github.com/seekdaseek/lapse - Licence: MIT. Vendored demos in /demos are Apache-2.0, copyright Google LLC.