Skip to main content
Glama

RawTrace MCP

RawTrace MCP is a local MCP server that wraps Playwright and Chrome DevTools Protocol to record raw DOM mutation and network event streams while an AI coding agent interacts with a web page.

It is designed for building and debugging complex Playwright automations where post-click snapshots are not enough.

Warning

RawTrace MCP records raw browser data by design. It may capture cookies, authorization headers, request bodies, response bodies, tokens, personal information, WebSocket messages, hidden form values, and DOM text. Treat every trace as sensitive. Do not commit traces to GitHub. Use only on systems and accounts you are authorized to inspect.

RawTrace does not silently mask, redact, or omit sensitive fields by default. Every monitor_start call must include:

{
  "acknowledgeRawCapture": true
}

In an explicitly authorized development or test task, the bundled Skill passes this acknowledgement directly instead of asking again. If the target system, account, or data scope is unclear, confirm authorization before capture. Client approval settings still apply.

Related MCP server: UnderPixel

Requirements

  • Node.js 22 or newer.

  • Chromium available to Playwright or an authorized Chromium CDP endpoint.

  • A client restart, new session, or plugin reload after installation or MCP configuration changes.

Install as a Codex Plugin

The Codex marketplace entry installs the rawtrace-mcp@0.3.0 npm package, including its MCP server and shared browser-debugging Skill:

codex plugin marketplace add ss26367098/rawtrace-mcp
codex plugin add rawtrace-mcp@rawtrace

Start a new Codex session after installation. The plugin launches the bundled dist/cli.js with the 35-tool agent profile; it does not depend on npx latest at runtime.

Install as a Claude Code Plugin

From inside Claude Code:

/plugin marketplace add ss26367098/rawtrace-mcp
/plugin install rawtrace-mcp@rawtrace
/reload-plugins

The equivalent shell commands are:

claude plugin marketplace add ss26367098/rawtrace-mcp
claude plugin install rawtrace-mcp@rawtrace

Claude Code uses the same npm package, MCP configuration, Skill, and version as Codex. Run claude plugin validate . --strict when validating a local checkout.

Direct MCP Install

Install globally if desired:

npm install -g rawtrace-mcp

The default direct installation remains the complete 59-tool full profile. Use agent when you want the smaller agent-oriented surface.

Codex with the agent profile:

[mcp_servers.rawtrace]
type = "stdio"
command = "npx"
args = ["-y", "rawtrace-mcp@0.3.0", "--tool-profile", "agent"]
startup_timeout_sec = 120

Codex with all 59 tools:

[mcp_servers.rawtrace]
type = "stdio"
command = "npx"
args = ["-y", "rawtrace-mcp@0.3.0", "--tool-profile", "full"]
startup_timeout_sec = 120

Claude Code direct MCP examples:

claude mcp add rawtrace -- npx -y rawtrace-mcp@0.3.0 --tool-profile agent
claude mcp add rawtrace-full -- npx -y rawtrace-mcp@0.3.0 --tool-profile full

For local development, build and point the client at the generated CLI:

npm install
npm run build
node dist/cli.js --tool-profile agent
[mcp_servers.rawtrace]
type = "stdio"
command = "node"
args = ["C:\\path\\to\\rawtrace-mcp\\dist\\cli.js", "--tool-profile", "agent"]
startup_timeout_sec = 120

Streamable HTTP:

rawtrace-mcp --transport http --host 127.0.0.1 --port 3757 --tool-profile agent

HTTP binds to 127.0.0.1 by default. Binding to a non-loopback host requires --unsafe-remote and --auth-token.

After changing MCP client configuration, restart the client or start a new session. Claude Code can use /reload-plugins. Tool names include the client-assigned namespace, for example rawtrace.browser_get_elements or mcp__plugin_rawtrace-mcp_rawtrace__monitor_start; match the final RawTrace tool name when following the workflow.

Tool Profiles and Agent Selection

Profile

Tools

Intended use

full

59

Default for direct CLI/MCP installs; preserves the complete existing interface.

agent

35

Plugin default; removes multi-tab/history, low-frequency observation, arbitrary eval, cookie/storage, raw bulk event reads, upload, viewport, permission, and geolocation tools.

An unknown --tool-profile value fails immediately with a clear CLI error. The agent profile reduces selection noise and risky low-frequency capabilities, but it is not a security boundary: RawTrace outputs remain sensitive and existing per-tool acknowledgement checks remain enforced.

RawTrace advertises server instructions and detailed tool metadata so agents can choose it without the user naming it explicitly. The bundled rawtrace-debug-browser Skill applies this decision flow:

  1. Use RawTrace proactively for intermittent Playwright/Cypress failures, transient DOM changes, unclear click results, network or WebSocket timing, redirects, downloads, authentication callbacks, or API-body questions that snapshots cannot explain.

  2. For one uncertain interaction, prefer browser_observe_action_result.

  3. For a multi-step issue, call monitor_start, reproduce the complete flow with RawTrace actions, call monitor_stop, then inspect monitor_get_summary before targeted monitor_search_events, monitor_search_bodies, or monitor_read_artifact.

  4. Do not invoke RawTrace for static CSS edits, ordinary source summaries, deterministic non-browser work, or simple webpage fact lookup.

The MCP server's original capture defaults remain compatible: a bare authorized monitor_start still enables cookie and body capture. The bundled Skill explicitly starts ordinary traces with captureCookies: false and captureBodies: false, enabling either only when authentication, cookies, or request/response content is actually relevant.

Tools

RawTrace MCP currently exposes 59 MCP tools:

  • Browser lifecycle and tabs: browser_launch, browser_attach_cdp, browser_close, browser_list_tabs, browser_new_tab, browser_switch_tab, browser_close_tab.

  • Navigation: browser_navigate, browser_reload, browser_go_back, browser_go_forward.

  • Page observation: browser_get_state, browser_snapshot, browser_get_dom, browser_get_elements, browser_optimize_selector, browser_get_accessibility, browser_get_forms, browser_screenshot, browser_screenshot_annotated, browser_get_network.

  • Browser actions: browser_click, browser_type, browser_press, browser_hover, browser_scroll, browser_select_option, browser_check, browser_fill_form, browser_wait, browser_poll_until, browser_observe_action_result, browser_wait_for_response, browser_wait_for_response_body, browser_handle_dialog.

  • Files, downloads, and environment: browser_upload_file, browser_wait_for_download, browser_get_downloads, browser_set_viewport, browser_grant_permissions, browser_set_geolocation.

  • Raw trace tools: monitor_start, monitor_stop, monitor_list_sessions, monitor_get_manifest, monitor_get_summary, monitor_read_events, monitor_search_events, monitor_search_bodies, monitor_read_artifact, monitor_export.

  • Dangerous page execution: browser_eval.

  • Credential and browser state tools: browser_get_cookies, browser_set_cookies, browser_clear_cookies, browser_get_storage, browser_set_storage, browser_export_storage_state, browser_import_storage_state.

Inspection tools that read raw page content, forms, response bodies, downloads, screenshots, or trace artifacts require acknowledgeRawCapture: true, the same safety acknowledgment used by monitor_start. browser_snapshot, browser_poll_until, browser_observe_action_result, and browser_screenshot_annotated can return or save raw page text, input values, element metadata, screenshots, and before/after diffs. browser_eval also requires acknowledgeDangerousEval: true; browser_observe_action_result requires the same dangerous acknowledgment when its action is eval. If eval times out, RawTrace closes the timed-out page and switches to another or new page, because browser-side JavaScript evaluation cannot be safely canceled in place.

Credential/state tools require both acknowledgeRawCapture: true and acknowledgeCredentialAccess: true; browser_launch requires the same acknowledgments when using storageStatePath. Applying Playwright storageState clears existing cookies, localStorage, and IndexedDB before importing the new state. For CDP-connected browsers or explicit userDataDir profiles, browser_launch({ storageStatePath }) and browser_import_storage_state also require acknowledgeStorageStateOverwrite: true.

browser_upload_file requires acknowledgeFileAccess: true. browser_grant_permissions requires acknowledgePermissionChange: true. browser_set_geolocation requires acknowledgeLocationAccess: true. These acknowledgments are separate so a caller cannot accidentally treat raw capture consent as file, permission, or location consent.

When no monitor is running, large DOM/text, snapshots, screenshots, eval results, response bodies, and storageState artifacts are written under rawtrace-traces/inspections/. When a monitor is active, large raw values are written under the trace bodies/ directory and returned by reference. monitor_read_artifact can read only files inside a trace session directory and rejects path traversal such as ../.

Trace Output

Trace bundles are written under rawtrace-traces/ by default:

trace_2026-06-14T064500Z_ab12cd34/
  manifest.json
  actions.ndjson
  dom.ndjson
  network.ndjson
  cookies.ndjson
  websocket.ndjson
  console.ndjson
  frames.ndjson
  bodies/
  snapshots/

The stable v1 trace schema is documented in docs/trace-schema-v1.md.

monitor_read_events returns at most 1000 events per call. Use offset/limit pagination for browsing or monitor_search_events when looking for a specific endpoint, DOM text, or event type. Search includes inline event fields and DOM htmlRef/textRef artifacts; it does not expand network request or response body files by default. Use monitor_search_bodies when you want to search raw request or response body files, and monitor_read_artifact when you need to read a specific bodyRef, htmlRef, textRef, or snapshot from the trace directory.

Development

npm install
npm run typecheck
npm run lint
npm test

Integration tests launch Chromium. If your environment does not already have Playwright browsers installed, run:

npx playwright install chromium

The repeatable proactive-invocation prompts and acceptance thresholds are in evals/README.md.

Scope

RawTrace MCP is a raw event recorder for automation development. It is not an AI decision-making agent, selector-healing system, CAPTCHA solver, anti-bot bypass tool, cloud browser service, or cross-browser recorder.

The public open-source surface for v1 is the rawtrace-mcp CLI, MCP tools, and documented trace schema. Internal TypeScript modules are not a stable library API and are not covered by SemVer compatibility promises yet.

Available Tools

59 tools
browser_attach_cdpAttach to ChromiumA

Use when an already-running Chromium instance contains the page that must be diagnosed and a tab needs to be selected by page ID, URL, title, or index. Preconditions: the CDP endpoint and target browser must be explicitly authorized and reachable. Next: confirm the selected page with browser_get_state, then observe one action or start a multi-step trace. Sensitivity: attaching exposes the live browser context and any data visible in the selected tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
cdpUrlYes
pageIdNo
activateNo
targetIndexNo
urlContainsNo
titleContainsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.3/5.0
Behavior5/5

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

Annotations indicate no destructive or read-only behavior, but the description adds crucial context: 'attaching exposes the live browser context and any data visible in the selected tab.' This goes beyond annotations and informs the agent of side effects and authorization needs.

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

Conciseness4/5

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

The description is three sentences with clear structure: use case, prerequisites/next steps, and sensitivity warning. No redundant information, though the sensitivity sentence could be integrated but remains efficient.

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

Completeness4/5

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

Given 6 parameters and 0% schema coverage, the description covers the core purpose, selection criteria, and important behavioral notes. It references an output schema so return values are handled. Missing minor details like the format of cdpUrl, but overall sufficient for agent decision-making.

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?

Schema description coverage is 0%, so the description must compensate. It mentions several selection parameters (pageId, urlContains, titleContains, targetIndex) and the required cdpUrl, but does not explain the 'activate' parameter. Partial coverage, not fully compensating for the schema gap.

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 verb 'attach' and the resource 'Chromium page'. It specifies that it connects to an already-running instance and selects a tab by various criteria, distinguishing it from sibling tools like browser_launch and browser_switch_tab.

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

Usage Guidelines4/5

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

The description explicitly states when to use (already-running Chromium with a page to diagnose) and provides preconditions (authorized CDP endpoint) and next steps (confirm with browser_get_state). It does not explicitly list alternatives or when not to use, but the context is clear enough.

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

browser_checkCheck Form ControlA
Destructive

Use when a checkbox or radio control must be checked or unchecked during a reproduction. Preconditions: an active page and precise selector are required. Next: continue the flow or inspect validation, DOM, and request changes. Sensitivity: changing a control can submit data, mutate remote state, or expose values in traces.

ParametersJSON Schema
NameRequiredDescriptionDefault
checkedNo
selectorYes
timeoutMsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark as destructive and not read-only. The description adds value by detailing sensitivity: can submit data, mutate remote state, expose traces. This provides context beyond the annotation flags.

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?

Four sentences, each serves a purpose: purpose, preconditions, next steps, side effects. No wasted words, front-loaded with critical usage context.

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

Completeness3/5

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

With 3 parameters, destructive hint, and output schema present, the description covers usage and side effects but omits parameter details and default behavior (e.g., what happens when 'checked' is omitted). Adequate but not comprehensive.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain parameters. It does not mention selector, checked, or timeoutMs. The purpose hint (checkbox/radio) is weak compensation. Agents would need additional inference.

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 is for checking or unchecking checkbox/radio controls, using specific verbs and resource. It distinguishes from sibling tools like browser_click or browser_type by focusing on the specific control type.

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

Usage Guidelines4/5

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

The description gives clear context for when to use (checkbox/radio) and preconditions (active page, precise selector). It doesn't explicitly exclude other input types but the purpose is narrow enough. Sibling tools cover other interactions.

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

browser_clear_cookiesClear Browser CookiesA
Destructive

Use when a full-profile test needs a deliberate logged-out or clean-cookie state. Preconditions: acknowledgeRawCapture: true and acknowledgeCredentialAccess: true are required; filters should be as narrow as possible. Next: reproduce the intended authentication or redirect behavior after clearing. Sensitivity: clearing cookies can sign out accounts and irreversibly remove session state from the active context.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
pathNo
domainNo
acknowledgeRawCaptureNo
acknowledgeCredentialAccessNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.2/5.0
Behavior5/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds valuable context: 'clearing cookies can sign out accounts and irreversibly remove session state from the active context.' This goes beyond annotations and helps the agent understand the impact.

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

Conciseness4/5

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

The description is three sentences, each serving a distinct purpose: use case, preconditions/next step, and sensitivity. It is front-loaded and concise, though it could be more structured by explicitly listing parameters.

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

Completeness2/5

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

