audited Aug 29, 2026in 15s
63/ 100

6 tools registered. Strongest in usefulness, weakest in human experience.

WebMCP use58
Usefulness78
Human experience53
about:blank

No agent run recorded yet.

No steps recorded

Tools

/
search_site: fail

search_site

Search this site's published content by keyword. Pass the search terms in "q". Returns matching posts/pages with title, URL, excerpt, and content type. Only published, public content included in the site's llms.txt settings is searched. Use it to find relevant pages before fetching them with get_page_content.Takes an action on the site.
pagehttps://tivon-flower.co.il/
implementation
viaimperative
entry pointnavigator
registered after794ms
executepresent
api surface
qrequired
annotations
read onlynot declared
destructivenot declared
idempotentnot declared
open worldnot declared
untrusted contentnot declared
titlenot declared
3 findings
failCanonical entry point
0 / 4
Every tool registers through the deprecated navigator.modelContext alias; move them to document.modelContext before the alias is removed.
fix
// Use the canonical entry point - navigator.modelContext is deprecated.
document.modelContext.provideContext({ tools: [/* ... */] });
failAnnotations present
0 / 4
6 of 6 tools declare no readOnlyHint, so an agent cannot tell a read from a write without guessing from the name.
search_site, get_page_content, list_recent_content, get_site_info, search_products
fix
{
  name: "search_site",
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true }
}
warningHuman parity
0 / 8
6 of 6 tools run through the JavaScript API with no visible counterpart, so the person co-browsing cannot see what the agent is offered. Declarative forms (or at least a title annotation) close the gap.
search_site, get_page_content, list_recent_content, get_site_info, search_products
fix
<!-- Give the tool a visible counterpart: a declarative form is one the person can see and use too. -->
<form toolname="search_site" tooldescription="...">
  <!-- the same action, as UI -->
</form>
tool json
{
  "name": "search_site",
  "description": "Search this site's published content by keyword. Pass the search terms in \"q\". Returns matching posts/pages with title, URL, excerpt, and content type. Only published, public content included in the site's llms.txt settings is searched. Use it to find relevant pages before fetching them with get_page_content.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "q": {
        "type": "string",
        "description": "Search keywords."
      }
    },
    "required": [
      "q"
    ],
    "additionalProperties": false
  },
  "annotations": {}
}
Showing search_site

Findings

WebMCP use

58 / 100 · weight 50
passTools registered
4 / 4
6 tools registered across 1 page.
failReal-browser eligible
0 / 8
The page's code registers these tools, but a real visitor's browser does not get them yet: WebMCP needs a native modelContext or a current origin trial token, and this page has neither.
passRegistration timing
4 / 4
Every measured tool registered within 794.2999999998137ms of navigation.
toolget_site_info
failCanonical entry point
0 / 4
Every tool registers through the deprecated navigator.modelContext alias; move them to document.modelContext before the alias is removed.
toolsearch_site
fix
// Use the canonical entry point - navigator.modelContext is deprecated.
document.modelContext.provideContext({ tools: [/* ... */] });
passSchema validity
5 / 5
All 6 tools declare a structurally valid object input schema.
warningSchema quality
3.3 / 4
1 of 6 tool schemas are harder for an agent to use than they need to be: list_recent_content declares no required list, so an agent cannot tell which parameters are mandatory.
toollist_recent_content
list_recent_content: declares no required list, so an agent cannot tell which parameters are mandatory
fix
{
  name: "list_recent_content",
  inputSchema: {
    type: "object",
    properties: {
      query: { type: "string", description: "What to search for" }
    },
    required: ["query"]
  }
}
passStub detection
5 / 5
All 6 tools declare an execute handler.
failAnnotations present
0 / 4
6 of 6 tools declare no readOnlyHint, so an agent cannot tell a read from a write without guessing from the name.
toolsearch_site
search_site, get_page_content, list_recent_content, get_site_info, search_products
fix
{
  name: "search_site",
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true }
}
not applicableAnnotation mismatch
0 / 3
No tool declares a readOnlyHint, so there is no safety claim to contradict.
not applicableUntrusted content hint
0 / 2
No tool's contract suggests it returns text written by somebody other than the site, so there is nothing to flag as untrusted.
passRegistration errors
2 / 2
No tool registration threw during the capture.
warningToolchange coherence
1 / 2
6 tools were registered but the page never dispatched a toolchange event, so an agent subscribed to registry updates never learns they exist.
fix
document.modelContext.dispatchEvent(new Event("toolchange"));
not applicableInjection surface
0 / 3
No tool contract showed an obvious prompt-injection or unsafe-argument surface. This check only ever flags; it never credits a site.

Usefulness

78 / 100 · weight 30
passNaming quality
2 / 2
All 6 tool names are consistent, verb-led, and within Chrome's size guidance.
passDescription quality
6 / 6
All 6 rated tool descriptions say what the tool does, when to use it, and what it returns.
warningTool selection
9.3 / 14
An agent completed 2 of 3 canonical intents against this tool set; on "Show me the details and price of the first result." no tool on the page served it.
warningCoverage vs. site type
6 / 8
The tool set covers 3 of the 4 things an agent needs on a commerce site; it cannot start checkout or place an order.

Human experience

53 / 100 · weight 20
warningHuman parity
0 / 8
6 of 6 tools run through the JavaScript API with no visible counterpart, so the person co-browsing cannot see what the agent is offered. Declarative forms (or at least a title annotation) close the gap.
toolsearch_site
search_site, get_page_content, list_recent_content, get_site_info, search_products
fix
<!-- Give the tool a visible counterpart: a declarative form is one the person can see and use too. -->
<form toolname="search_site" tooldescription="...">
  <!-- the same action, as UI -->
</form>
passPage experience
10.5 / 12
1 of 4 page-experience marks came back short: clarity The main content area is blank, making the page's purpose unclear..
clarity: weak

Tool selection

67% across 3 intents
Find a carry-on suitcase under 300 dollars.ok
chosesearch_productsexpected product search
arguments
{
  "q": "carry-on suitcase under $300"
}
Show me the details and price of the first result.missed
choseno toolexpected product detail
No tool was picked for this intent.
arguments
{}
Add two of them to my cart.ok
choseadd_to_cartexpected cart write
arguments
{
  "id": 1,
  "quantity": 2
}
model: gemini-2.5-flash
how this was captured
chrome
148.0.7778.96
capture shim
v1
spec snapshot
2026-08
mode
fast
pages
1
tools
6
run time
15s
finished
Aug 29, 2026