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

10 tools registered. Strongest in shared experience, weakest in tool selection.

Shared experience100
Tool selection39
Tool quality96
Trust45
https://agent-web-gateway.djrookie99.chatgpt.site
Captured view of https://agent-web-gateway.djrookie99.chatgpt.site

Tools

10 read, 0 write
Loading map
gateway_task: warning

gateway_task

Default tool for read-only requests. Pass the user's goal largely as written, including any website URL. The gateway selects the workflow, searches, filters, ranks, and verifies results. If agent_action="answer", stop using tools for further discovery. When presentation.action="open_result" and a browser is available, open presentation.url once for final inspection, then answer; otherwise answer directly. Example: gateway_task({ goal: "Find the cheapest green men's sweater on tentree.com" }).Answers a question. Declared read only.
pagehttps://agent-web-gateway.djrookie99.chatgpt.site/
implementation
viaimperative
entry pointdocument
registered after380ms
executepresent
api surface
goalrequired
siteoptional
response_formatoptional
annotations
read onlytrue
untrusted contentnot declared
titlenot declared
2 findings
warningNaming quality
weight 2
Tool naming makes selection harder than it needs to be: 10 names do not start with a verb (gateway_task).
fix
{ name: "gateway_task" /* short, unique, verb-based */ }
warningInjection surface
weight 3
10 of 10 tools carry instruction-shaped text in their own metadata: gateway_task description instructs agent how to behave and what to output.
gateway_task: description instructs agent how to behave and what to output; gateway_capabilities: description instructs agent on tool preference and when to stop; gateway_find_tool: description instructs agent on tool usage and workflow; gateway_call_tool: description instructs agent on tool usage and what to avoid
fix
{
  name: "gateway_task",
  // Metadata DESCRIBES the tool - it never addresses the agent reading it.
  // Rewrite any name, description, title, or schema field description that
  // instructs the agent (which tool to prefer, what to output, rules to
  // ignore) so it states what the tool does and what it returns instead.
  description: "Searches the catalog and returns matching items with prices."
}
tool json
{
  "name": "gateway_task",
  "description": "Default tool for read-only requests. Pass the user's goal largely as written, including any website URL. The gateway selects the workflow, searches, filters, ranks, and verifies results. If agent_action=\"answer\", stop using tools for further discovery. When presentation.action=\"open_result\" and a browser is available, open presentation.url once for final inspection, then answer; otherwise answer directly. Example: gateway_task({ goal: \"Find the cheapest green men's sweater on tentree.com\" }).",
  "inputSchema": {
    "type": "object",
    "properties": {
      "goal": {
        "type": "string",
        "minLength": 1,
        "maxLength": 1000,
        "description": "The user's normal-language read-only request; pass it mostly as written."
      },
      "site": {
        "type": "string",
        "minLength": 3,
        "maxLength": 300,
        "description": "Optional public site URL or domain; a URL in goal is also extracted automatically."
      },
      "response_format": {
        "type": "string",
        "enum": [
          "concise",
          "detailed"
        ],
        "description": "Optional response size; concise is the default."
      }
    },
    "required": [
      "goal"
    ],
    "additionalProperties": false
  },
  "annotations": {
    "readOnlyHint": true
  }
}
Showing gateway_task

Findings

Shared experience

100 / 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
The page a person sees holds up next to the agent surface: a working interface, visible actions, readable content, nothing in the way.
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

39 / 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 1 of 3 canonical intents; on "Show me the details and price of the first result." 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 commerce site; it cannot add to or read the cart or start checkout or place an order.

Tool quality

96 / 100 · weight 25
passRegistration timing
weight 1
Every measured tool registered within 381ms of navigation.
toolrentals_get_listing
passCanonical entry point
weight 3
All 10 tools register on the canonical document.modelContext entry point.
passSchema validity
weight 4
All 10 declared input schemas are structurally valid object schemas.
passSchema quality
weight 4
All 10 tool schemas describe their parameters, and every description stays within Chrome's size guidance.
warningNaming quality
weight 2
Tool naming makes selection harder than it needs to be: 10 names do not start with a verb (gateway_task).
toolgateway_task
fix
{ name: "gateway_task" /* short, unique, verb-based */ }
passStub detection
weight 4
All 10 tools declare an execute handler.
passRegistration errors
weight 2
No tool registration threw during the capture.
passDescription quality
weight 5
All 10 rated tool descriptions say what the tool does, when to use it, and what it returns.

Trust

45 / 100 · weight 20
not applicableAnnotations present
weight 5
No tool name reads like a read, and an absent readOnlyHint already defaults to "this may write" - the one hint worth declaring here is readOnlyHint: true on read tools, and this set has none to declare it on.
passAnnotation mismatch
weight 5
No tool claims to be read-only while its own name or description says it writes (10 declared hints checked).
warningUntrusted content hint
weight 3
2 of 2 tools look like they return text written by other people but declare no untrustedContentHint, so an agent will treat the response as the site speaking.
tooljobs_get_listing
jobs_get_listing: listing, user, submitted; rentals_get_listing: listing, user
fix
{ name: "jobs_get_listing", annotations: { untrustedContentHint: true } }
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.
warningInjection surface
weight 3
10 of 10 tools carry instruction-shaped text in their own metadata: gateway_task description instructs agent how to behave and what to output.
toolgateway_task
gateway_task: description instructs agent how to behave and what to output; gateway_capabilities: description instructs agent on tool preference and when to stop; gateway_find_tool: description instructs agent on tool usage and workflow; gateway_call_tool: description instructs agent on tool usage and what to avoid
fix
{
  name: "gateway_task",
  // Metadata DESCRIBES the tool - it never addresses the agent reading it.
  // Rewrite any name, description, title, or schema field description that
  // instructs the agent (which tool to prefer, what to output, rules to
  // ignore) so it states what the tool does and what it returns instead.
  description: "Searches the catalog and returns matching items with prices."
}

Tool selection

33% across 3 intents
Find a carry-on suitcase under 300 dollars.ok
chosecommerce_search_productsexpected product searchkind matched
arguments
{
  "query": "carry-on suitcase",
  "max_price": 300
}
Show me the details and price of the first result.missed
choseno toolexpected product detailkind not applicable
No tool was picked for this intent.
arguments
{}
Add two of them to my cart.missed
choseno toolexpected cart writekind 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
10
invoked
not invoked; a live audit calls them
run time
14s
finished
Sep 5, 2026
Checked the way in-browser agents discover tools: the top-level document's modelContext registry, read after the page settles.