Given the tool complexity (5 parameters, destructive, no schema descriptions), the description is incomplete. It does not explain parameter roles or how filter combinations affect behavior. The output schema exists, so return values don't need explanation, but the lack of parameter guidance leaves gaps.

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

Parameters2/5

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

With 0% schema description coverage, the description must explain parameters. It mentions 'filters should be as narrow as possible' but does not explain the name, path, or domain parameters. It states acknowledgeRawCapture and acknowledgeCredentialAccess are required but omits what they mean or why they're needed. This is insufficient.

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 use case: 'Use when a full-profile test needs a deliberate logged-out or clean-cookie state.' It specifies the verb (clear) and resource (browser cookies), and distinguishes from siblings like browser_get_cookies by focusing on the destructive action.

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 provides explicit when-to-use guidance ('Use when...'), preconditions ('acknowledgeRawCapture: true and acknowledgeCredentialAccess: true are required'), and a next step ('reproduce the intended authentication or redirect behavior after clearing'). It also advises narrowing filters.

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

browser_clickClick ElementA
Destructive

Use when a known element must be clicked during a traced multi-step reproduction and before/after aggregation is not needed. Preconditions: an active page and a precise selector are required; prefer browser_observe_action_result when the outcome is uncertain. Next: continue the reproduction or inspect the resulting state and network events. Sensitivity: clicking can submit forms, mutate remote data, navigate, download files, or trigger other external effects.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYes
timeoutMsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true, so the description adds value by enumerating specific side effects (submit forms, mutate data, navigate, download files, trigger external effects). No contradiction with annotations.

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 concise at 4 sentences, front-loaded with the primary use case. Every sentence adds necessary context without redundancy.

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

Completeness3/5

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

Given the tool's complexity (potential destructive side effects), the presence of an output schema reduces the need to describe return values. However, the complete lack of parameter documentation makes the description less useful for correct invocation.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description provides no details about parameters. It mentions 'precise selector' in preconditions but does not explain the selector parameter format, validity, or the timeoutMs parameter. This is a critical gap.

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 explicitly states the tool's purpose: clicking a known element during a traced multi-step reproduction. It uses specific verbs and resource ('click element') and differentiates from sibling tools like browser_observe_action_result.

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 provides clear when-to-use conditions (known element, multi-step reproduction) and when-not-to-use (when outcome uncertain, prefer browser_observe_action_result). It also lists preconditions (active page, precise selector).

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

browser_closeClose BrowserA
Destructive

Use when the RawTrace browser context is no longer needed or must be reset before a clean reproduction. Preconditions: stop an active monitor first when its trace must be flushed and retained. Next: launch or attach again only if more browser work is required. Sensitivity: closing destroys the in-memory browser context and can discard unsaved page state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the destructiveHint annotation, description adds crucial context: closing destroys the in-memory browser context and can discard unsaved page state, plus interaction with monitor flushing.

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?

Three concise sentences, each serving a distinct purpose: purpose, preconditions, and sensitivity. No redundancy or fluff.

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?

Given no parameters, destructive annotation, and existence of output schema, description provides complete context: purpose, preconditions, and side effects.

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

Parameters4/5

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

No parameters, so schema coverage is 100%. Description does not need to add parameter info; baseline for 0 parameters is 4.

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?

Clearly states the tool closes the RawTrace browser context when no longer needed or for resetting. Distinguishes from siblings like browser_close_tab and browser_launch by specifying scope and preconditions.

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

Usage Guidelines4/5

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

Explicitly states when to use (context no longer needed or reset needed) and provides preconditions (stop active monitor first if trace must be retained). Implies alternatives but does not name them explicitly.

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

browser_close_tabClose Browser TabA
Destructive

Use when a full-profile workflow must remove an unneeded page or recover from a page-specific failure. Preconditions: identify the intended page and stop any trace that must retain its final events. Next: list tabs or inspect state to confirm which page remains active. Sensitivity: closing a tab discards its unsaved in-memory state.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.2/5.0
Behavior4/5

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

The description warns that closing a tab discards unsaved in-memory state, which adds value beyond the destructiveHint annotation. It also specifies preconditions to mitigate risks. However, it does not detail the exact consequences (e.g., whether the tab is immediately removed or requires confirmation), so slightly incomplete.

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

Conciseness4/5

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

The description is concise (three sentences) and front-loaded with the primary use case. Every sentence adds information. However, the term 'full-profile workflow' could be clarified. Overall well-structured.

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

Completeness4/5

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

For a simple destructive tool, the description covers purpose, preconditions, consequences, and next steps. The presence of an output schema reduces the need to describe return values. Missing: handling of invalid pageId or when no such tab exists. But overall adequate.

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

Parameters2/5

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

The schema provides no description for pageId. The description implies it is the identifier for the tab to close, but does not explicitly define it or specify how to obtain it (e.g., from list_tabs). This leaves ambiguity.

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's role: 'remove an unneeded page or recover from a page-specific failure.' This distinguishes it from sibling tools like browser_close (which closes the entire browser) and navigation tools. The title reinforces purpose.

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 provides explicit when-to-use guidance ('Use when a full-profile workflow must remove an unneeded page...') and preconditions about identifying the page and stopping traces. It also gives next steps. This helps the agent decide when to invoke this tool over alternatives.

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

browser_evalEvaluate Page JavaScriptA
Destructive

Use when a full-profile diagnosis cannot be completed with safe DOM, action, wait, or trace tools and exact page-side JavaScript is essential. Preconditions: an active authorized page plus acknowledgeRawCapture: true and acknowledgeDangerousEval: true are required. Next: prefer a targeted inspection tool afterward and document why arbitrary evaluation was necessary. Sensitivity: arbitrary JavaScript can read or modify DOM, storage, page-visible credentials, and remote application state.

ParametersJSON Schema
NameRequiredDescriptionDefault
argNo
maxBytesNo
frameNameNo
timeoutMsNo
expressionYes
frameUrlContainsNo
acknowledgeRawCaptureNo
acknowledgeDangerousEvalNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.6/5.0
Behavior5/5

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

Description adds specifics beyond annotations: 'arbitrary JavaScript can read or modify DOM, storage, page-visible credentials, and remote application state.' Aligns with destructiveHint=true and openWorldHint=true. No contradiction.

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?

Four sentences, each adding value: use case, preconditions, next steps, sensitivity. No redundant information. Well-structured and front-loaded.

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

Completeness4/5

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

Covers when, preconditions, and risks. Does not explicitly describe output format, but output schema exists. Complete enough for an agent to understand the tool's role and safety considerations.

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?

Schema coverage 0%, so description must compensate. It clarifies the need for acknowledgeRawCapture and acknowledgeDangerousEval, but does not detail other parameters like maxBytes, frameName, timeoutMs. Partial but inadequate compensation.

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?

Description explicitly states when to use: when safe DOM, action, wait, or trace tools are insufficient and exact JavaScript execution is essential. Clearly distinguishes from sibling tools by focusing on arbitrary evaluation.

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?

Provides detailed guidance: preconditions (active page, acknowledgeRawCapture and acknowledgeDangerousEval), next steps (prefer targeted tool afterward, document necessity), and sensitivity warning. Excellent context for when and how to use.

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

browser_export_storage_stateExport Storage StateA

Use when a full-profile authorized workflow explicitly needs a Playwright storageState file for reproduction or transfer. Preconditions: acknowledgeRawCapture: true and acknowledgeCredentialAccess: true are required and the output path must be protected. Next: use the file only for the intended test and remove it when no longer needed. Sensitivity: the exported file may contain reusable cookies, tokens, origins, and IndexedDB data.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxBytesNo
indexedDBNo
outputPathNo
acknowledgeRawCaptureNo
acknowledgeCredentialAccessNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.1/5.0
Behavior4/5

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

The description adds sensitivity details about the exported file containing cookies, tokens, etc., which goes beyond the annotations. Annotations indicate readOnlyHint=false (so writing) and non-destructive, consistent with description. No contradictions.

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?

Three sentences, each essential: purpose, preconditions/usage, sensitivity. Front-loads the main action. No redundancy or unnecessary detail.

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

Completeness4/5

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

Given the tool has an output schema and 5 parameters, the description adequately covers when to use, preconditions, and data sensitivity. It does not describe the output structure but that is covered by the output schema. Missing details like the file format (Playwright storageState) but assumed known.

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

Parameters2/5

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

Schema coverage is 0%, and the description only mentions acknowledgeRawCapture and acknowledgeCredentialAccess in context but does not explain their role or any other parameter (maxBytes, indexedDB, outputPath). The description fails to compensate for the lack of schema descriptions.

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 exports a Playwright storageState file for reproduction/transfer, specifying the exact resource and purpose. It implicitly differentiates from sibling import_storage_state by focusing on export.

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

Usage Guidelines4/5

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

The description provides explicit when-to-use context ('full-profile authorized workflow needing storageState file'), preconditions (acknowledge flags, protected output path), and post-usage instructions. It lacks explicit when-not-to-use or comparison to related tools like browser_get_state.

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

browser_fill_formFill FormA
Destructive

Use when multiple form controls must be populated consistently and optionally submitted during a reproduction. Preconditions: an active page and unambiguous field selectors, names, labels, or placeholders are required; provide only intended test data. Next: observe validation, submission requests, redirects, and final state. Sensitivity: filled values may be captured in the DOM, requests, screenshots, traces, or remote application state.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYes
timeoutMsNo
submitSelectorNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false. Description adds 'Sensitivity: filled values may be captured in the DOM, requests, screenshots, traces, or remote application state,' warning about data persistence beyond annotations.

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?

Three sentences with clear flow: usage indication, preconditions, next steps, sensitivity. No unnecessary words.

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

Completeness4/5

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

Covers purpose, preconditions, next steps, and sensitivity. Output schema exists, so return values are not needed. Could mention minItems constraint for fields array or default timeoutMs, but overall complete for a form-filling tool.

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?

Schema description coverage is 0%. Description mentions 'unambiguous field selectors, names, labels, or placeholders' which hints at fields array properties but does not detail timeoutMs or submitSelector. Without schema descriptions, more parameter guidance would be beneficial.

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?

Description clearly states 'Use when multiple form controls must be populated consistently and optionally submitted during a reproduction.' It specifies verb 'fill' and resource 'form', and distinguishes from sibling tools like browser_type (single field).

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

Usage Guidelines4/5

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

Preconditions are explicit: 'active page and unambiguous field selectors, names, labels, or placeholders are required; provide only intended test data.' It advises next steps. However, it does not explicitly mention when not to use or name alternatives, though siblings imply differentiation.

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

browser_get_accessibilityInspect AccessibilityA
Read-onlyIdempotent

Use when a full-profile diagnosis specifically needs DOM-derived roles, names, states, or accessibility-oriented element summaries. Preconditions: an active page and acknowledgeRawCapture: true are required. Next: use the returned selector and role context in a targeted action or source fix. Sensitivity: accessible names and values are derived from raw DOM and may contain sensitive content.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
selectorNo
textContainsNo
acknowledgeRawCaptureNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already indicate readOnly, idempotent, non-destructive. Description adds that acknowledgeRawCapture must be true and results may contain sensitive content. No contradiction.

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

Conciseness4/5

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

Three sentences: purpose, preconditions+next steps, sensitivity. Efficient but first sentence uses jargon ('full-profile diagnosis') which may be unclear. No wasteful content.

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

Completeness3/5

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

Given many sibling tools and output schema exists, description provides good overall context. But fails to explain all parameters (0% schema coverage), so agent may miss how to filter or limit results.

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

Parameters2/5

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

Schema has 0% coverage; description only mentions acknowledgeRawCapture, and incorrectly as required. No explanation for limit, selector, or textContains. Agent cannot infer their purpose from description.

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?

Description clearly states the tool retrieves DOM-derived accessibility info (roles, names, states, summaries). Differentiates from siblings like browser_get_dom and browser_get_elements by specifying accessibility focus.

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

Usage Guidelines3/5

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

Provides use condition ('when full-profile diagnosis needs accessibility') and preconditions (active page, acknowledgeRawCapture). But incorrectly states acknowledgeRawCapture as required (schema says optional), misleading the agent. Lacks when-not-to-use or alternatives.

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

browser_get_cookiesRead Browser CookiesA
Read-onlyIdempotent

Use when a full-profile authentication or cookie-specific diagnosis explicitly requires raw cookie values. Preconditions: acknowledgeRawCapture: true and acknowledgeCredentialAccess: true are required on an authorized account. Next: inspect only the relevant cookie fields and avoid copying values into reports or code. Sensitivity: cookies are credentials and must be treated as secrets.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlsNo
acknowledgeRawCaptureNo
acknowledgeCredentialAccessNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint. The description adds important behavioral context: that cookies are credentials and must be treated as secrets, and that specific acknowledgments are required. This adds value beyond annotations without contradiction.

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 very concise with three sentences that are front-loaded: use case, preconditions, and post-use guidance. Every sentence adds essential information with no waste.

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

Completeness4/5

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

Given the presence of an output schema, the description does not need to explain return values. It covers the main use case, sensitivity, and preconditions. However, it misses explaining the 'urls' parameter, which is a minor gap. Overall, it is complete enough for an experienced agent.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain parameters. While it mentions the acknowledgment booleans in the preconditions, it provides no explanation for the 'urls' parameter (array of URIs). This leaves a significant gap in understanding how to use the tool effectively.

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's purpose: reading raw cookie values for authentication or diagnosis. It uses a specific verb ('read') and resource ('cookies'), and distinguishes from sibling tools by emphasizing 'raw cookie values' and the special preconditions.

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 explicitly states when to use (full-profile auth or cookie-specific diagnosis), required preconditions (acknowledgments), and post-use guidance (inspect only relevant fields, avoid copying). It effectively guides the agent on appropriate use cases and constraints.

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

browser_get_domInspect DOMA
Read-onlyIdempotent

Use when current HTML or text for a page region is needed to understand transient DOM state, hidden content, or selector behavior. Preconditions: an active page and acknowledgeRawCapture: true are required; narrow with a selector when possible. Next: use browser_get_elements for actionable targets or compare DOM mutations in a trace. Sensitivity: raw DOM and text may contain secrets, personal data, hidden form values, or externalized artifacts.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo
maxBytesNo
selectorNo
acknowledgeRawCaptureNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.6/5.0
Behavior5/5

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

