taichel.vn WebMCP audit

audited Sep 1, 2026in 25s
87/ 100100% of the applicable check weight evaluated

10 tools registered. Strongest in shared experience, weakest in task completion.

Shared experience100
Task completion50
Tool quality98
Trust100
https://taichel.vn
Captured view of https://taichel.vn

Tools

10 read, 0 write
Loading map
search_posts: pass

search_posts

Searches public articles and pages by keyword and returns matching titles, excerpts, slugs, and canonical URLs.Answers a question. Declared read only.
pagehttps://taichel.vn/
implementation
viaimperative
entry pointdocument
registered after2827ms
executepresent
api surface
queryrequired
post_typeoptional
per_pageoptional
annotations
read onlytrue
untrusted contenttrue
titlenot declared
destructive (MCP-only)false
0 findingsNo check named this tool.
tool json
{
  "name": "search_posts",
  "description": "Searches public articles and pages by keyword and returns matching titles, excerpts, slugs, and canonical URLs.",
  "inputSchema": {
    "type": "object",
    "additionalProperties": false,
    "properties": {
      "query": {
        "type": "string",
        "minLength": 1,
        "maxLength": 200,
        "description": "Search keywords."
      },
      "post_type": {
        "type": "string",
        "maxLength": 64,
        "description": "Public post type slug (default: all searchable public types)."
      },
      "per_page": {
        "type": "integer",
        "minimum": 1,
        "maximum": 20,
        "description": "Results per page (default: 5, max: 20)."
      }
    },
    "required": [
      "query"
    ]
  },
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "untrustedContentHint": true
  }
}
Showing search_posts

Findings

Shared experience

100 / 100 · weight 30
passPage experience
weight 20
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 10
The person co-browsing can see and use this page - the same page the agent's tools act on.

Task completion

50 / 100 · weight 25
failTool selection
weight 15
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 10
The tool set covers 3 of the 4 things an agent needs on a commerce site; it cannot add to or read the cart.

Tool quality

98 / 100 · weight 25
warningRegistration timing
weight 1
The slowest tool took 2827ms to register, past the 1000ms an agent reading the registry at first paint would wait for.
toolget_purchase_link
get_purchase_link: registered at 2827ms
fix
// Register tools as soon as they're ready, not behind a deferred/async chunk.
document.modelContext.registerTool({ /* ... */ });
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 7 of 10 tool schemas that declare parameters describe them (the other 3 declare no parameters), and every description stays within Chrome's size guidance.
passNaming quality
weight 2
All 10 tool names are consistent, verb-led, and within Chrome's size guidance.
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

100 / 100 · weight 20
passAnnotations present
weight 6
All 10 read-shaped tools declare readOnlyHint: true - the one declared claim that lets an agent treat a call as safe to make without asking.
passAnnotation mismatch
weight 6
No tool claims to be read-only while its own name or description says it writes (10 declared hints checked).
not applicableUntrusted content hint
weight 4
No tool's contract suggests it returns text written by somebody other than the site, so there is nothing to flag as untrusted.
not applicableInjection surface
weight 4
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

33% across 3 intents
Find a carry-on suitcase under 300 dollars.ok
chosesearch_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 148.0.7778.96)
chrome
148.0.7778.96
capture shim
v1
spec snapshot
2026-08-26
mode
fast
pages
1 - entry page only
tools
10
run time
25s
finished
Sep 1, 2026
Checked the way in-browser agents discover tools: the top-level document's modelContext registry, read after the page settles.