audited Sep 5, 2026in 17s
73/ 100100% of the applicable check weight evaluated

35 tools registered. Strongest in trust, weakest in tool selection.

Shared experience87
Tool selection18
Tool quality90
Trust98
https://beenthere.page
Captured view of https://beenthere.page

Tools

35 read, 0 write
Loading map
list-trips: warning

list-trips

List all trips for the authenticated user. Returns an array of trips.Answers a question. Declared read only.
pagehttps://www.beenthere.page/
implementation
viaimperative
entry pointdocument
registered after674ms
executepresent
api surfaceTakes no parameters.
annotations
read onlytrue
untrusted contenttrue
titlenot declared
1 finding
warningDescription quality
weight 5
35 of 35 tool descriptions leave an agent guessing: list-trips Omits what comes back, only says it returns an array of trips..
list-trips: weak; get-trip: weak; get-trip-by-slug: weak; get-trip-stamp-eligibility: weak
fix
{
  name: "list-trips",
  description: "Describe what this tool does, when to use it, and what it returns."
}
tool json
{
  "name": "list-trips",
  "description": "List all trips for the authenticated user. Returns an array of trips.",
  "inputSchema": {
    "type": "object",
    "properties": {},
    "required": []
  },
  "annotations": {
    "readOnlyHint": true,
    "untrustedContentHint": true
  }
}
Showing list-trips

Findings

Shared experience

87 / 100 · weight 30
not applicableVisible effect
weight 6
Not invoked on this run: this audit did not call any tool. Scheduled re-audits only read the registry; a live audit from the report page calls the tools that declare readOnlyHint: true.
passPage experience
weight 16
1 of 4 page-experience marks came back short: clarity The page is mostly blank, with only a header and a small icon visible..
clarity: weak
passHuman parity
weight 8
The person co-browsing can see and use this page - the same page the agent's tools act on.

Tool selection

18 / 100 · weight 25
not applicableInvoke success rate
weight 6
Not invoked on this run: this audit did not call any tool. Scheduled re-audits only read the registry; a live audit from the report page calls the tools that declare readOnlyHint: true.
failTool selection
weight 12
An agent chose an existing tool and built a schema-valid call that held up on 0 of 3 canonical intents; on "Find a hotel in Lisbon for two nights in June." no tool on the page served it. Nothing was executed, so this verifies selection, not outcomes.
warningCoverage vs. site type
weight 7
The tool set covers 2 of the 4 things an agent needs on a travel site; it cannot book or hold a reservation or look up or change an existing booking.

Tool quality

90 / 100 · weight 25
passRegistration timing
weight 1
Every measured tool registered within 723ms of navigation.
toolget-billing
passCanonical entry point
weight 3
All 35 tools register on the canonical document.modelContext entry point.
passSchema validity
weight 4
All 35 declared input schemas are structurally valid object schemas.
passSchema quality
weight 4
All 24 of 35 tool schemas that declare parameters describe them (the other 11 declare no parameters), and every description stays within Chrome's size guidance.
passNaming quality
weight 2
All 35 tool names are consistent, verb-led, and within Chrome's size guidance.
passStub detection
weight 4
All 35 tools declare an execute handler.
passRegistration errors
weight 2
No tool registration threw during the capture.
warningDescription quality
weight 5
35 of 35 tool descriptions leave an agent guessing: list-trips Omits what comes back, only says it returns an array of trips..
toollist-trips
list-trips: weak; get-trip: weak; get-trip-by-slug: weak; get-trip-stamp-eligibility: weak
fix
{
  name: "list-trips",
  description: "Describe what this tool does, when to use it, and what it returns."
}

Trust

98 / 100 · weight 20
passAnnotations present
weight 5
All 34 read-shaped tools declare readOnlyHint: true - the one declared claim that lets an agent treat a call as safe to make without asking.
warningAnnotation mismatch
weight 5
1 tool declares readOnlyHint: true although the name says the call writes (add-bucket-list-destination).
tooladd-bucket-list-destination
add-bucket-list-destination: readOnlyHint=true
fix
// readOnlyHint must match what the tool actually does - drop it (or set false) on a tool that writes.
{ name: "add-bucket-list-destination", annotations: { readOnlyHint: false } }
passUntrusted content hint
weight 3
All 3 tools that look like they return third-party text declare untrustedContentHint.
not applicableHint vs. observed
weight 4
Not invoked on this run: this audit did not call any tool. Scheduled re-audits only read the registry; a live audit from the report page calls the tools that declare readOnlyHint: true.
not applicableInjection surface
weight 3
No tool's metadata carries instruction-shaped text aimed at the agent reading it. This check only ever flags; it never credits a site.

Tool selection

0% across 3 intents
Find a hotel in Lisbon for two nights in June.missed
choseno toolexpected availability searchkind not applicable
No tool was picked for this intent.
arguments
{}
Show me the details of the cheapest one.missed
choseno toolexpected listing detailkind not applicable
No tool was picked for this intent.
arguments
{}
Look up the status of my existing booking.missed
choseno toolexpected booking lookupkind not applicable
No tool was picked for this intent.
arguments
{}
model: gemini-2.5-flash

Add the tools this site is missing

Our scanner reads your website and suggests the right WebMCP tools for it.
Reads the site's public pages; takes a few seconds.
The open source webmcp plugin teaches your coding agent to audit a site, implement tools on document.modelContext, and verify them in a real browser. npx @ora-ai/webmcp-verify runs the verification on its own. No signup, no hosted service.
how this was captured
observed via
capture shim (Chromium 151.0.7922.34)
chrome
151.0.7922.34
capture shim
v3
spec snapshot
2026-08-26
mode
fast
pages
1 - entry page only
tools
35
invoked
not invoked; a live audit calls them
run time
17s
finished
Sep 5, 2026
Checked the way in-browser agents discover tools: the top-level document's modelContext registry, read after the page settles.