The description adds a sensitivity warning about raw DOM containing secrets, personal data, etc., which goes beyond the annotations (readOnlyHint, idempotentHint, destructiveHint). It does not contradict annotations.

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 concise: three sentences covering purpose, preconditions/next steps, and sensitivity warning. Information is front-loaded and every sentence adds value.

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

Completeness4/5

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

The tool has 4 parameters, an output schema, and annotations. The description covers purpose, usage guidelines, preconditions, and sensitivity, but lacks full parameter explanations. Output schema exists, so return values are documented. Overall fairly complete.

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?

Schema coverage is 0%, so the description must compensate. It mentions acknowledgeRawCapture as required and selector as optional, but does not explain mode or maxBytes parameters. Partial guidance but insufficient for complete understanding.

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's purpose: to retrieve DOM HTML/text for a page region to understand transient state, hidden content, or selector behavior. It also distinguishes from sibling tool 'browser_get_elements' by specifying the different use case.

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 explicitly lists preconditions (active page, acknowledgeRawCapture: true), recommends narrowing with a selector, and suggests next steps (use browser_get_elements for actionable targets or compare DOM mutations). It covers when to use and when not, including alternatives.

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

browser_get_downloadsList DownloadsA
Read-onlyIdempotent

Use when saved downloads from the current runtime must be located or verified after a download flow. Preconditions: at least one download should have completed in this runtime. Next: use the relevant local file with an appropriate parser or test assertion. Sensitivity: download paths, filenames, URLs, and files can contain sensitive information.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and destructiveHint. The description adds useful context about sensitive information (paths, filenames, URLs). No contradiction with annotations. Could mention that it returns a list of download objects.

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?

Two concise sentences conveying purpose, preconditions, next steps, and sensitivity. Front-loaded with key information. No wasted words.

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?

Given the tool's simplicity and presence of an output schema, the description covers preconditions, next actions, and sensitivity. It is complete for agent decision-making.

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

Parameters2/5

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

Schema coverage is 0% (limit parameter has no description). The description does not mention the 'limit' parameter or its semantics, despite the parameter being optional but meaningful. This is a significant gap.

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's purpose: to locate or verify saved downloads after a download flow. It specifies the resource (downloads) and context (current runtime), differentiating it from other browser tools which focus on navigation, DOM, etc.

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?

Provides explicit when-to-use ('after a download flow'), preconditions ('at least one download should have completed'), and next steps ('use the relevant local file with an appropriate parser or test assertion'). This offers comprehensive guidance.

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

browser_get_elementsList Interactive ElementsA
Read-onlyIdempotent

Use when stable selectors and concise metadata for clickable, editable, or otherwise interactive elements are needed before an action. Preconditions: an active page and acknowledgeRawCapture: true are required; filter by selector or text on large pages. Next: call browser_observe_action_result with the chosen selector for a single uncertain interaction. Sensitivity: element summaries can include visible text, attributes, values, and other raw page metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
selectorNo
textContainsNo
acknowledgeRawCaptureNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint, idempotentHint, openWorldHint. The description adds context about sensitivity of returned metadata (visible text, attributes, values) and the need for acknowledgeRawCapture. No contradiction with annotations.

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?

Four sentences with no redundancy. Purpose, preconditions, filtering, and next step are front-loaded. Every sentence adds value; efficient and structured.

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

Completeness4/5

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

Given 4 un-documented parameters and an existing output schema, the description covers purpose, filtering, preconditions, and next steps adequately. It could note that 'limit' caps results, but overall sufficient for an interactive element listing tool.

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?

Schema coverage is 0%, so description carries burden. It explains 'acknowledgeRawCapture' and 'selector'/'textContains' for filtering but does not elaborate on 'limit'. Partial compensation for missing schema docs, but incomplete.

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's purpose: 'list interactive elements' and specifies the use case for obtaining stable selectors and metadata before actions. It distinguishes from sibling tools like browser_snapshot and browser_get_dom by focusing on interactive elements rather than state or raw DOM.

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

Usage Guidelines4/5

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

The description provides clear preconditions (active page, acknowledgeRawCapture), suggests filtering by selector/text on large pages, and recommends the next step (browser_observe_action_result). It does not explicitly state when not to use, but the guidance is adequate for correct invocation.

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

browser_get_formsInspect FormsA
Read-onlyIdempotent

Use when form structure, labels, controls, values, validation state, or submit targets are needed before reproducing a form issue. Preconditions: an active page and acknowledgeRawCapture: true are required; filter to the relevant form when possible. Next: use browser_fill_form for a multi-field reproduction or browser_observe_action_result for one uncertain control action. Sensitivity: form metadata can contain visible or hidden values, personal data, and credential fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
maxBytesNo
selectorNo
textContainsNo
acknowledgeRawCaptureNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already mark the tool as read-only, idempotent, non-destructive. The description adds context about capturing raw form data and warns about sensitivity (hidden values, personal data). No contradictions.

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?

Four concise sentences, each serving a distinct purpose: purpose, preconditions, next steps, sensitivity. No redundant information.

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

Completeness2/5

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

Despite having output schema, the description fails to cover parameter semantics for 5 parameters. Given low schema coverage (0%), this is a significant gap that reduces completeness for effective tool invocation.

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

Parameters2/5

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

Schema coverage is 0%, yet the description only mentions acknowledgeRawCapture in preconditions. It does not explain the purpose of limit, maxBytes, selector, or textContains, leaving agents to guess filtering and other options.

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 retrieves form structure, labels, controls, values, validation state, and submit targets. It specifies the use case 'before reproducing a form issue', differentiating it from other browser inspection tools.

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?

Provides explicit preconditions (active page, acknowledgeRawCapture: true), guidance to filter forms, and next steps referencing sibling tools (browser_fill_form, browser_observe_action_result). Also notes sensitivity.

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

browser_get_networkGet Recent Network EventsA
Read-onlyIdempotent

Use when recent request and response summaries are needed to explain a click with no request, wrong endpoint, status failure, redirect, or timing issue. Preconditions: a trace session must exist; filter by URL, method, status, or sequence when possible. Next: use monitor_search_events for cross-stream correlation or monitor_search_bodies only when body content is relevant. Sensitivity: network summaries can expose URLs, headers, status details, and references to sensitive bodies.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
methodNo
statusNo
sinceSeqNo
sessionIdNo
urlContainsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds valuable context about sensitivity: 'network summaries can expose URLs, headers, status details, and references to sensitive bodies.' This goes beyond annotations without contradiction.

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 concise with 4 sentences, each serving a clear purpose: when to use, preconditions, next steps, and sensitivity. It is front-loaded with the most critical information.

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

Completeness4/5

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

Given the 6 parameters, 0% schema coverage, and presence of output schema, the description covers usage, preconditions, next steps, and data sensitivity. It is fairly complete, though more detail on parameter meanings would elevate it further.

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?

Schema description coverage is 0%, so the description must compensate. It mentions filtering by URL, method, status, or sequence, which corresponds to urlContains, method, status, and sinceSeq parameters. However, it does not describe all 6 parameters (e.g., limit, sessionId) in detail, leaving some gaps.

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 explicitly states when to use this tool: to explain a click with no request, wrong endpoint, etc. It clearly identifies the tool's purpose to get recent network event summaries and distinguishes it from sibling tools like monitor_search_events and monitor_search_bodies.

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 provides explicit when-to-use guidance, preconditions (a trace session must exist), and next steps (use monitor_search_events or monitor_search_bodies). It also recommends filtering by URL, method, status, or sequence when possible.

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

browser_get_stateGet Page StateA
Read-onlyIdempotent

Use when the current URL, title, frames, viewport, or focused element is needed to orient a browser diagnosis. Preconditions: an active page and acknowledgeRawCapture: true are required in an authorized environment. Next: use browser_snapshot for richer page context or choose the next targeted action. Sensitivity: state can expose URLs, frame metadata, and focused values from the live page.

ParametersJSON Schema
NameRequiredDescriptionDefault
acknowledgeRawCaptureNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds valuable context beyond that: preconditions for authorized environment, sensitivity about exposing URLs/frame metadata, and a next step. No contradiction.

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?

Three efficient sentences: purpose, preconditions/next step, sensitivity. No redundancy, all sentences earn their place.

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?

Covers all essential aspects: purpose, preconditions, usage context, alternative (browser_snapshot), sensitivity. Output schema exists so return values need not be detailed. Complete for this tool.

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

Parameters2/5

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

Schema coverage is 0% for the single parameter 'acknowledgeRawCapture'. The description mentions it is required in authorized environment but does not explain its meaning or behavior. Minimal value added.

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 uses specific verbs ('get') and resources ('page state'), listing exact elements (URL, title, frames, viewport, focused element). It distinguishes from sibling 'browser_snapshot' by noting that tool provides richer context.

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?

Explicitly states when to use ('when the current URL, title, frames...is needed'), preconditions (active page, acknowledgeRawCapture required), and provides a clear next step ('use browser_snapshot...'). No ambiguity.

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

browser_get_storageRead Web StorageA
Read-onlyIdempotent

Use when a full-profile authentication or application-state diagnosis explicitly requires localStorage or sessionStorage. Preconditions: acknowledgeRawCapture: true and acknowledgeCredentialAccess: true are required for an authorized origin. Next: inspect only relevant keys and avoid returning raw secrets in summaries. Sensitivity: web storage frequently contains tokens, identifiers, preferences, and personal data.

ParametersJSON Schema
NameRequiredDescriptionDefault
originNo
maxBytesNo
acknowledgeRawCaptureNo
includeSessionStorageNo
acknowledgeCredentialAccessNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4/5.0
Behavior5/5

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

Annotations already declare readOnly, openWorld, idempotent, non-destructive. The description adds critical context: storage sensitivity (tokens, identifiers, personal data) and required acknowledgments. No contradiction.

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?

Three focused sentences, front-loaded with usage condition, no redundant text. Every sentence adds value.

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

Completeness3/5

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

Use case and behavioral context are well covered, and output schema exists. However, with zero parameter description coverage and 5 parameters, the description is incomplete for effective tool invocation.

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

Parameters1/5

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

Schema coverage is 0%; the description does not mention any of the 5 parameters. Agents receive no guidance on origin, maxBytes, includeSessionStorage, or the acknowledgment booleans beyond schema field names.

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?

Description clearly states the tool reads localStorage or sessionStorage for authentication or application-state diagnosis, distinguishing it from sibling tools like browser_get_cookies or browser_get_state.

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

Usage Guidelines4/5

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

Provides explicit preconditions (acknowledgeRawCapture, acknowledgeCredentialAccess) and next-step guidance (inspect relevant keys, avoid raw secrets). Implicitly restricts usage to contexts requiring full-profile auth or state diagnosis. Could be strengthened by directly stating when not to use.

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

browser_go_backGo BackA
Destructive

Use when history navigation is specifically needed to reproduce a redirect, back-button state bug, or single-page application history issue. Preconditions: an active page with a previous history entry is required. Next: inspect state and relevant network events after navigation. Sensitivity: history navigation can reissue requests and expose credential-bearing page state.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutMsNo
waitUntilNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A3.8/5.0
Behavior4/5

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

Beyond annotations (destructiveHint: true), description adds context: 'history navigation can reissue requests and expose credential-bearing page state.' This warns about side effects not obvious from annotations alone. Good addition.

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?

Extremely concise: three sentences plus two labeled points (preconditions, next, sensitivity). Every sentence adds distinct value. Purpose is immediately clear in the first words.

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

Completeness3/5

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

Covers purpose, usage, and behavioral effects well, but completely omits parameter documentation. Output schema exists but not shown. Given the tool's simplicity and available annotations, the description is adequate but not fully self-contained due to missing param info.

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

Parameters1/5

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

Schema coverage is 0% (no parameter descriptions in schema). The description does not mention or explain timeoutMs or waitUntil. As the tool has two parameters, this is a critical gap; the agent has no guidance on using them effectively.

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?

Description clearly states the specific use case: 'reproduce a redirect, back-button state bug, or single-page application history issue.' It provides a specific verb-resource combination and distinguishes from forward navigation implicitly.

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

Usage Guidelines4/5

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

Explicitly states when to use ('when history navigation is specifically needed'), preconditions ('active page with a previous history entry required'), and post-use guidance ('inspect state and relevant network events'). Could be improved by explicitly naming alternatives like browser_go_forward or browser_navigate.

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

browser_go_forwardGo ForwardA
Destructive

Use when forward history navigation is specifically required to reproduce a cached state, redirect, or single-page application history issue. Preconditions: an active page with a forward history entry is required. Next: inspect state and relevant network events after navigation. Sensitivity: history navigation can reissue requests and expose credential-bearing page state.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutMsNo
waitUntilNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.1/5.0
Behavior4/5

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

Adds context beyond annotations by noting that navigation can reissue requests and expose credential-bearing page state. Annotations already indicate destructiveHint=true; description reinforces sensitivity.

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?

Three focused sentences with no repetition or fluff. Each sentence adds value: usage scenario, preconditions, and behavioral sensitivity.

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

Completeness4/5

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

Covers key aspects for a navigation tool: purpose, preconditions, sensitivity. Output schema exists to handle return values, so explanation is sufficient. Minor omission: no mention of waiting for navigation to complete, but waitUntil parameter implies it.

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

Parameters2/5

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

Schema coverage is 0%, and the description does not explain the two parameters (timeoutMs, waitUntil). The agent must infer meaning from names and enums alone, making parameter usage less clear.

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?

Clearly states the tool is for forward history navigation, specifying exact use cases like reproducing cached states, redirects, or SPA history issues. Distinguishes from siblings by being the only forward navigation tool.

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

Usage Guidelines4/5

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

Provides preconditions (active page with forward history) and post-navigation suggestions. However, does not explicitly state when not to use or compare to alternatives like browser_go_back or browser_navigate.

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

browser_grant_permissionsGrant Browser PermissionsA
Destructive

Use when a full-profile authorized test explicitly requires browser permissions such as geolocation, notifications, camera, or microphone. Preconditions: acknowledgePermissionChange: true and the minimal intended permission list are required. Next: run the permission-dependent flow and avoid granting unrelated capabilities. Sensitivity: permissions expose device-like capabilities and can change what the target page may access.

