hostinger.com WebMCP audit

audited Sep 4, 2026in 15s
88/ 100100% of the applicable check weight evaluated

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

Shared experience87
Tool selection100
Tool quality86
Trust76
https://hostinger.com
Captured view of https://hostinger.com

Tools

1 read, 0 write, 1 undeclared
Loading map
list_hostinger_pages: fail

list_hostinger_pages

List the Hostinger pages this site can navigate to, with a short description of each. Call this before navigate_to_hostinger_page to learn the valid page names.Answers a question. Declared read only.
pagehttps://www.hostinger.com/
implementation
viaimperative
entry pointprovideContext
registered after1660ms
executepresent
api surfaceTakes no parameters.
annotations
read onlytrue
untrusted contentnot declared
titlenot declared
2 findings
failCanonical entry point
weight 3
Every tool uses the removed provideContext API; register each tool with document.modelContext.registerTool().
fix
// document.modelContext is the canonical entry point - the navigator.modelContext alias is deprecated.
document.modelContext.registerTool({ /* ... */ });
warningInjection surface
weight 3
1 of 2 tools carry instruction-shaped text in their own metadata: list_hostinger_pages Description instructs agent to call this tool first.
list_hostinger_pages: Description instructs agent to call this tool first
fix
{
  name: "list_hostinger_pages",
  // 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": "list_hostinger_pages",
  "description": "List the Hostinger pages this site can navigate to, with a short description of each. Call this before navigate_to_hostinger_page to learn the valid page names.",
  "inputSchema": {
    "type": "object",
    "properties": {}
  },
  "annotations": {
    "readOnlyHint": true
  }
}
Showing list_hostinger_pages

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: obstruction A cookie banner covers a significant portion of the lower left content..
obstruction: 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

100 / 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.
passTool selection
weight 12
An agent chose an existing, callable tool and built a schema-valid call for all 2 canonical intents, each matching the kind of tool its intent needs. Nothing was executed, so this verifies selection, not outcomes.
not applicableCoverage vs. site type
weight 7
This tool set does not place the site in a category with a known expected tool shape, so there is no coverage baseline to score it against.

Tool quality

86 / 100 · weight 25
warningRegistration timing
weight 1
The slowest tool took 1660ms to register, past the 1000ms an agent reading the registry at first paint would wait for.
toolnavigate_to_hostinger_page
navigate_to_hostinger_page: registered at 1660ms
fix
// Register tools as soon as they're ready, not behind a deferred/async chunk.
document.modelContext.registerTool({ /* ... */ });
failCanonical entry point
weight 3
Every tool uses the removed provideContext API; register each tool with document.modelContext.registerTool().
toollist_hostinger_pages
fix
// document.modelContext is the canonical entry point - the navigator.modelContext alias is deprecated.
document.modelContext.registerTool({ /* ... */ });
passSchema validity
weight 4
All 2 declared input schemas are structurally valid object schemas.
passSchema quality
weight 4
All 1 of 2 tool schemas that declare parameters describe them (the other 1 declares no parameters), and every description stays within Chrome's size guidance.
passNaming quality
weight 2
All 2 tool names are consistent, verb-led, and within Chrome's size guidance.
passStub detection
weight 4
All 2 tools declare an execute handler.
passRegistration errors
weight 2
No tool registration threw during the capture.
passDescription quality
weight 5
All 2 rated tool descriptions say what the tool does, when to use it, and what it returns.

Trust

76 / 100 · weight 20
passAnnotations present
weight 5
All 1 read-shaped tool declares readOnlyHint: true - the one declared claim that lets an agent treat a call as safe to make without asking.
passAnnotation mismatch
weight 5
No tool claims to be read-only while its own name or description says it writes (1 declared hint checked).
not applicableUntrusted content hint
weight 3
No tool's contract suggests it returns text written by somebody other than the site, so there is nothing to flag as untrusted.
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
1 of 2 tools carry instruction-shaped text in their own metadata: list_hostinger_pages Description instructs agent to call this tool first.
toollist_hostinger_pages
list_hostinger_pages: Description instructs agent to call this tool first
fix
{
  name: "list_hostinger_pages",
  // 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

100% across 2 intents
I want to list hostinger pages on this site.ok
choselist_hostinger_pagesexpected list hostinger pageskind matched
arguments
{}
I want to navigate to hostinger page on this site.ok
chosenavigate_to_hostinger_pageexpected navigate to hostinger pagekind matched
arguments
{
  "page": "homepage"
}
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
native modelContext
chrome
151.0.7922.34
capture shim
v3
spec snapshot
2026-08-26
mode
fast
pages
1 - entry page only
tools
2
invoked
not invoked; a live audit calls them
run time
15s
finished
Sep 4, 2026
Checked the way in-browser agents discover tools: the top-level document's modelContext registry, read after the page settles.