getcatalog.ai WebMCP audit

audited Aug 28, 2026in 6s
49/ 100

11 tools registered. Strongest in WebMCP use, weakest in human experience.

WebMCP use63
Usefulness58
Human experience0
about:blank

No agent run recorded yet.

No steps recorded

Tools

/
get_company_overview: warning

get_company_overview

What Catalog is and does: the product data layer for AI commerce. Returns positioning, how the platform works for brands, supported AI channels and commerce protocols, and next steps. Call this first for context about this site.Answers a question. Declared read only.
pagehttps://www.getcatalog.ai/
implementation
viaimperative
entry pointdocument
registered after827ms
executepresent
api surfaceTakes no parameters.
annotations
read onlytrue
destructivenot declared
idempotentnot declared
open worldnot declared
untrusted contentnot declared
titlenot declared
1 finding
warningHuman parity
0 / 8
11 of 11 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.
get_company_overview, get_faq, list_blog_posts, open_page, book_demo
fix
<!-- Give the tool a visible counterpart: a declarative form is one the person can see and use too. -->
<form toolname="get_company_overview" tooldescription="...">
  <!-- the same action, as UI -->
</form>
tool json
{
  "name": "get_company_overview",
  "description": "What Catalog is and does: the product data layer for AI commerce. Returns positioning, how the platform works for brands, supported AI channels and commerce protocols, and next steps. Call this first for context about this site.",
  "inputSchema": {
    "type": "object",
    "properties": {}
  },
  "annotations": {
    "readOnlyHint": true
  }
}
Showing get_company_overview

Findings

WebMCP use

63 / 100 · weight 50
passTools registered
4 / 4
11 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.
warningRegistration timing
2 / 4
The slowest tool took 2015.7999999523163ms to register, past the 1000ms an agent reading the registry at first paint would wait for.
toolview_about_us
view_about_us: registered at 2015.7999999523163ms
fix
// Register tools as soon as they're ready, not behind a deferred/async chunk.
document.modelContext.provideContext({ tools: [/* ... */] });
passCanonical entry point
4 / 4
All 11 tools register on the canonical document.modelContext entry point.
passSchema validity
5 / 5
All 11 tools declare a structurally valid object input schema.
warningSchema quality
3.6 / 4
1 of 11 tool schemas are harder for an agent to use than they need to be: list_blog_posts declares no required list, so an agent cannot tell which parameters are mandatory.
toollist_blog_posts
list_blog_posts: declares no required list, so an agent cannot tell which parameters are mandatory
fix
{
  name: "list_blog_posts",
  inputSchema: {
    type: "object",
    properties: {
      query: { type: "string", description: "What to search for" }
    },
    required: ["query"]
  }
}
passStub detection
5 / 5
All 11 tools declare an execute handler.
warningAnnotations present
1.1 / 4
8 of 11 tools declare no readOnlyHint, so an agent cannot tell a read from a write without guessing from the name.
toolopen_page
open_page, book_demo, request_product_audit, read_api_docs, view_about_us
fix
{
  name: "open_page",
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true }
}
passAnnotation mismatch
3 / 3
No tool claims to be read-only while its name says it writes (3 declared hints checked).
warningUntrusted content hint
0 / 2
6 of 6 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.
toollist_blog_posts
list_blog_posts: post, author; open_page: post, user; request_product_audit: reply, user, email; view_about_us: user, customer; view_blog: note, user
fix
{ name: "list_blog_posts", annotations: { untrustedContentHint: true } }
warningRegistration errors
1 / 2
1 tool registration threw during the capture, so the registry an agent reads is incomplete.
duplicate tool name registered: book_demo
fix
try {
  document.modelContext.provideContext({ tools: [/* ... */] });
} catch (err) {
  console.error("WebMCP registration failed", err);
}
warningToolchange coherence
1 / 2
11 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
The injection-surface model hop returned no usable result, so tool contracts were not reviewed for injection surface.

Usefulness

58 / 100 · weight 30
warningNaming quality
1.8 / 2
Tool naming makes selection harder than it needs to be: 2 names do not start with a verb (open_page).
toolopen_page
fix
{ name: "open_page" /* short, unique, verb-based */ }
not applicableDescription quality
0 / 6
The description-quality model hop returned no usable result, so descriptions were not rated.
not applicableTool selection
0 / 14
The tool-selection model hop returned no usable result.
warningCoverage vs. site type
4 / 8
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.

Human experience

0 / 100 · weight 20
warningHuman parity
0 / 8
11 of 11 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.
toolget_company_overview
get_company_overview, get_faq, list_blog_posts, open_page, book_demo
fix
<!-- Give the tool a visible counterpart: a declarative form is one the person can see and use too. -->
<form toolname="get_company_overview" tooldescription="...">
  <!-- the same action, as UI -->
</form>
not applicablePage experience
0 / 12
The page-experience model hop returned no usable result, so the page was not graded.

Tool selection

The tool-selection model hop returned no usable result.
how this was captured
chrome
148.0.7778.96
capture shim
v1
spec snapshot
2026-08
mode
fast
pages
1
tools
11
run time
6s
finished
Aug 28, 2026