ParametersJSON Schema
NameRequiredDescriptionDefault
originNo
permissionsYes
acknowledgePermissionChangeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false, so the description adds moderate value by explaining sensitivity: 'permissions expose device-like capabilities and can change what the target page may access.' This provides context beyond the annotations, but does not detail side effects or revocation.

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 three sentences long, each earning its place: purpose, preconditions, and sensitivity/next steps. It is front-loaded with the key verb and resource, with no redundant or vague language.

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

Completeness4/5

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

Given the tool's complexity (permission grant with preconditions and sensitivity), the description covers when to use it, prerequisites, and behavioral implications. With an output schema present, return values are handled elsewhere, making this fairly complete. Minor gap: no mention of error cases or handling denied permissions.

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?

Schema description coverage is 0%, so the description must compensate. It provides examples for the 'permissions' parameter (geolocation, notifications, etc.) and implies that 'acknowledgePermissionChange' should be true via preconditions. However, the 'origin' parameter is not explained, leaving it unclear.

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's purpose: granting browser permissions like geolocation, notifications, camera, or microphone. It uses a specific verb ('grant') and resource ('browser permissions'), and distinguishes itself from sibling tools by focusing on permission management, not navigation or DOM interaction.

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

Usage Guidelines4/5

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

The description provides explicit usage guidance: 'Use when a full-profile authorized test explicitly requires browser permissions' and lists preconditions (acknowledgePermissionChange: true, minimal permission list). It also suggests next steps ('run the permission-dependent flow') and warns against granting unrelated capabilities. However, it does not mention alternatives because no other sibling tool performs this function.

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

browser_handle_dialogHandle JavaScript DialogA
Destructive

Use when an alert, confirm, prompt, or beforeunload dialog blocks or changes the browser reproduction. Preconditions: configure the intended accept or dismiss behavior before the dialog appears. Next: trigger the dialog and inspect the resulting action, navigation, or state. Sensitivity: accepting prompts or confirmations can submit text, authorize actions, or mutate application state.

ParametersJSON Schema
NameRequiredDescriptionDefault
onceNo
actionYes
promptTextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A3.9/5.0
Behavior4/5

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

Adds context beyond annotations (destructiveHint=true) by noting that accepting prompts can submit text, authorize actions, or mutate state. No contradiction with annotations.

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

Conciseness4/5

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

Three sentences with front-loaded purpose and clear structure. Slightly verbose but no redundancy.

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

Completeness3/5

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

Adequate for a simple 3-param tool with output schema, but missing parameter explanations in description reduces completeness.

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

Parameters2/5

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

No parameter descriptions in schema (0% coverage) and description does not explain 'once', 'action', or 'promptText' meaning, leaving agents to infer from enum values and type alone.

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?

Description specifies the tool handles JavaScript dialogs (alert, confirm, prompt, beforeunload) that block or change browser reproduction, clearly distinguishing it from navigation and interaction siblings.

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

Usage Guidelines4/5

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

Provides preconditions (configure behavior before dialog appears) and next steps (trigger dialog and inspect result), but lacks explicit when-not-to-use or alternative tools.

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

browser_hoverHover ElementA

Use when hover-driven menus, tooltips, lazy content, or transient UI state must be reproduced. Preconditions: an active page and precise selector are required. Next: inspect the transient DOM promptly or continue the monitored sequence. Sensitivity: hover handlers can trigger network requests, analytics, or application state changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYes
timeoutMsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.1/5.0
Behavior4/5

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

The description adds context beyond annotations by warning that 'hover handlers can trigger network requests, analytics, or application state changes', which is consistent with readOnlyHint=false and destructiveHint=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?

Three sentences, front-loaded with the primary use case, and no redundant information; every sentence adds value.

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

Completeness4/5

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

Given the tool's simplicity and the presence of an output schema, the description covers preconditions, side effects, and next steps. However, the lack of parameter descriptions slightly reduces completeness.

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

Parameters2/5

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

With 0% schema description coverage, the description fails to explain the meaning or constraints of the two parameters (selector and timeoutMs), leaving the agent to rely solely on the JSON schema, which lacks descriptions.

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 explicitly states the tool is for 'hover-driven menus, tooltips, lazy content, or transient UI state', using a specific verb and resource, distinguishing it from sibling tools like click or type.

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

Usage Guidelines4/5

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

Provides clear preconditions ('active page and precise selector required') and a recommended next step ('inspect the transient DOM or continue'), but does not explicitly list alternatives or when not to use.

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

browser_import_storage_stateImport Storage StateA
Destructive

Use when a full-profile authorized reproduction explicitly needs to replace active browser credential and origin state from a Playwright storageState file. Preconditions: raw-capture and credential acknowledgements are required; CDP or userDataDir contexts also require acknowledgeStorageStateOverwrite: true. Next: navigate or reload to verify the intended authenticated state. Sensitivity: import clears and replaces cookies, localStorage, and IndexedDB and can overwrite a real logged-in profile.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
acknowledgeRawCaptureNo
acknowledgeCredentialAccessNo
acknowledgeStorageStateOverwriteNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.7/5.0
Behavior5/5

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

The description discloses that the action clears and replaces cookies, localStorage, and IndexedDB, and can overwrite a real logged-in profile. This goes beyond the annotations (destructiveHint=true) by detailing exactly what is destroyed.

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?

Three concise sentences: first states purpose and when to use, second lists preconditions, third gives next step and sensitivity. No irrelevant information.

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?

Given the tool's destructive nature and the presence of an output schema (so return values need not be explained), the description covers preconditions, behavioral effects, and next steps adequately.

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

Parameters4/5

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

With 0% schema description coverage, the description compensates by explaining the purpose of the acknowledgment parameters (raw-capture, credential, overwrite). The 'path' parameter is implied but not explicitly described; still, it adds significant meaning beyond the schema.

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?

Description clearly states the tool replaces active browser credentials and origin state from a Playwright storageState file, with a specific verb ('import') and resource ('storage state'). It distinguishes this from siblings like browser_export_storage_state.

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

Usage Guidelines4/5

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

Description provides explicit preconditions (acknowledgments required) and a next step (navigate/reload). It does not explicitly list alternatives or when not to use, but the specific context ('full-profile authorized reproduction') implies narrow usage.

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

browser_launchLaunch BrowserA

Use when a RawTrace-controlled Chromium session is not running yet, or a known CDP endpoint or storage state must be opened before reproducing a browser issue. Preconditions: provide only profiles and systems you are authorized to inspect; storageState use also requires the raw-capture and credential acknowledgements. Next: navigate or inspect the selected page, then use browser_observe_action_result for one action or monitor_start for a multi-step reproduction. Sensitivity: launch options can expose an existing browser profile, CDP session, or credential-bearing storage state.

ParametersJSON Schema
NameRequiredDescriptionDefault
cdpUrlNo
headlessNo
userDataDirNo
storageStatePathNo
acknowledgeRawCaptureNo
acknowledgeCredentialAccessNo
acknowledgeStorageStateOverwriteNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations indicate openWorldHint=true and destructiveHint=false. The description adds that launch options can expose existing browser profiles, CDP sessions, or credential-bearing storage states, supplementing the annotations with useful behavioral context.

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

Conciseness4/5

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

The description is multiple sentences but front-loaded with the core purpose. Every sentence adds value, though it could be slightly more concise without losing clarity.

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

Completeness4/5

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

For a launch tool with 7 parameters (none required) and an output schema, the description covers when, preconditions, next steps, and sensitivity. It adequately prepares the agent, though it does not detail the output structure (handled externally).

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?

Schema description coverage is 0%, but the description mentions key parameters like profiles, storage state, and CDP endpoint. It also references the acknowledge booleans in preconditions. However, it does not explain each parameter in detail, limiting the added value for an agent.

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 launches a RawTrace-controlled Chromium session or opens a CDP endpoint/storage state. It distinguishes from siblings like browser_attach_cdp by specifying when a session is not running yet.

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?

Provides explicit when-to-use context, preconditions (authorization, acknowledgements), and next-step suggestions (navigate/inspect, then use browser_observe_action_result or monitor_start). Also implies when-not-to-use by mentioning 'not running yet'.

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

browser_list_tabsList Browser TabsA
Read-onlyIdempotent

Use when a full-profile workflow must discover the open pages before switching, closing, or selecting a CDP target. Preconditions: an active browser context is required. Next: use browser_switch_tab with the chosen page ID. Sensitivity: tab URLs and titles may reveal private application or account information.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint=false. Description adds sensitivity warning about tab URLs and titles, which is valuable context beyond annotations.

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?

Three sentences: purpose, preconditions+next step, sensitivity. Front-loaded and every sentence adds value.

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?

For a zero-parameter tool with an output schema, description covers usage, preconditions, follow-up tool, and data sensitivity. No gaps.

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

Parameters4/5

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

Schema has 0 parameters with 100% coverage, so no param info needed. Baseline 4 applies; description correctly adds no redundant param details.

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?

Description states 'discover the open pages before switching, closing, or selecting a CDP target' with specific verb 'list' and resource 'browser tabs'. It distinguishes from siblings by mentioning typical workflow sequence.

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

Usage Guidelines4/5

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

Explicitly says 'Use when...' and provides preconditions ('active browser context required') and next steps ('use browser_switch_tab'). Does not list exclusions, but context is clear.

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

browser_navigateNavigate PageA
Destructive

Use when the active page must open an exact URL as part of a reproduction, redirect investigation, authentication flow, or network-timing diagnosis. Preconditions: a browser must be active and the destination must be within the authorized development or test scope. Next: inspect state or begin the action sequence; use monitor_get_summary after stopping any active trace. Sensitivity: navigation contacts an external origin and may send cookies or other browser credentials.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
waitUntilNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.6/5.0
Behavior5/5

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

Beyond annotations (destructiveHint, readOnlyHint), the description adds that navigation contacts an external origin and may send cookies/credentials, and warns about authorized scope, enhancing transparency.

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?

Three sentences, front-loaded with purpose, no fluff. Each sentence adds distinct, valuable information (purpose, preconditions/next steps, sensitivity).

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?

Given the tool's complexity (2 params, output schema exists), the description covers use cases, preconditions, sensitive behavior, and follow-up actions, making it complete for agent decision-making.

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

Parameters2/5

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

With 0% schema description coverage, the description fails to explain the parameters (url format, waitUntil enum values). It only mentions 'exact URL', leaving the agent without full parameter guidance.

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 navigates to an exact URL for specific use cases like reproduction, redirect investigation, etc., and distinguishes from sibling navigation tools (e.g., browser_go_back).

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?

Explicitly states when to use (authentication flow, network-timing diagnosis), preconditions (browser active, destination in scope), and next steps (inspect state, use monitor_get_summary).

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

browser_new_tabOpen New TabA

Use when a full-profile reproduction genuinely requires a separate page rather than the existing active tab. Preconditions: an active browser context is required and any supplied URL must be authorized. Next: inspect or trace the new active tab, then close it when finished. Sensitivity: opening a URL contacts an external origin and may send context credentials.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
waitUntilNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.6/5.0
Behavior5/5

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

The description adds significant behavioral context beyond annotations: it notes the external origin contact and credential sensitivity, and mentions the need to close the tab after use. This aligns with openWorldHint true and readOnlyHint false annotations.

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 extremely concise, using four short sentences with clear sections (use case, preconditions, next steps, sensitivity). Every sentence adds value; no redundancy.

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

Completeness4/5

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

The description covers the tool's role, preconditions, and sensitivity, but omits explanation of the 'waitUntil' parameter behavior. Since an output schema exists, return values need not be described. The gap on parameter semantics prevents a perfect score.

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?

With 0% schema description coverage, the description must compensate. It adds context for the 'url' parameter (must be authorized), but provides no explanation for the 'waitUntil' enum. This partial coverage earns a middle score.

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's purpose: opening a new tab when a separate page is needed, distinguishing it from browser_navigate which uses the existing tab. The verb 'open' and resource 'new tab' are explicit.

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 provides explicit when-to-use guidance ('when a full-profile reproduction genuinely requires a separate page'), preconditions (active browser context, authorized URL), and next steps (inspect/trace then close). It also contrasts with the sibling tool browser_navigate by implication.

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

browser_observe_action_resultObserve Action ResultA
Destructive

Use when one click, type, press, check, select, hover, scroll, reload, navigate, or authorized eval has an unclear outcome and a compact before/after diff is needed. Preconditions: an active page and acknowledgeRawCapture: true are required; eval actions also require acknowledgeDangerousEval: true. Next: use the returned DOM, state, network, and optional screenshot diff to decide whether a longer monitor_start reproduction is necessary. Sensitivity: before/after snapshots, values, screenshots, URLs, and network changes can contain sensitive raw page data.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
waitAfterMsNo
afterSnapshotNo
beforeSnapshotNo
includeScreenshotNo
acknowledgeRawCaptureNo
acknowledgeDangerousEvalNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already mark destructiveHint=true, so the destructive nature is known. The description adds a sensitivity warning about sensitive raw page data in the diff. It does not contradict annotations, but beyond that, it does not disclose additional behavioral traits such as side effects on page state or rate limits.

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 four sentences with clear front-loading of purpose and usage. Every sentence adds value: when to use, preconditions, next steps, and sensitivity. No unnecessary information.

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

Completeness3/5

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

The description covers purpose, usage, and output context (diff with DOM, state, network, screenshot). However, given the high parameter count (7 with nested objects) and lack of parameter explanations, it is not fully complete. Output schema existence reduces the need to describe return values, but parameter semantics remain a gap.

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

Parameters2/5

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

Schema description coverage is 0% for the 7 parameters (many nested). The description does not explain any parameter individually, such as the 'action' variant details or the snapshot options. This leaves the agent to infer from the schema alone, which is insufficient given the complexity.

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 starts with 'Use when one click, type, press, check, select, hover, scroll, reload, navigate, or authorized eval has an unclear outcome and a compact before/after diff is needed.' This clearly states the tool's purpose (observing action results) and distinguishes it from siblings that perform actions or take snapshots without the diff context.

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

Usage Guidelines4/5

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

The description specifies when to use (unclear outcome, need compact diff), preconditions (active page, acknowledgeRawCapture, acknowledgeDangerousEval for eval), and next steps (use returned diff to decide if longer monitoring is needed). It does not explicitly list when not to use or name alternative tools, but the context is clear.

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

