Skip to main content
Glama
andresolbach

nodriver-mcp-server

Audit page security

audit_security
Read-only

Run a passive security review of a page, flagging weak headers, TLS, cookies, cache, domains, and browser issues as a starting point for manual testing.

Instructions

Passive security review of the selected page, from what the browser already has — a starting point for a manual test, not a verdict.

WARN marks a concrete weakness, INFO context worth a look. Headers come from the recorded page load; if it was not recorded (a tab the server did not open), the page URL is fetched once from the page and the answer says so. Chrome's issues are collected from the moment the server first touches a tab, so on a tab it had not touched, reload the page for a full list. Cookie values are never printed — use get_cookies for those.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
checksNoWhich parts to run: "headers" (security headers, CSP analysis, CORS on every recorded response, version disclosure), "tls" (protocol, cipher, certificate of every origin the page talked to), "cookies" (flags of every cookie sent to those origins), "cache" (responses a CDN or proxy could serve to the wrong user), "domains" (first and third parties the page talks to, and third-party code loaded without integrity checks) and "issues" (what Chrome itself flagged: CSP violations, mixed content, rejected cookies, CORS errors). Omit for all.
browserNoWhich browser to act on. Each name is an independent Chrome, created on first use. Omit for the shared default; parallel agents each need their own name.default

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.5.0

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial behavioral context beyond the readOnlyHint annotation. It discloses where headers come from, how Chrome's issue collection timing works, that the page URL may be fetched once if not recorded, and that cookie values are intentionally not printed. This level of transparency helps the agent anticipate output quirks and avoids surprises, especially since idempotentHint is false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficient: it opens with the core purpose in the first sentence, then packs each subsequent sentence with unique, non-redundant context. No word is wasted; even the cookie caveat serves both behavioral and usage guidance. It is front-loaded and structured logically, so an agent can quickly grasp the baseline and then dive into nuances.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers data provenance, timing caveats, expected output format, and explicitly points to a sibling tool for missing details. Since an output schema exists, the description need not explain return values. For a tool with two optional parameters and this complexity, it leaves no critical gaps an agent would need to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% coverage with detailed descriptions for both parameters, including the full enumeration for 'checks'. The description does not add meaning to any specific parameter; instead, it explains overall behavior and output formats. While it indirectly helps interpret the 'checks' parameter by describing WARN/INFO output, that is not the tool description's job, so it rests at the baseline for fully documented schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs a 'passive security review of the selected page' and positions it as a starting point rather than a verdict. This gives a specific verb+resource scope and distinguishes it from a full vulnerability assessment. It also lists what the tool outputs (WARN/INFO) and what it doesn't (cookie values), making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description tells the agent when to use the tool (as a starting point for manual tests) and what it is not (a verdict). It explicitly directs cookie value needs to 'get_cookies', providing a clear alternative. It also explains data-source caveats (recorded vs fetched page) that affect interpretation of results, helping the agent choose correctly in context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.