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

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

Shared experience100
Task completion20
Tool quality96
Trust30
https://deploy-preview-10148--atlan-com.netlify.app
Captured view of https://deploy-preview-10148--atlan-com.netlify.app

Tools

0 read, 2 write, 5 undeclared
Loading map
what_is_atlan: warning

what_is_atlan

Explain what Atlan is and does: the Context Layer for AI, the Enterprise Data Graph, who uses it, and where to learn more. No input. Returns a short plain-text explanation with canonical URLs.No behaviour hints declared. Agents should treat it as possibly state-changing.
pagehttps://deploy-preview-10148--atlan-com.netlify.app/
implementation
viaimperative
entry pointdocument
registered after641ms
executepresent
api surfaceTakes no parameters.
annotations
read onlynot declared
untrusted contentnot declared
titlenot declared
2 findings
warningNaming quality
weight 2
Tool naming makes selection harder than it needs to be: 3 names do not start with a verb (what_is_atlan).
fix
{ name: "what_is_atlan" /* short, unique, verb-based */ }
warningInjection surface
weight 4
6 of 7 tools carry instruction-shaped text in their own metadata: what_is_atlan Description instructs on output format.
what_is_atlan: Description instructs on output format; list_atlan_products: Description instructs on output format; list_customer_stories: Description instructs on output format; get_atlan_resources: Description instructs on output format
fix
{
  name: "what_is_atlan",
  // 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": "what_is_atlan",
  "description": "Explain what Atlan is and does: the Context Layer for AI, the Enterprise Data Graph, who uses it, and where to learn more. No input. Returns a short plain-text explanation with canonical URLs.",
  "inputSchema": {
    "type": "object",
    "properties": {},
    "additionalProperties": false
  },
  "annotations": {}
}
Showing what_is_atlan

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

20 / 100 · weight 25
failTool selection
weight 15
An agent chose an existing tool and built a schema-valid call that held up on 0 of 3 canonical intents; on "Find a carry-on suitcase under 300 dollars." 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 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 641ms of navigation.
toolfill_lead_form
passCanonical entry point
weight 3
All 7 tools register on the canonical document.modelContext entry point.
passSchema validity
weight 4
All 7 declared input schemas are structurally valid object schemas.
warningSchema quality
weight 4
1 of 7 tool schemas are harder for an agent to use than they need to be: list_customer_stories declares no required list, so an agent cannot tell which parameters are mandatory.
toollist_customer_stories
list_customer_stories: declares no required list, so an agent cannot tell which parameters are mandatory
fix
{
  name: "list_customer_stories",
  inputSchema: {
    type: "object",
    properties: {
      query: { type: "string", description: "What to search for" }
    },
    required: ["query"]
  }
}
warningNaming quality
weight 2
Tool naming makes selection harder than it needs to be: 3 names do not start with a verb (what_is_atlan).
toolwhat_is_atlan
fix
{ name: "what_is_atlan" /* short, unique, verb-based */ }
passStub detection
weight 4
All 7 tools declare an execute handler.
passRegistration errors
weight 2
No tool registration threw during the capture.
passDescription quality
weight 5
All 7 rated tool descriptions say what the tool does, when to use it, and what it returns.

Trust

30 / 100 · weight 20
failAnnotations present
weight 6
3 of 3 read-shaped tools do not declare readOnlyHint: true, so an agent has to treat them as possible writes and ask before calling. (Declaring readOnlyHint: false earns nothing - it is the default.)
toollist_atlan_products
list_atlan_products, list_customer_stories, get_atlan_resources
fix
{
  name: "list_atlan_products",
  // Declare readOnlyHint: true on tools that truly have no side effects -
  // that is the claim that lets an agent relax confirmation on reads.
  // (false is the default, so declaring it adds no information.)
  annotations: { readOnlyHint: true }
}
passAnnotation mismatch
weight 6
No tool claims to be read-only while its own name or description says it writes (2 declared hints checked).
warningUntrusted content hint
weight 4
1 of 1 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.
toolfill_lead_form
fill_lead_form: user, email
fix
{ name: "fill_lead_form", annotations: { untrustedContentHint: true } }
warningInjection surface
weight 4
6 of 7 tools carry instruction-shaped text in their own metadata: what_is_atlan Description instructs on output format.
toolwhat_is_atlan
what_is_atlan: Description instructs on output format; list_atlan_products: Description instructs on output format; list_customer_stories: Description instructs on output format; get_atlan_resources: Description instructs on output format
fix
{
  name: "what_is_atlan",
  // 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

0% across 3 intents
Find a carry-on suitcase under 300 dollars.missed
choseno toolexpected product searchkind not applicable
No tool was picked for this intent.
arguments
{}
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
7
run time
13s
finished
Sep 1, 2026
Checked the way in-browser agents discover tools: the top-level document's modelContext registry, read after the page settles.