browser_optimize_selectorOptimize SelectorA
Read-onlyIdempotent

Use when a full-profile workflow needs a shorter unique selector for a target that is already known. Preconditions: an active page, acknowledgeRawCapture: true, and a selector matching the intended element are required. Next: verify the returned selector with browser_get_elements before relying on it in automation. Sensitivity: candidate analysis reads DOM attributes and text that may be sensitive.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
roleNo
selectorYes
targetIndexNo
textContainsNo
candidateLimitNo
includeRejectedNo
acknowledgeRawCaptureNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds a useful sensitivity warning: 'candidate analysis reads DOM attributes and text that may be sensitive.' This provides behavioral context beyond the annotations, earning a score above baseline.

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 extremely concise: three sentences covering purpose, preconditions, next step, and sensitivity. Every sentence adds value with no redundancy or filler.

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

Completeness3/5

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

While the description provides high-level context and a sensitivity warning, it omits details about the output (which is partially covered by an output schema) and the many parameters. For a tool with 8 parameters and no parameter descriptions, more guidance on how to construct a good request would improve completeness.

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

Parameters2/5

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

Schema description coverage is 0%, yet the description only mentions two parameters (selector and acknowledgeRawCapture) without explaining their semantics or usage. Six other parameters remain entirely undocumented. The description fails to compensate for the low schema coverage.

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's purpose: to optimize a selector to be shorter and unique for a known target. The verb 'optimize' and resource 'selector' are specific, and no sibling tool performs this function, so it is well-differentiated.

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

Usage Guidelines4/5

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

The description provides clear usage context: 'Use when a full-profile workflow needs a shorter unique selector.' It lists preconditions (active page, acknowledgeRawCapture true, valid selector) and a next step (verify with browser_get_elements). However, it does not explicitly state when not to use or mention alternatives, which would be helpful.

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

browser_poll_untilPoll Until Page Conditions MatchA
Read-onlyIdempotent

Use when asynchronous DOM, URL, element value, or authentication signals must be sampled until one or all conditions match. Preconditions: an active page and acknowledgeRawCapture: true are required; use bounded timeout and interval values. Next: use the matched snapshot to continue the flow or explain the timing boundary. Sensitivity: poll snapshots can repeatedly capture raw text, values, URLs, authentication signals, and element metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
matchNo
snapshotNo
timeoutMsNo
conditionsYes
intervalMsNo
acknowledgeRawCaptureNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A3.9/5.0
Behavior4/5

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

Beyond annotations (readOnly, idempotent, non-destructive), the description adds sensitivity about repeated raw capture of text, values, etc. No contradiction with annotations.

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 three sentences, front-loaded with purpose, preconditions, next step, and sensitivity. No wasted words, each sentence adds value.

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

Completeness2/5

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

Given the tool's complexity (6 parameters, nested objects, condition variants) and 0% schema coverage, the description lacks details on match modes, snapshot fields, and condition syntax. An output schema exists but is not shown; description needs to compensate more.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions timeout, interval, and acknowledgeRawCapture but does not explain match, snapshot sub-properties, or condition details. The high-level hints are insufficient for a complex input schema.

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's purpose: polling until conditions match for asynchronous DOM, URL, element value, or auth signals. It uses specific verbs and resources, distinguishing it from sibling tools like browser_snapshot (single snapshot) or browser_wait (fixed wait).

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

Usage Guidelines4/5

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

The description explicitly says when to use it ('use when asynchronous...'), lists preconditions (active page, acknowledgeRawCapture: true, bounded timeout/interval), and suggests next steps. It lacks explicit when-not-to-use but provides sufficient context.

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

browser_pressPress Keyboard KeyA
Destructive

Use when a keyboard action such as Enter, Escape, Tab, or a shortcut is part of the browser reproduction. Preconditions: an active page is required and the optional selector must identify the intended focus target. Next: continue the sequence or inspect any resulting navigation, dialog, DOM, or network activity. Sensitivity: key presses can submit data, trigger shortcuts, navigate, or mutate remote state.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes
delayMsNo
selectorNo
timeoutMsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.1/5.0
Behavior4/5

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

The description adds crucial context beyond annotations by stating 'key presses can submit data, trigger shortcuts, navigate, or mutate remote state,' aligning with destructiveHint: true and readOnlyHint: false. It does not contradict any annotations.

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?

Three sentences, each serving a distinct purpose: when to use, preconditions and next steps, and sensitivity. No redundant or irrelevant information.

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

Completeness4/5

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

The description covers purpose, preconditions, side effects, and follow-up actions. An output schema exists (not shown), so return value explanation is not required. However, it lacks detail on all four parameters, particularly delayMs and timeoutMs, leaving some gaps for an agent.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'key' implicitly via examples (Enter, Escape, Tab) and 'selector' as optional, but does not explain delayMs or timeoutMs, leaving their purpose ambiguous. More parameter detail is needed.

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 'Use when a keyboard action such as Enter, Escape, Tab, or a shortcut is part of the browser reproduction,' specifying both the verb and resource. It distinguishes from siblings like browser_click (mouse clicks) and browser_type (text input).

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

Usage Guidelines4/5

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

It provides explicit preconditions ('an active page is required and the optional selector must identify the intended focus target') and suggests subsequent actions ('continue the sequence or inspect any resulting navigation, dialog, DOM, or network activity'). While it doesn't explicitly list exclusions or alternatives, the context implies when to use this tool vs. browser_type for typing.

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

browser_reloadReload PageA
Destructive

Use when a reload is necessary to reproduce initialization races, cached-versus-fresh behavior, redirects, or intermittent requests. Preconditions: an active page is required; start monitor_start first when the whole reload sequence matters. Next: inspect the resulting state or stop the trace and read its summary. Sensitivity: reload can repeat writes or requests performed by the page and may transmit active credentials.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutMsNo
waitUntilNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4/5.0
Behavior5/5

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

Beyond annotations (destructiveHint=true, readOnlyHint=false), the description adds critical context: reload can repeat writes/requests and may transmit active credentials. This explains the destructive nature and security implications, going well beyond what annotations provide.

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?

Three sentences, each serving a clear purpose: usage scenarios, preconditions/next steps, and sensitivity. Front-loaded with the most critical information. No redundant or wasted words.

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

Completeness3/5

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

The description covers usage context, preconditions, next steps, and behavior. However, it omits parameter semantics entirely, which is a significant completeness gap given the tool's moderate complexity and the presence of an output schema.

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

Parameters1/5

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

Schema description coverage is 0%, meaning the schema provides no parameter descriptions. The tool description does not mention or explain the two parameters (timeoutMs, waitUntil), leaving the agent without crucial semantic information for correct invocation.

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 specific use cases for reload: reproducing initialization races, cached-versus-fresh behavior, redirects, or intermittent requests. This distinguishes it from sibling navigation tools like browser_navigate, browser_go_back, etc., which serve general navigation.

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

Usage Guidelines4/5

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

The description gives explicit preconditions (active page required, start monitor_start first) and hints at next steps (inspect state or read trace summary). It lacks explicit directions on when NOT to use the tool, but the listed scenarios provide clear context for appropriate use.

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

browser_screenshotCapture ScreenshotA

Use when visual evidence is necessary to understand layout, overlays, rendering, or the result of a browser interaction. Preconditions: an active page and acknowledgeRawCapture: true are required; select a region when the full page is unnecessary. Next: use the saved PNG as supporting evidence and continue with targeted DOM or trace inspection. Sensitivity: screenshots may capture personal data, secrets, account state, or other sensitive pixels and are written locally.

ParametersJSON Schema
NameRequiredDescriptionDefault
fullPageNo
selectorNo
outputPathNo
acknowledgeRawCaptureNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations provide minimal behavioral info (readOnlyHint=false, openWorldHint=true). The description adds critical context: screenshots may capture sensitive data and are written locally. It also hints at region selection behavior. This is good but could mention if it waits for network idle or page load.

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

Conciseness4/5

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

The description is two sentences, front-loading the use case and preconditions. Every sentence adds value. However, it could be structured into bullet points for clarity, but conciseness is not sacrificed.

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

Completeness3/5

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

Given the tool's moderate complexity (4 parameters, no required ones, output schema exists), the description covers usage and sensitivity but misses parameter details. The output schema relieves some burden for return values, but the parameter ambiguity lowers completeness.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain parameters. It mentions acknowledgeRawCapture as a precondition and region selection, but does not define parameters like 'selector' (CSS selector? Coordinates?), 'outputPath' (path format?), or 'fullPage' (true/false behavior). This lack of detail impedes correct invocation.

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 purpose: capturing visual evidence for layout, overlays, rendering, or interaction results. It distinguishes from siblings like browser_snapshot and browser_screenshot_annotated by emphasizing visual evidence for layout analysis.

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 provides explicit preconditions (active page, acknowledgeRawCapture: true), guidance on when to select a region vs full page, and suggests next steps (targeted DOM or trace inspection). It also notes sensitivity, giving an exclusionary condition for alternative tools.

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

browser_screenshot_annotatedCapture Annotated ScreenshotA

Use when a full-profile visual diagnosis needs temporary selector or coordinate annotations over the page. Preconditions: an active page and acknowledgeRawCapture: true are required; annotations must identify authorized content. Next: inspect the saved PNG and use normal DOM tools for machine-readable details. Sensitivity: the image and labels may expose sensitive page content and are written locally.

ParametersJSON Schema
NameRequiredDescriptionDefault
boxesNo
fullPageNo
selectorNo
selectorsNo
outputPathNo
acknowledgeRawCaptureNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations show `readOnlyHint=false`, consistent with writing locally. The description adds sensitivity warnings and local writing behavior, beyond annotations. No contradictions.

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

Conciseness3/5

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

The description is moderately concise but uses verbose phrases like 'full-profile visual diagnosis'. It front-loads the use case but could be tighter.

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

Completeness2/5

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

Despite the output schema existing, the description lacks parameter details, leaving the agent uncertain how to construct valid inputs. Preconditions are stated but incomplete.

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

Parameters2/5

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

With 0% schema coverage, the description does not explain the purpose or usage of most parameters (e.g., `boxes`, `selector`, `fullPage`). It only mentions `acknowledgeRawCapture` as required, contradicting the optional schema.

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 captures annotated screenshots for visual diagnosis, distinguishing it from the unannotated sibling `browser_screenshot`. The verb 'capture' and resource 'annotated screenshot' are specific.

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

Usage Guidelines4/5

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

The description provides explicit preconditions (active page, `acknowledgeRawCapture: true`) and next steps. It implies the use case (full-profile visual diagnosis) but does not explicitly state when to avoid this tool in favor of alternatives.

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

browser_scrollScroll Page or ElementA

Use when lazy loading, infinite scroll, sticky layout, viewport-dependent behavior, or an off-screen target must be reproduced. Preconditions: an active page is required; provide a selector only when a specific scroll region matters. Next: wait for resulting activity or inspect DOM and network changes. Sensitivity: scroll listeners can trigger external requests, analytics, and dynamic content loading.

ParametersJSON Schema
NameRequiredDescriptionDefault
deltaXNo
deltaYNo
selectorNo
timeoutMsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4/5.0
Behavior4/5

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

The description goes beyond annotations by stating scroll listeners can trigger external requests, analytics, and dynamic content loading. This adds valuable context about side effects, which is not covered by the annotations (readOnlyHint=false, destructiveHint=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 three concise sentences, each earning its place: purpose and use cases, preconditions and next steps, and sensitivity. Front-loaded with key information, no wasted words.

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

Completeness3/5

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

The description covers purpose, use cases, and behavioral traits adequately but lacks parameter details. Given the tool has 4 parameters and no schema descriptions, the description is incomplete for proper parameter usage.

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

Parameters2/5

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

With 0% schema description coverage, the description should explain parameters but only mentions selector in passing. It does not define deltaX, deltaY, or timeoutMs, leaving meaning ambiguous. Some compensation for selector, but insufficient overall.

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 scrolls a page or element, and lists specific use cases like lazy loading, infinite scroll, sticky layout, viewport-dependent behavior, and off-screen targets. It distinguishes from sibling tools like clicks and hovers.

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

Usage Guidelines4/5

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

The description explains when to use (e.g., lazy loading, infinite scroll) and provides preconditions (active page required, selector only for specific regions) and next steps (wait for activity or inspect changes). However, it does not explicitly mention when not to use or directly contrast with alternative tools.

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

browser_select_optionSelect OptionA
Destructive

Use when one or more values must be selected in a native select control during a reproduction. Preconditions: an active page, precise selector, and intended value, label, or index are required. Next: continue the flow or inspect dependent DOM and network activity. Sensitivity: selection can submit forms, alter application state, or expose chosen values in traces.

ParametersJSON Schema
NameRequiredDescriptionDefault
valuesYes
selectorYes
timeoutMsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations indicate destructiveHint=true, and the description reinforces this by warning that selection can submit forms or alter state. It goes beyond annotations by mentioning potential side effects (form submission, exposing values in traces) and suggesting next steps (inspect DOM/network). No contradiction with annotations.

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

Conciseness4/5

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

The description is concise (three sentences) and front-loaded with purpose and preconditions. The sensitivity note is useful but slightly dense. Could be improved by breaking preconditions into a list for readability.

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

Completeness2/5

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

Given 0% schema coverage, the description should provide more detail about parameters and expected outputs. While it notes next steps, it omits return format, error cases, and detailed parameter behavior. For a tool with 3 parameters and potential side effects, this is insufficient.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate, but it only hints at parameters ('intended value, label, or index') without explaining the complex schema for the 'values' parameter or describing 'selector' and 'timeoutMs'. The agent lacks guidance on how to structure input for multi-select or specifying options by index/label/value.

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's purpose: selecting one or more values in a native select control. It uses a specific verb ('select') and resource ('native select control'), and distinguishes itself from sibling tools like browser_click or browser_type.

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

Usage Guidelines3/5

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

The description mentions preconditions (active page, precise selector, value/label/index), which implies when it should be used. However, it does not explicitly contrast with alternatives or state when not to use this tool. The 'Sensitivity' warning adds context but does not guide choice between tools.

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

browser_set_cookiesSet Browser CookiesA
Destructive

Use when a full-profile authorized test explicitly requires establishing or changing cookie state. Preconditions: acknowledgeRawCapture: true and acknowledgeCredentialAccess: true are required; use only intended test credentials. Next: verify the resulting flow without exposing cookie values and clear temporary state when appropriate. Sensitivity: this modifies credential state and raw cookie values are secrets.

ParametersJSON Schema
NameRequiredDescriptionDefault
cookiesYes
acknowledgeRawCaptureNo
acknowledgeCredentialAccessNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations indicate readOnly false, destructive true, and open world. The description adds context about credential handling and secrecy, enhancing transparency without contradicting annotations.

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

Conciseness4/5

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

The description is concise with no unnecessary words, front-loaded with purpose. It could be slightly more structured but is effective.

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

Completeness3/5

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

Given moderate complexity and an output schema, the description covers preconditions and sensitivity but lacks details on behavior like overriding cookies or return values, leaving gaps.

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

Parameters2/5

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

Schema description coverage is 0%, but the description does not detail the cookies array or its properties. It mentions the acknowledge flags as preconditions, which adds some meaning, but fails to fully compensate for the lack of schema descriptions.

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

Purpose4/5

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

The description clearly states the tool establishes or changes cookie state, aligning with its name and title. However, it does not explicitly distinguish from sibling tools like browser_import_storage_state that may also set cookies.

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

Usage Guidelines4/5

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

The description explicitly says when to use this tool ('full-profile authorized test requiring establishing or changing cookie state') and lists required preconditions. It does not mention alternatives, though the context is clear.

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

browser_set_geolocationSet Browser GeolocationA
Destructive

Use when a full-profile authorized test explicitly depends on a controlled latitude, longitude, and accuracy. Preconditions: acknowledgeLocationAccess: true is required and only intended coordinates may be supplied. Next: reload or exercise the location-dependent behavior. Sensitivity: the coordinates are exposed to authorized pages that have geolocation permission.

ParametersJSON Schema
NameRequiredDescriptionDefault
accuracyNo
latitudeYes
longitudeYes
acknowledgeLocationAccessNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.6/5.0
Behavior5/5

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

The description adds significant behavioral context beyond annotations: it warns that coordinates are exposed to authorized pages (sensitivity), specifies that only intended coordinates should be supplied, and outlines preconditions and next steps. This complements the destructiveHint and openWorldHint annotations without contradiction.

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 extremely concise: four sentences, each serving a distinct purpose (purpose, precondition, next step, sensitivity). It is front-loaded with the primary purpose and requires no editing.

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

Completeness4/5

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

Given the tool's complexity (4 parameters, output schema exists), the description covers the essential aspects: when to use, preconditions, post-conditions, and a security warning. It does not explain error handling or alternative approaches, but the provided information is sufficient for correct invocation.

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

Parameters4/5

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

With 0% schema description coverage, the description compensates by explaining the role of latitude, longitude, and accuracy as 'controlled' values, and specifically notes that acknowledgeLocationAccess must be true. It does not detail each parameter's format (schema handles that), but adds meaning by connecting parameters to the use case and precondition.

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's purpose: setting browser geolocation for authorized tests. It uses specific verbs ('set'), resource ('geolocation'), and context ('full-profile authorized test'), distinguishing it from sibling tools that handle navigation, permissions, or other browser actions.

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

Usage Guidelines4/5

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

The description explicitly states when to use the tool (when a test depends on controlled geolocation) and provides preconditions (acknowledgeLocationAccess: true) and next steps (reload or exercise behavior). It does not explicitly mention when not to use or alternative tools, but the guidance is clear and actionable.

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

browser_set_storageSet Web StorageA
Destructive

Use when a full-profile authorized test explicitly needs controlled localStorage or sessionStorage values. Preconditions: acknowledgeRawCapture: true and acknowledgeCredentialAccess: true are required; target the intended origin and keys. Next: reload or navigate as needed to observe the application's reaction. Sensitivity: this changes potentially credential-bearing application state.

ParametersJSON Schema
NameRequiredDescriptionDefault
originNo
localStorageNo
sessionStorageNo
acknowledgeRawCaptureNo
acknowledgeCredentialAccessNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations indicate destructiveHint=true and readOnlyHint=false. The description confirms this by stating 'this changes potentially credential-bearing application state' and requiring acknowledge flags. No contradiction, and it adds context about credential sensitivity beyond annotations.

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

Conciseness3/5

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

The description is four sentences, somewhat concise, but the first sentence is long and could be broken for readability. It avoids waste but lacks structured presentation of preconditions and steps.

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

Completeness3/5

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

With destructive behavior and output schema present (not shown), the description covers preconditions and sensitivity but fails to detail parameter usage. It is complete for high-level context but lacks parameter guidance given 0% schema coverage.

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

Parameters2/5

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

Schema coverage is 0%, so description must compensate. It only mentions acknowledgeRawCapture and acknowledgeCredentialAccess as prerequisites, but does not explain origin, localStorage, or sessionStorage parameter semantics. This is insufficient for correct usage.

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 title 'Set Web Storage' and description explicitly state the tool sets localStorage/sessionStorage values. It clearly distinguishes from siblings like browser_set_cookies and browser_get_storage by specifying controlled web storage manipulation.

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

Usage Guidelines4/5

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

The description specifies when to use: 'full-profile authorized test explicitly needs controlled localStorage or sessionStorage values'. It provides preconditions (acknowledge flags) and next steps (reload/navigate). While it doesn't explicitly exclude other scenarios, the context is clear.

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

browser_set_viewportSet Browser ViewportA

Use when a full-profile reproduction explicitly depends on responsive breakpoints or viewport dimensions. Preconditions: an active page and intended positive width and height are required. Next: reload or inspect the affected layout and events. Sensitivity: viewport changes can trigger application reflow, lazy loading, analytics, and network requests.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthYes
heightYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A3.5/5.0
Behavior4/5

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

Beyond annotations, description warns of side effects like reflow, lazy loading, analytics, and network requests. This adds valuable transparency not captured by annotations.

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

Conciseness4/5

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

Three sentences cover use case, preconditions, and side effects efficiently. Could be more direct but no wasted content.

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

Completeness4/5

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

Given presence of output schema and annotations, description provides sufficient context for its two-parameter tool: when to use, preconditions, and behavioral impact.

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

Parameters2/5

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

With 0% schema description coverage, description only says 'positive width and height', not explaining units or semantics (e.g., pixels). Minimal added value beyond the schema's constraints.

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

Purpose4/5

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

The description states the tool is for setting viewport dimensions when responsive breakpoints matter, which is clear and distinguishes from navigation or screenshot tools. However, it could be more direct like 'Sets browser viewport width and height.'

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

Usage Guidelines3/5

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

Provides context for when to use ('full-profile reproduction depending on responsive breakpoints') and preconditions, but lacks explicit when-not-to-use or alternatives among sibling tools.

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

browser_snapshotSnapshot PageA
Read-onlyIdempotent

Use when a compact combined view of page state, text, inputs, links, and interactive elements is more useful than separate inspection calls. Preconditions: an active page and acknowledgeRawCapture: true are required. Next: select a target for browser_observe_action_result or compare with a later snapshot. Sensitivity: snapshots may include DOM text, visible input values, links, and externalized raw artifacts.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorNo
includeLinksNo
maxTextBytesNo
elementsLimitNo
includeInputsNo
acknowledgeRawCaptureNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A3.9/5.0
Behavior4/5

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

The description adds behavioral context beyond annotations, such as mentioning that snapshots include DOM text, input values, links, and raw artifacts. This informs the agent of data sensitivity and scope.

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 concise (4 sentences), front-loaded with purpose, and contains no fluff. Every sentence adds value.

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

Completeness2/5

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

Despite having an output schema, the description fails to cover parameter semantics, which is critical for a tool with 6 undocumented parameters. The description is incomplete for effective tool invocation.

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

Parameters2/5

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

Schema coverage is 0%, and the description does not explain any of the 6 parameters (selector, includeLinks, maxTextBytes, etc.). The description only broadly mentions what is captured, leaving agents without detailed guidance on parameter usage.

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's purpose: providing a compact combined view of page state, text, inputs, links, and interactive elements. It distinguishes itself from separate inspection calls, which are sibling tools.

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

Usage Guidelines4/5

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

The description gives specific preconditions (active page, acknowledgeRawCapture: true) and suggests next steps (select target for observe_action_result or compare with later snapshot). It does not explicitly state when not to use, but the context is clear enough.

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

browser_switch_tabSwitch Browser TabA

Use when a full-profile workflow must make a previously discovered page the active target. Preconditions: obtain a valid page ID from browser_list_tabs or browser_attach_cdp. Next: confirm selection with browser_get_state before acting. Sensitivity: the selected tab may contain private content or an authenticated session.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.7/5.0
Behavior4/5

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

Annotations indicate mutability (readOnlyHint=false) but no destructive effects. The description adds value by warning about private/authenticated sessions, which annotations do not cover. However, it does not explicitly state that the tool changes the active tab and preserves previous tab state, which would further improve transparency.

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?

Three concise, front-loaded sentences. First sentence states purpose, second gives preconditions/next steps, third handles sensitivity. No wasted words; every sentence earns its place.

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?

Given the tool's simplicity (one parameter, no nested objects), the description covers purpose, preconditions, post-actions, and sensitivity. Output schema exists (not shown) but description does not need to explain it. Complete for an AI agent to correctly invoke.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate. It explains that pageId must be obtained from browser_list_tabs or browser_attach_cdp, providing essential context. While it does not detail format, the source guidance sufficiently compensates for the lack of schema descriptions.

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 verb ('make a previously discovered page the active target'), specifies the resource (browser tab), and distinguishes from siblings like browser_new_tab and browser_close_tab by requiring a pre-obtained page ID and recommending a follow-up confirmation with browser_get_state.

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?

Explicitly says 'Use when a full-profile workflow must make a previously discovered page the active target', provides preconditions (obtain page ID from specific tools), and advises confirming selection afterward. Also includes a sensitivity warning about private/authenticated content, giving clear when-to-use and precautions.

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

browser_typeType Into ElementB
Destructive

Use when text must be entered into a known input during a reproduction. Preconditions: an active page and precise selector are required; use only data intended for the authorized target. Next: continue with the next action or observe the resulting request and DOM changes. Sensitivity: typed values may be captured in DOM, console, network, screenshots, or trace artifacts.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
delayMsNo
selectorYes
timeoutMsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations indicate destructive and non-read-only behavior. The description adds value by noting that typed values may be captured in DOM, console, network, screenshots, or trace artifacts, which is beyond what annotations provide. It does not contradict annotations.

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

Conciseness4/5

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

The description is three sentences with good front-loading of purpose. It is concise but could be slightly tighter, e.g., combining the sensitivity note with behavioral transparency. Overall, no unnecessary words.

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

Completeness3/5

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

Given 0% schema coverage and moderate complexity, the description provides preconditions, next steps, and side effects. However, it omits details like whether the input is cleared before typing or parameter constraints (e.g., delayMs range is useful but not explained). Output schema exists but is not referenced.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions the requirement for a 'precise selector' and using 'data intended for the authorized target,' but does not explain delayMs or timeoutMs. The meaning of parameters is mostly inferred from names, with little added value.

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

Purpose4/5

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

The description clearly states the tool types text into an input element during a reproduction. It includes preconditions like 'active page and precise selector' which help clarify the resource. However, it does not explicitly distinguish from siblings like browser_press or browser_fill_form, which might also involve text input.

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

Usage Guidelines3/5

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

The description indicates when to use the tool ('when text must be entered... during a reproduction') and mentions preconditions. However, it lacks explicit guidance on when not to use it or alternatives, such as using browser_press for keystrokes or browser_fill_form for form filling.

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

browser_upload_fileUpload Local FileA
Destructive

Use when a full-profile authorized test explicitly requires providing local files to a page file input. Preconditions: acknowledgeFileAccess: true, an exact selector, and intended local paths are required. Next: continue the upload flow and verify the resulting request or UI state. Sensitivity: this sends local file contents to the target site and can expose private data.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYes
selectorYes
timeoutMsNo
acknowledgeFileAccessNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.2/5.0
Behavior4/5

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

The annotations already indicate destructiveHint=true, meaning the tool can modify state. The description adds critical behavioral context by warning that it 'sends local file contents to the target site and can expose private data.' This goes beyond the annotations by highlighting security implications. No contradiction with annotations.

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 three sentences long, with the most critical information (usage condition) in the first sentence. It efficiently communicates preconditions, next steps, and a security warning without redundancy. Every sentence adds value.

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

Completeness4/5

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

Given the tool's destructive nature and 4 parameters, the description covers purpose, preconditions, next steps, and sensitivity. It omits details about the return value (though an output schema exists) and the timeout parameter. Still, it provides sufficient context for an agent to use the tool correctly in most scenarios.

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 input schema has 0% description coverage, so the description must compensate. It mentions the key parameters: 'acknowledgeFileAccess: true, an exact selector, and intended local paths' – which covers the required ones and the boolean flag. However, it does not explain the 'timeoutMs' parameter or provide details on the selector format. This is adequate but not exhaustive.

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's purpose: uploading local files to a page file input. It uses a specific verb ('upload') and resource ('local files'), and it distinguishes itself from sibling browser tools (e.g., browser_type, browser_click) by being the only one dedicated to file uploads. The context 'full-profile authorized test' adds precision.

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

Usage Guidelines4/5

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

The description explicitly states when to use the tool ('when a full-profile authorized test explicitly requires providing local files to a page file input') and provides preconditions (acknowledgeFileAccess: true, exact selector, intended local paths). It also suggests next steps ('continue the upload flow and verify'). However, it does not explicitly exclude cases where other tools might be better suited, but given its unique function, this is sufficient.

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

browser_waitWait for Browser ConditionA
Read-onlyIdempotent

Use when the reproduction needs an explicit selector, URL, quiet-period, or bounded timeout wait instead of an arbitrary sleep. Preconditions: an active page is required and mode-specific selector or pattern inputs should be narrow. Next: perform the next action immediately after the expected condition is reached. Sensitivity: waiting observes live page and network state but does not itself redact any subsequently captured data.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
delayMsNo
patternNo
quietMsNo
selectorNo
timeoutMsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive. Description adds that waiting observes live page/network but does not redact captured data, providing extra behavioral context beyond annotations.

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?

Extremely concise: two sentences plus preconditions and next steps. Every sentence adds value, no filler. Information is front-loaded and well-organized.

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

Completeness4/5

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

Given complexity (6 params, 1 enum) and existing annotations + output schema, description covers when, preconditions, next steps, and behavioral note. Lacks only some edge-case or error details, but overall sufficient.

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

Parameters2/5

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

Schema description coverage is 0%. Description only mentions modes (selector, URL, quiet-period, timeout) and hints at narrow inputs. Does not explain parameters like delayMs, pattern, quietMs, timeoutMs, or their significance.

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?

Description clearly states the tool is for waiting for explicit browser conditions (selector, URL, quiet-period, timeout) instead of arbitrary sleep. Verb+resource is specific and distinguishes from other browser tools.

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

Usage Guidelines4/5

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

Provides clear preconditions (active page required, narrow inputs) and next steps (perform action after condition). Implicitly contrasts with arbitrary sleep, but does not explicitly list alternative tools or conditions to avoid.

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

browser_wait_for_downloadWait for DownloadA
Destructive

Use when a browser action should create a download and the saved file, filename, or timing must be verified. Preconditions: an active page is required; when triggerSelector is used it must identify the authorized download action, and raw capture requires acknowledgement. Next: inspect browser_get_downloads or the saved file through an appropriate local-file workflow. Sensitivity: downloaded files may contain sensitive application data and the optional trigger can cause external effects.

ParametersJSON Schema
NameRequiredDescriptionDefault
outputDirNo
timeoutMsNo
triggerSelectorNo
suggestedFilenameNo
acknowledgeRawCaptureNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true and openWorldHint=true. Description adds context: downloaded files may contain sensitive data, and trigger can cause external effects. Does not contradict annotations.

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?

Three sentences, each meaningful, front-loaded with purpose. No redundant information.

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

Completeness4/5

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

Covers preconditions, next steps, sensitivity, and external effects. Output schema likely documents return values. Adequate for a download-waiting tool given the available structured data.

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

Parameters2/5

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

Schema description coverage is 0%. Description only vaguely references triggerSelector and acknowledgeRawCapture, leaving 5 parameters largely unexplained. Insufficient for parameter understanding.

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?

Explicitly states purpose: waiting for a download triggered by a browser action to verify file, filename, or timing. Clearly distinguishes from sibling tools like browser_wait_for_response.

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?

Provides clear when-use guidance, preconditions (active page, authorized triggerSelector, acknowledgement for raw capture), and next steps (inspect browser_get_downloads or local-file workflow). Implicitly tells when not to use.

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

browser_wait_for_responseWait for Network ResponseA
Read-onlyIdempotent

Use when an action is expected to produce a response and timing or endpoint matching is the central question. Preconditions: start this wait before triggering the relevant action and provide narrow URL, method, or status filters. Next: correlate the matched response with the action or use the body variant only when content matters. Sensitivity: response metadata can expose private URLs, headers, status details, and timing information.

ParametersJSON Schema
NameRequiredDescriptionDefault
methodNo
statusNo
urlRegexNo
timeoutMsNo
urlContainsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already indicate readOnly, idempotent, non-destructive. The description adds valuable context about sensitivity (exposure of private URLs, headers, timing), which alerts to potential data exposure beyond what annotations convey. No contradiction with annotations.

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

Conciseness4/5

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

Four sentences with clear sections: purpose, preconditions, next step, sensitivity. No redundancy. Could be slightly more concise by merging sentences, but overall well-structured and front-loaded.

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

Completeness3/5

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

Given 5 params with no schema descriptions, the description should cover parameter specifics but doesn't. It covers usage context, preconditions, and sensitivity. With an output schema present, the return structure is likely explained elsewhere. Adequate but missing parameter details needed for correct invocation.

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

Parameters2/5

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

Schema has 5 params with 0% description coverage. The description only generically mentions 'narrow URL, method, or status filters' without detailing any parameter's meaning or usage. It fails to clarify urlRegex vs urlContains, timeoutMs, or method options. The description does not compensate for the missing schema descriptions.

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

Purpose4/5

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

The description clearly states the tool waits for a network response matching criteria. It distinguishes from sibling 'browser_wait_for_response_body' by mentioning 'use the body variant only when content matters', indicating this one focuses on metadata. However, it lacks a succinct verb+resource phrasing like 'wait for network response matching filters'.

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

Usage Guidelines4/5

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

Explicit preconditions are given (start wait before triggering action, provide narrow filters) and a next step (correlate response). It hints at sibling alternative ('use the body variant'). Could be more explicit about when not to use this tool, but the guidance is clear and actionable.

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

browser_wait_for_response_bodyWait for Response BodyA
Read-onlyIdempotent

Use when an action is expected to produce one response whose raw or parsed body is directly required for an API, authentication, redirect, or payload diagnosis. Preconditions: start the wait before the action, use narrow filters, and pass acknowledgeRawCapture: true on an authorized system. Next: extract only the needed fields and prefer trace search for multi-request investigations. Sensitivity: response bodies may contain credentials, personal data, application secrets, or large binary content.

ParametersJSON Schema
NameRequiredDescriptionDefault
methodNo
statusNo
maxBytesNo
urlRegexNo
parseJsonNo
timeoutMsNo
urlContainsNo
acknowledgeRawCaptureNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.3/5.0
Behavior5/5

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

Disclosures sensitivity of response bodies (credentials, personal data, secrets, binary content) beyond annotations, which already mark it as read-only, open-world, idempotent, and non-destructive. No contradiction with annotations.

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

Conciseness4/5

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

Description is concise and front-loaded with purpose, but slightly dense with multiple pieces of advice. Every sentence adds value, though a more structured format could improve readability.

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

Completeness3/5

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

Covers usage and sensitivity well but lacks parameter documentation for 8 parameters with 0% schema coverage. Output schema exists but not described, leaving some gaps for full contextual understanding.

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

Parameters2/5

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

Schema coverage is 0%, and the description only mentions 'narrow filters' and 'acknowledgeRawCapture' without explaining other parameters (method, status, urlRegex, etc.). This leaves agents with insufficient guidance for correct parameter usage.

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 captures a single response body for API, authentication, redirect, or payload diagnosis. It distinguishes from sibling tools by specifying 'one response' and referencing trace search for multi-request investigations.

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?

Provides explicit preconditions (start wait before action, use narrow filters, pass acknowledgeRawCapture on authorized system) and guidance to prefer trace search for multi-request investigations, offering clear when-to-use and when-not-to-use directions.

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

monitor_exportExport Trace BundleA

Use when an authorized handoff or offline analysis explicitly requires a portable ZIP of a completed trace. Preconditions: a trace session must exist and the destination must be a protected local path. Next: share the bundle only through an approved sensitive-data channel and remove it when no longer needed. Sensitivity: the ZIP can contain every captured secret, body, cookie, DOM value, screenshot, and WebSocket frame.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNo
sessionIdNo
outputPathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.1/5.0
Behavior5/5

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

Annotations (readOnlyHint=false, destructiveHint=false) indicate it's a write operation but not destructive. The description adds critical context: the ZIP can contain all captured secrets, bodies, cookies, DOM, screenshots, and WebSocket frames, plus requires a protected destination. This goes well beyond annotations and warns of high sensitivity.

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

Conciseness4/5

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

The description is four sentences and front-loads purpose. It is concise but could be better structured (e.g., bullet points for preconditions). Still, every sentence adds value.

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

Completeness3/5

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

Given the presence of an output schema (return values not needed), the description adequately covers purpose, preconditions, sensitivity, and post-export actions. However, with 0% schema parameter coverage, the omission of sessionId leaves a completeness gap for a tool with 3 parameters.

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

Parameters2/5

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

Schema coverage is 0% (no descriptions in schema). The description mentions 'ZIP' (matching format) and 'protected local path' (related to outputPath) but does not explain sessionId or parameter details. With 3 undocumented parameters, the description should provide more guidance.

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 exports a ZIP of a completed trace for authorized handoff or offline analysis. It uses specific verb ('export'), resource ('trace bundle'), and format ('ZIP'), distinguishing it from sibling monitor tools that start/stop recording or list sessions.

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

Usage Guidelines4/5

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

The description specifies when to use ('authorized handoff or offline analysis'), preconditions (trace session must exist, protected local path), and next steps (share via approved channel, remove after use). It lacks explicit alternatives but the context is clear enough for an agent to decide.

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

monitor_get_manifestGet Trace ManifestA
Read-onlyIdempotent

Use when a full-profile workflow needs exact capture configuration, file inventory, schema, timing, or session metadata. Preconditions: a completed or active trace session must exist. Next: prefer monitor_get_summary for diagnosis and use manifest paths only to target later reads. Sensitivity: the manifest can expose local paths, target URLs, capture options, and trace metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds valuable context about data sensitivity ('can expose local paths, target URLs, capture options, and trace metadata'), which goes beyond annotations. No contradictions; could mention that the tool returns a manifest file.

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?

Three concise sentences, front-loaded with purpose, followed by preconditions, usage guidance, and sensitivity note. No wasted words; every sentence adds value. Structure is logical and scannable.

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

Completeness4/5

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

The description covers purpose, preconditions, post-invocation workflow, and data sensitivity. Output schema exists (not shown here) so return details are not needed. The main gap is parameter description, but overall it provides sufficient context for a low-complexity tool with good annotations.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. While it implies the sessionId parameter must correspond to an existing trace session ('Preconditions: a completed or active trace session must exist'), it does not explicitly name or describe the parameter, its format, or how to obtain a valid session ID. This is insufficient for a single-parameter tool.

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 retrieves a trace manifest containing exact capture configuration, file inventory, schema, timing, and session metadata. It uses a specific verb ('get') and resource ('manifest'), and distinguishes from sibling tools like monitor_get_summary and monitor_read_artifact.

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 provides explicit when-to-use guidance ('Use when a full-profile workflow needs exact capture configuration...'), preconditions ('a completed or active trace session must exist'), and next-step recommendations ('prefer monitor_get_summary for diagnosis and use manifest paths only to target later reads'). This fully covers usage context and alternatives.

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

monitor_get_summarySummarize TraceA
Read-onlyIdempotent

Use when a stopped multi-step trace needs the first compact AI-readable explanation of actions, DOM changes, requests, responses, WebSockets, console, and frames. Preconditions: complete the reproduction and call monitor_stop first whenever possible. Next: use monitor_search_events or monitor_search_bodies only for questions the summary does not answer. Sensitivity: summaries minimize volume but may still include sensitive URLs, text, values, and event details.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds context that summaries minimize volume but may include sensitive details, and that this is the first explanation step. This augments the behavioral profile without contradicting annotations.

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 three sentences, each earning its place: use case, preconditions/next steps, and sensitivity note. It is front-loaded and concise with no wasted words.

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

Completeness4/5

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

The tool has one parameter and many siblings. The description covers preconditions, next steps, and sensitivity. It does not explain the output format, but an output schema exists. Given the complexity, it is reasonably complete.

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

Parameters2/5

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

Schema description coverage is 0% and the description does not explain the single parameter (sessionId), though it is self-explanatory. Given the low coverage, the description should have provided at least a brief explanation of the parameter's role.

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's purpose: to provide a compact AI-readable summary of a stopped multi-step trace. It identifies the resource (trace) and action (summarize), and distinguishes from sibling tools like monitor_search_events and monitor_search_bodies.

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 explicitly states when to use (after a stopped trace), preconditions (complete reproduction and call monitor_stop first), and alternatives for further detail (monitor_search_events or monitor_search_bodies). This provides comprehensive guidance for proper tool selection.

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

monitor_list_sessionsList Trace SessionsA
Read-onlyIdempotent

Use when a full-profile workflow must enumerate trace sessions created by the current MCP process. Preconditions: at least one trace session should exist. Next: select a session ID for manifest, summary, search, read, or export operations. Sensitivity: session paths and metadata may reveal local directories and sensitive investigation context.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds valuable context about session scope (current MCP process) and potential sensitivity of paths/metadata, which goes beyond annotation info.

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 with two sentences, front-loading the purpose, followed by preconditions and next steps, and ending with sensitivity context. No wasted words.

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?

Given no parameters, presence of annotations, and existence of an output schema, the description covers all necessary contextual aspects: use case, preconditions, next steps, and sensitivity. The output schema likely covers return value details.

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

Parameters4/5

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

With zero parameters and 100% schema coverage, the description does not need to add parameter information. The baseline for 0 parameters is 4, and no additional parameter details are required.

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 enumerates trace sessions created by the current MCP process, distinguishing it from sibling tools by specifying the full-profile workflow context and preconditions.

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

Usage Guidelines4/5

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

The description provides clear usage context ('Use when a full-profile workflow must enumerate trace sessions') and preconditions. It does not explicitly mention alternatives, but the sibling tools are mostly unrelated browser operations.

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

monitor_read_artifactRead Trace ArtifactA
Read-onlyIdempotent

Use when summary and targeted search have identified one exact body, DOM, screenshot, eval, storage-state, or snapshot artifact needed to finish the diagnosis. Preconditions: acknowledgeRawCapture: true and a trace-contained path or reference are required; keep maxBytes bounded. Next: extract only the necessary finding and do not dump the artifact into source control or broad logs. Sensitivity: artifacts are raw and can contain reusable credentials, personal data, secrets, screenshots, or full application content.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNo
pathNo
asTextNo
maxBytesNo
parseJsonNo
sessionIdNo
acknowledgeRawCaptureNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the description's addition of sensitivity (raw artifacts may contain credentials, personal data, secrets) and preconditions adds beyond annotations. No contradiction.

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?

Three sentences, front-loaded with usage condition, every sentence adds value: precondition, instruction, sensitivity. No wasted words.

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

Completeness4/5

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

For a read tool with 7 params and output schema, the description covers purpose, usage, preconditions, sensitivity. Missing detailed explanation of all parameters, but output schema likely covers return structure.

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?

Schema coverage is 0%, so description must compensate. It mentions acknowledgeRawCapture (precondition), maxBytes (bounded), and path/ref (trace-contained path or reference), but does not explain asText, parseJson, sessionId, or the nested ref structure. Partial coverage.

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 reads a specific artifact (body, DOM, screenshot, etc.) identified by summary/search, distinguishing it from siblings like monitor_read_events or monitor_search_bodies.

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

Usage Guidelines4/5

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

Explicitly states when to use ('Use when summary and targeted search have identified one exact artifact...'), provides preconditions (acknowledgeRawCapture: true, bounded maxBytes), and gives instructions (extract only necessary finding, no dumping). Does not explicitly list alternatives, but context implies summary/search tools should be used first.

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

monitor_read_eventsRead Raw Trace EventsA
Read-onlyIdempotent

Use when a full-profile investigation needs paginated raw events after summary and search have identified the exact stream and range. Preconditions: a trace session and explicit stream are required; keep offset and limit narrow. Next: correlate the returned sequence with a targeted artifact only if necessary. Sensitivity: raw events may contain DOM text, headers, form values, cookie metadata, console output, and WebSocket payloads.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
streamYes
sessionIdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare safe, idempotent, non-destructive behavior. Description adds critical sensitivity context about raw event content (DOM text, headers, etc.), enhancing transparency.

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?

Four sentences, each delivering value: purpose, preconditions, next steps, sensitivity. Front-loaded and no fluff.

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?

Given output schema exists, description covers all needed aspects: purpose, guidelines, preconditions, and sensitivity. Complete for the tool's role.

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

Parameters2/5

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

Schema coverage is 0% and description does not explain parameters like stream, limit, offset, or sessionId. Missed opportunity to add meaning beyond the schema.

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 is for reading paginated raw events after summary and search identification. It distinguishes from siblings by specifying the exact use case.

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?

Explicitly states when to use (after summary and search), preconditions (trace session and stream required), narrow offset/limit, and next steps. Provides comprehensive guidance.

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

monitor_search_bodiesSearch Request and Response BodiesA
Read-onlyIdempotent

Use when authentication, API, GraphQL, request, or response content is directly relevant and body capture was enabled for the trace. Preconditions: acknowledgeRawCapture: true and a precise text query are required on an authorized session. Next: use monitor_read_artifact only for the specific matching body reference that answers the question. Sensitivity: request and response bodies can contain credentials, personal data, application secrets, and large raw payloads.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
limitNo
methodNo
statusNo
sinceSeqNo
sessionIdNo
urlContainsNo
acknowledgeRawCaptureNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds valuable behavioral context beyond this: preconditions (acknowledgeRawCapture, precise text query, authorized session), a sensitivity warning about credentials and personal data, and the workflow hint to use monitor_read_artifact next. No contradiction with annotations.

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

Conciseness4/5

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

The description is a single paragraph, front-loading purpose and usage. While it lists multiple content types (authentication, API, GraphQL, etc.), it remains fairly concise without redundant phrases. It could be slightly more structured, but it effectively communicates core information without waste.

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

Completeness3/5

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

Given the tool has 8 parameters and an output schema, the description covers the purpose, usage conditions, and sensitivity, but lacks detail on parameter behavior (e.g., limit, filtering). The output schema is not detailed in the input, but the description doesn't clarify return values or pagination. It leaves gaps for an agent to fully understand invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full burden. However, it only mentions two parameters (text and acknowledgeRawCapture) implicitly through preconditions, leaving six other parameters (limit, method, status, sinceSeq, sessionId, urlContains) undocumented. This fails to compensate for the schema's lack of descriptions.

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 searches request/response bodies, specifies when to use (when body content is relevant and capture enabled), and differentiates by providing preconditions and a follow-up tool (monitor_read_artifact). It pinpoints a specific resource and action, distinguishing it from sibling tools effectively.

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

Usage Guidelines4/5

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

The description provides explicit usage context: when body content is directly relevant and capture enabled, requiring acknowledgeRawCapture: true, a precise text query, and an authorized session. It also suggests the next step (monitor_read_artifact). While it doesn't explicitly state when not to use, the conditions imply exclusions, and it offers clear guidance on alternatives.

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

monitor_search_eventsSearch Trace EventsA
Read-onlyIdempotent

Use when a trace summary leaves a targeted question about an endpoint, DOM text, event type, sequence boundary, redirect, or WebSocket message. Preconditions: a trace session must exist; provide the narrowest useful stream and filters. Next: read only the matching artifact or small event range if more detail is needed. Sensitivity: matches may expose raw event fields, inline DOM content, URLs, headers, values, or payloads.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNo
typeNo
limitNo
streamNo
sinceSeqNo
sessionIdNo
urlContainsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, but the description adds critical behavioral context: 'matches may expose raw event fields, inline DOM content, URLs, headers, values, or payloads.' This warns about data exposure beyond what annotations convey, and also mentions preconditions.

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

Conciseness4/5

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

The description is a single, well-structured paragraph of about 100 words, logically covering when to use, preconditions, next steps, and sensitivity. No redundant information, though the 'Next:' part is slightly instructional and could be trimmed.

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

Completeness3/5

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

With 7 parameters and an output schema, the description covers when to use and sensitivity but lacks guidance on filtering capabilities like urlContains, type, or limit. It mentions 'stream and filters' but does not elaborate on available filter parameters, leaving some gaps in understanding the tool's full functionality.

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

Parameters2/5

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

Schema description coverage is 0% for 7 parameters. The description only vaguely hints at using 'stream and filters' but does not explain individual parameters like limit, sinceSeq, urlContains, type, or sessionId. With low coverage, the description should compensate more but fails to provide sufficient detail for most parameters.

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 identifies the tool as a search over trace events, stating exactly when to use it: 'when a trace summary leaves a targeted question about an endpoint, DOM text, event type, sequence boundary, redirect, or WebSocket message.' This distinguishes it from sibling tools like monitor_read_events (general reading) and monitor_search_bodies (searching bodies).

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?

Explicit usage guidance is provided: 'Use when a trace summary leaves a targeted question...' along with preconditions ('a trace session must exist; provide the narrowest useful stream and filters') and next steps ('read only the matching artifact or small event range'). This helps the agent decide when to use this tool versus alternatives.

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

monitor_startStart Raw TraceA

Use when a multi-step browser failure, transient DOM change, network race, WebSocket sequence, redirect, download, or authentication flow must be reproduced end to end. Preconditions: an authorized browser must be active and acknowledgeRawCapture: true is required; normally set captureCookies: false and captureBodies: false unless directly relevant. Next: perform the complete reproduction with RawTrace browser actions, then call monitor_stop before reading monitor_get_summary. Sensitivity: trace streams can capture raw DOM, headers, values, frames, console data, cookies, bodies, and WebSocket messages depending on options.

ParametersJSON Schema
NameRequiredDescriptionDefault
outputDirNo
captureDomNo
maxBodyBytesNo
captureBodiesNo
captureFramesNo
captureConsoleNo
captureCookiesNo
captureNetworkNo
captureWebSocketsNo
acknowledgeRawCaptureNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false, destructiveHint=false. Description adds that trace streams can capture raw DOM, headers, values, frames, etc., which goes beyond annotations and warns about sensitivity.

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

Conciseness4/5

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

The description is informative and structured with preconditions, next steps, and a sensitivity note. It is slightly longer than necessary but every sentence adds value.

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

Completeness4/5

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

Given the tool's complexity (10 parameters, no schema descriptions) and the presence of an output schema, the description covers usage context and behavioral aspects well, though parameter details are incomplete.

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?

With 0% schema description coverage, the description partially compensates by mentioning captureCookies, captureBodies, and acknowledgeRawCapture, but does not explain other parameters like outputDir, maxBodyBytes, captureDom, etc.

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 explicitly states that this tool is for reproducing multi-step browser failures, transient DOM changes, network races, etc., distinguishing it from sibling tools like monitor_stop and monitor_get_summary.

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

Usage Guidelines4/5

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

The description provides clear when-to-use scenarios and preconditions (authorized browser, acknowledgeRawCapture: true), and outlines next steps. It lacks explicit when-not-to-use, but the context is specific enough.

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

monitor_stopStop Raw TraceA

Use when the complete reproduction has finished and buffered trace events must be flushed before analysis. Preconditions: a monitor should be active; avoid extra unrelated browser actions before stopping. Next: call monitor_get_summary first, then targeted search tools, and read a raw artifact only when necessary. Sensitivity: the resulting trace directory is sensitive and must not be committed or broadly shared.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo

TDQS

A4.7/5.0
Behavior4/5

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

Annotations include destructiveHint=false, which aligns with the non-destructive flushing behavior. The description adds context about sensitivity (trace directory must not be committed) and preconditions, enhancing transparency beyond annotations. However, it doesn't detail the flushing mechanics or side effects beyond sensitivity.

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 concise yet comprehensive: it front-loads the purpose, then lists preconditions, next steps, and sensitivity. Every sentence serves a clear function, with no redundancy or filler.

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?

For a simple stop tool with no parameters and an output schema present, the description covers all necessary aspects: when to use, prerequisites, follow-up actions, and data sensitivity. It is fully complete given the tool's complexity.

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

Parameters4/5

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

The tool has no parameters, so the description cannot add param-level detail. Schema coverage is 100% vacuously. The description adds meaning by explaining the tool's purpose and usage context, which is sufficient for a parameterless tool.

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's purpose: to flush buffered trace events after reproduction finishes. It uses a specific verb ('use when') and resource ('buffered trace events'), distinguishing it from siblings like monitor_start and monitor_get_summary.

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?

Explicit usage conditions are provided: use after reproduction finishes, preconditions (monitor active, avoid extra actions), and next steps (call monitor_get_summary first, then targeted searches, read artifact only when necessary). This clearly tells when to use and what to do next.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 59 tool updatesv0.3.0
    • Changedbrowser_attach_cdp1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_check1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_clear_cookies1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_click1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_close1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_close_tab1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_eval1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_export_storage_state1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_fill_form1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_get_accessibility1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_get_cookies1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_get_dom1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_get_downloads1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_get_elements1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_get_forms1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_get_network1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_get_state1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_get_storage1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_go_back1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_go_forward1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_grant_permissions1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_handle_dialog1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_hover1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_import_storage_state1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_launch1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_list_tabs1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_navigate1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_new_tab1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_observe_action_result1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_optimize_selector1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_poll_until1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_press1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_reload1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_screenshot1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_screenshot_annotated1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_scroll1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_select_option1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_set_cookies1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_set_geolocation1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_set_storage1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_set_viewport1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_snapshot1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_switch_tab1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_type1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_upload_file1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_wait1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_wait_for_download1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_wait_for_response1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedbrowser_wait_for_response_body1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedmonitor_export1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedmonitor_get_manifest1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedmonitor_get_summary1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedmonitor_list_sessions1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedmonitor_read_artifact1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedmonitor_read_events1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedmonitor_search_bodies1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedmonitor_search_events1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedmonitor_start1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedmonitor_stop1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "error": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {},
        +        "message": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "result": {}
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
  2. 59 tool updatesv0.2.1
    • First observedbrowser_attach_cdp
    • First observedbrowser_check
    • First observedbrowser_clear_cookies
    • First observedbrowser_click
    • First observedbrowser_close
    • First observedbrowser_close_tab
    • First observedbrowser_eval
    • First observedbrowser_export_storage_state
    • First observedbrowser_fill_form
    • First observedbrowser_get_accessibility
    • First observedbrowser_get_cookies
    • First observedbrowser_get_dom
    • First observedbrowser_get_downloads
    • First observedbrowser_get_elements
    • First observedbrowser_get_forms
    • First observedbrowser_get_network
    • First observedbrowser_get_state
    • First observedbrowser_get_storage
    • First observedbrowser_go_back
    • First observedbrowser_go_forward
    • First observedbrowser_grant_permissions
    • First observedbrowser_handle_dialog
    • First observedbrowser_hover
    • First observedbrowser_import_storage_state
    • First observedbrowser_launch
    • First observedbrowser_list_tabs
    • First observedbrowser_navigate
    • First observedbrowser_new_tab
    • First observedbrowser_observe_action_result
    • First observedbrowser_optimize_selector
    • First observedbrowser_poll_until
    • First observedbrowser_press
    • First observedbrowser_reload
    • First observedbrowser_screenshot
    • First observedbrowser_screenshot_annotated
    • First observedbrowser_scroll
    • First observedbrowser_select_option
    • First observedbrowser_set_cookies
    • First observedbrowser_set_geolocation
    • First observedbrowser_set_storage
    • First observedbrowser_set_viewport
    • First observedbrowser_snapshot
    • First observedbrowser_switch_tab
    • First observedbrowser_type
    • First observedbrowser_upload_file
    • First observedbrowser_wait
    • First observedbrowser_wait_for_download
    • First observedbrowser_wait_for_response
    • First observedbrowser_wait_for_response_body
    • First observedmonitor_export
    • First observedmonitor_get_manifest
    • First observedmonitor_get_summary
    • First observedmonitor_list_sessions
    • First observedmonitor_read_artifact
    • First observedmonitor_read_events
    • First observedmonitor_search_bodies
    • First observedmonitor_search_events
    • First observedmonitor_start
    • First observedmonitor_stop

TDQS

A4.2/5.0

Scored across 59 tools

Disambiguation5/5

Each of the 59 tools has a distinct, well-defined purpose with clear descriptions that prevent overlap. For example, browser_get_state, browser_snapshot, browser_get_dom, and browser_get_elements each target different aspects of page information, and actions like browser_observe_action_result serve a unique before/after diff role.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with underscores, using logical prefixes ('browser_' for browser actions, 'monitor_' for trace management). This predictability makes it easy for an agent to infer tool purpose from the name.

Tool Count4/5

At 59 tools, the count is high but appropriate for the comprehensive browser automation and tracing coverage. Each tool addresses a specific need, and the complexity of the domain justifies the number, though it exceeds the typical 3-15 range.

Completeness5/5

The tool set covers the full lifecycle of browser interactions: launching, navigating, inspecting, acting, waiting, and tracing. It includes advanced features like storage state management, permissions, geolocation, and detailed trace analysis, leaving no obvious gaps for its stated purpose.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Records masked browser sessions (rrweb DOM + console + network) to a local SQLite store and exposes them to AI coding agents via stdio MCP. Fully local, no SaaS, no telemetry.
    10
    7
    Apache 2.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    Gives AI coding agents eyes into running applications by recording browser activity and providing session investigation tools for debugging.
    9
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables recording and analyzing AI agent execution traces, including event logging, metric computation, loop detection, and JSON export for debugging agent behavior.
    MIT