Skip to main content
Glama
BrowserGenie

BrowserGenie MCP Server

by BrowserGenie

BrowserGenie MCP Server

An MCP (Model Context Protocol) server that gives AI models full control over a Chrome browser. It pairs with the BrowserGenie Extension to expose 50+ browser automation tools over stdio — navigation, clicking, typing, screenshots, touch gestures, macro recording, and complete DevTools access.

Two-repo setup: This is the server half. The Chrome extension lives in a separate repository. Both are required.

How It Works

AI Client (Claude, Cursor, etc.)
    │  stdio  (JSON-RPC / MCP)
    ▼
MCP Server  ◄── this repo
    │  WebSocket  ws://localhost:7890
    ▼
Chrome Extension
    ├── chrome.tabs         → Navigation, tab management
    ├── chrome.debugger     → DevTools Protocol (CDP)
    ├── chrome.scripting    → Content script injection
    ├── chrome.cookies      → Cookie management
    └── Content Scripts      → Real DOM event simulation

The MCP server bridges your AI client (over stdio) and the Chrome extension (over WebSocket). Every MCP tool call is forwarded to the extension, executed in the browser, and the result is returned to the AI client.

Related MCP server: BrowserMCP

Requirements

Installation

No installation required. Run directly from npm:

npx browser-genie-mcp-server

Or install globally:

npm install -g browser-genie-mcp-server
browser-genie-mcp-server

Option B — Run from source

For development or to use the latest unreleased changes:

git clone https://github.com/BrowserGenie/mcp.git
cd mcp
npm install
npm run build
node dist/index.js

Configuration

Add the server to your AI client's MCP configuration.

Claude Desktop

File: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
File: %APPDATA%\Claude\claude_desktop_config.json (Windows)

{
  "mcpServers": {
    "browser-genie": {
      "command": "npx",
      "args": ["browser-genie-mcp-server"]
    }
  }
}

Claude Code

File: ~/.claude/settings.json or project-level .mcp.json:

{
  "mcpServers": {
    "browser-genie": {
      "command": "npx",
      "args": ["browser-genie-mcp-server"]
    }
  }
}

Cursor / other MCP clients

{
  "mcpServers": {
    "browser-genie": {
      "command": "npx",
      "args": ["browser-genie-mcp-server"]
    }
  }
}

If you installed the package globally with npm install -g browser-genie-mcp-server, you can use "command": "browser-genie-mcp-server" with no args instead.

After saving the config, restart your AI client.

Environment Variables

Variable

Default

Description

WEBSOCKET_PORT

7890

Port the WebSocket server listens on. The extension must use the same port.

Pass via the MCP config env block:

{
  "mcpServers": {
    "browser-genie": {
      "command": "npx",
      "args": ["browser-genie-mcp-server"],
      "env": { "WEBSOCKET_PORT": "8080" }
    }
  }
}

If you change the port, also update WEBSOCKET_URL in constants.ts inside the extension repo.

Verifying the Connection

Once the server is running and the extension is loaded in Chrome, click the extension icon. The popup should show a green Connected indicator. If it shows Disconnected, ensure the MCP server process is running.

MCP Tools Reference

Every tool accepts an optional apiKey (string) when authentication is enabled in the extension popup, and an optional tabId (number) to target a specific tab (defaults to the active tab).

Tip: If you see "No active tab found" or "Cannot access a chrome:// URL", use list_tabs to find a valid tab ID, or navigate to a regular web page first.

Navigation

Tool

Description

Key Parameters

navigate_to_url

Navigate to a URL

url (required)

navigate_back

Go back in history

navigate_forward

Go forward in history

navigate_reload

Reload the page

ignoreCache (bool)

Tab Management

Tool

Description

Key Parameters

list_tabs

List all open tabs

select_tab

Focus a tab

tabId (required)

new_tab

Open a new tab

url (optional)

close_tab

Close a tab

tabId (required)

get_tab_state

Capture URL, title, and DOM hash for state comparison

assert_tabs_match

Verify two tabs have identical state

tabIdA, tabIdB

test_storage_sync

Test cross-tab localStorage sync

tabIdA, tabIdB, key, value

Keyboard

Tool

Description

Key Parameters

press_key

Press a key with optional modifiers

key, modifiers[]

type_text

Type text character by character

text, delay (ms)

Mouse & Interaction

Tool

Description

Key Parameters

click_element

Click via coordinates, CSS, or XPath with human-like Bézier curve movement and randomized delays

target.type, target.value, button, doubleClick

input_and_type

Click a field, optionally clear it, then type text with per-character jitter

selector, text, clearFirst, submit

drag_and_drop

Drag from one point to another

from, to

hover_element

Hover to trigger CSS states / tooltips with randomized dwell time

target

Click behavior: doubleClick: true fires two rapid clicks at the same position. The element's own handlers determine focus/select behavior — the tool does not automatically select text or set focus beyond what the browser does natively.

Touch Gestures

Tool

Description

Key Parameters

swipe

Touch swipe from point A to B with configurable duration

from, to, duration

long_press

Long-press on an element or coordinates

target, duration

pinch

Pinch zoom with two-finger convergence/divergence

center, startRadius, endRadius

double_tap

Double-tap for mobile interactions (zoom, edit)

target, interval

Ensure the viewport is set to mobile with touch: true via resize_viewport or emulate_device before using touch gestures.

Screenshots

Tool

Description

Key Parameters

screenshot_viewport

Capture visible viewport

format, quality

screenshot_full_page

Capture full scrollable page

format, quality

Both return an image content block.

DevTools — Sources

Tool

Description

Key Parameters

read_page_html

Full outerHTML of the page

read_stylesheets

CSS stylesheet sources

url (filter)

read_scripts

JavaScript sources

url (filter)

read_page_resources

List all resources with URLs & sizes

type filter

find_in_source

Search regex pattern across HTML and all loaded scripts

pattern, contextLines

DevTools — Modify

Tool

Description

Key Parameters

modify_html

Live DOM mutation

selector, action, value, attributeName

modify_css

Set inline styles

selector, styles (object)

DevTools — Network

Tool

Description

Key Parameters

get_network_logs

Get collected request/response logs

filter.urlPattern, filter.method, filter.statusCode

get_network_request_detail

Full details of one request

requestId, includeBody

clear_network_logs

Clear collected logs

get_network_errors

Get only failed/errored requests (4xx, 5xx, failed)

clear

Network logs are collected from when the debugger attaches. Call any DevTools tool first to trigger attachment before the traffic you want to capture.

DevTools — Storage

Tool

Description

get_cookies / set_cookie / delete_cookie

Cookie CRUD

get_local_storage / set_local_storage / remove_local_storage

localStorage

get_session_storage / set_session_storage / remove_session_storage

sessionStorage

DevTools — Console

Tool

Description

Key Parameters

get_console_logs

Retrieve console messages by level

level, clear

execute_javascript

Run JS in the page and return result

expression

Accessibility & Auditing

Tool

Description

Key Parameters

browser_snapshot

Text-based accessibility tree snapshot

get_accessibility_tree

Raw accessibility tree as JSON

selector (optional filter)

run_accessibility_audit

Run axe-core WCAG audit

selector, tags

check_color_contrast

Check text contrast ratios

selector

get_tab_order

Static list of focusable elements in tab order with unique selectors

record_focus_path

Interactive — simulate Tab presses and record where focus lands, flagging invisible targets

steps

get_performance_metrics

Single snapshot of navigation timing, LCP, CLS, FID, memory

record_performance_timeline

Start/stop/get timeline recording of memory, LCP, CLS over time

action, interval

check_font_loading

Verify web font loading status

audit_broken_resources

Find broken images, stylesheets, fonts

check_security_headers

Inspect CSP, HSTS, X-Frame-Options, etc.

url

detect_cookie_banners

Detect cookie consent banners and CMP patterns

When to use get_tab_order vs record_focus_path: Use get_tab_order for a one-time snapshot of all focusable elements and their order. Use record_focus_path when you want to verify the actual focus behavior during keyboard navigation — it presses Tab repeatedly and records where focus lands, catching invisible or hidden focus traps.

Element Inspection

Tool

Description

Key Parameters

find_element

Find by text, role, aria-label, CSS, or XPath

text, role, css, xpath, nth

get_element_state

Get exists, visible, enabled, focused, checked, etc.

selector, selectorType

query_shadow_dom

Query inside a single shadow root

hostSelector, innerSelector

deep_query_shadow_dom

Query through nested shadow roots by host path

hostPath[], innerSelector

get_shadow_dom_tree

Return full shadow DOM tree as JSON

hostSelector, maxDepth

get_computed_styles

Get computed CSS styles for an element

selector, properties, pseudoElement

QA & Assertions

Tool

Description

Key Parameters

assert_element

Assert conditions on an element (exists, visible, text, etc.)

assertion, selector

assert_no_console_errors

Assert zero console errors/warnings

level, clear

assert_no_network_errors

Assert zero failed network requests

clear

assert_css_property

Assert computed style value

selector, property, expected

assert_network_request_made

Assert a matching request was made

urlPattern, method, minCount

assert_page_load_time

Assert navigation timing is within threshold

threshold

check_form_validity

Check HTML5 form validation state

selector, checkAll

tab_to_next

Simulate Tab key and track focus movement

direction, shift

set_input_files

Set files on a file input

selector, files

emulate_network_conditions

Simulate slow/offline network

offline, latency, throughput

intercept_requests

Block, modify, or allow network requests

action, urlPattern

snapshot_page_state

Capture full page state (HTML, storage, cookies)

restore_page_state

Restore from a snapshot

snapshot

wait_for_condition

Poll a JS expression until true or timeout

expression, timeout, interval

stress_test_refresh

Refresh page N times and run assertion each time

iterations, assertionScript, bypassCache

get_all_issues

Unified diagnostic — console + network + resource errors in one call

includeConsole, includeNetwork, includeResources

Interaction Inspection

Tool

Description

Key Parameters

hover_and_inspect

Hover and capture DOM/style changes

target, captureChanges

force_pseudo_state

Force hover/focus/active and read computed styles

selector, pseudoState

get_tooltip_text

Extract tooltip text from title, aria-describedby, aria-labelledby, or CSS

target, waitForTooltip

Macro Recording

Tool

Description

Key Parameters

start_recording_macro

Start recording clicks, typing, and changes

stop_recording_macro

Stop recording and return events JSON

replay_macro

Replay recorded events with speed multiplier

events, speed

Visual Regression

Tool

Description

Key Parameters

compare_screenshots

Pixel-by-pixel diff of two base64 PNGs using pixelmatch

beforeImage, afterImage, threshold

Project Structure

browser-genie-mcp-server/
├── src/
│   ├── index.ts              # Entry point — stdio MCP transport
│   ├── server.ts             # McpServer setup & tool registration
│   ├── websocket-bridge.ts   # WebSocket server + request/response correlation
│   ├── auth.ts               # API key validation helper
│   ├── types.ts              # Shared types & constants (port, message shapes)
│   └── tools/                # One file per tool category
│       ├── navigation.ts
│       ├── tab-management.ts
│       ├── click.ts
│       ├── input.ts
│       ├── keyboard.ts
│       ├── hover.ts
│       ├── drag-drop.ts
│       ├── screenshot.ts
│       ├── gestures.ts
│       ├── macros.ts
│       ├── visual-regression.ts
│       ├── devtools-sources.ts
│       ├── devtools-modify.ts
│       ├── devtools-network.ts
│       ├── devtools-storage.ts
│       ├── devtools-console.ts
│       ├── accessibility.ts
│       ├── emulation.ts
│       ├── elements.ts
│       ├── audit.ts
│       ├── interaction.ts
│       ├── monitoring.ts
│       └── qa.ts
├── dist/                     # Compiled output (after npm run build)
├── package.json
├── tsconfig.json
├── .gitignore
└── LICENSE

Development

# Watch mode — recompiles on every file save
npm run dev

# One-shot build
npm run build

# Run the compiled server directly
npm start

Important Notes

Debugger Banner

When any DevTools feature is first used on a tab, Chrome shows an "Extension is debugging this browser" banner. This is a Chrome security requirement and cannot be suppressed. The debugger attaches lazily — only when a DevTools tool is first called for that tab.

Service Worker Lifecycle

Chrome MV3 service workers terminate after ~30 seconds of inactivity. The extension uses chrome.alarms to keep the WebSocket alive, with automatic exponential-backoff reconnection (1 s → 2 s → 4 s → … → 30 s max).

Human-Like Interactions

All mouse and keyboard interactions include randomized delays and natural movement patterns to avoid bot detection. Click uses Bézier curves, typing has per-character jitter, and hover has randomized dwell time.

Contributing

Contributions are welcome! Please open an issue first to discuss what you'd like to change, then submit a pull request.

  1. Fork the repository

  2. Create a feature branch: git checkout -b feat/my-feature

  3. Commit your changes: git commit -m 'feat: add my feature'

  4. Push and open a Pull Request

License

Apache License 2.0

Available Tools

99 tools
assert_css_propertyB

Assert that a computed CSS property value matches expected for an element.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector for the element
propertyYesCSS property name (e.g., "color", "display")
expectedYesExpected property value
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, and description does not disclose behavioral traits such as return type (boolean? throws on failure?), waiting behavior, or side effects. The brief description only states purpose.

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?

Single concise sentence, front-loaded with verb and resource. No extraneous words.

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?

With 5 parameters and no output schema, the description lacks detail on behavior (e.g., success/failure feedback, timeout behavior). It is too minimal for a tool that performs assertions.

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 100%, so each parameter has a clear description. The tool description does not add extra meaning beyond what the schema already provides, meeting baseline.

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 it asserts computed CSS property value matching expected for an element. It distinguishes from sibling assert_element (element existence) and get_computed_styles (retrieval without assertion).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like get_computed_styles or assert_element. No explicit when-to-use or when-not-to-use information.

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

assert_elementC

Assert a condition on an element. Returns whether the assertion passed, the actual value, and a message. Essential for automated testing workflows.

ParametersJSON Schema
NameRequiredDescriptionDefault
assertionYesType of assertion to check
selectorYesCSS selector for the element
expectedNoExpected value for textEquals, textContains, or valueEquals
attributeNameNoAttribute name for hasAttribute assertion
classNameNoClass name for hasClass assertion
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, and description only mentions return values. Lacks details on side effects, permissions, or whether the tool modifies state. Implies non-destructive but not explicit.

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?

Two short sentences that convey the core function and context. 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?

No output schema, so description must compensate. It mentions return values but lacks details on format or non-required parameters like tabId, apiKey. Adequate but not comprehensive.

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 covers 100% of parameters with descriptions. Description adds no extra meaning beyond schema; baseline 3 justified.

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?

Description clearly states it asserts a condition on an element and returns pass/fail, actual value, and message. However, it does not differentiate from sibling assert tools like assert_css_property.

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

Usage Guidelines2/5

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

No guidance on when to use vs alternative tools like assert_css_property or assert_network_request_made. Simply says 'essential for automated testing workflows'.

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

assert_network_request_madeB

Assert that a network request matching a pattern was made. Useful for verifying analytics, API calls, or resource loading.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlPatternNoURL substring to match
methodNoHTTP method to match (GET, POST, etc.)
minCountNoMinimum number of matching requests expected
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It only states the action without indicating side effects, return behavior, or error handling. The agent lacks insight into whether the assertion is blocking, idempotent, or modifies state.

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 two concise sentences with no fluff. It front-loads the core purpose and efficiently provides context.

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 5 parameters and no output schema, the description fails to explain assertion behavior (e.g., timeout, matching logic, or result interpretation). It feels incomplete for a complex 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 100%, so the description adds no extra parameter meaning beyond what is already documented. The baseline score of 3 is appropriate.

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 action ('Assert') and the resource ('network request matching a pattern'), making it clear and distinct from sibling tools like 'get_network_logs' or 'intercept_requests'.

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 provides use cases ('verifying analytics, API calls, or resource loading') but does not specify when to avoid this tool or mention alternatives, leaving usage guidance implicit.

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

assert_no_console_errorsA

Assert that there are no console errors (or specified level entries) for the tab. Returns error count, list of errors, and pass/fail.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNoConsole level to checkerror
clearNoClear logs after checking
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided. The description does not clarify whether the tool waits for logs or checks current state, nor what happens on failure (e.g., throws an error). Key behavioral details missing.

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 a single clear sentence with no unnecessary words. 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?

No output schema, but description mentions return fields. However, it omits important context for an assertion tool, such as whether it waits or how it handles failures. Adequate but 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?

All 4 parameters are fully described in the schema (coverage 100%). The description adds context about return values but does not significantly enhance parameter understanding 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 asserts no console errors for a tab, specifies it returns error count, list, and pass/fail, and distinguishes from siblings like get_console_logs.

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 filtering by level but lacks explicit guidance on when to use this tool versus get_console_logs or monitor_console_events. No alternatives or exclusions stated.

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

assert_no_network_errorsA

Assert that there are no failed network requests (4xx, 5xx, or failed) for the tab. Returns failed count, list of failed requests, and pass/fail.

ParametersJSON Schema
NameRequiredDescriptionDefault
clearNoClear network logs after checking
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.6/5.0
Behavior3/5

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

The description discloses that the tool checks network errors and returns a count, list, and pass/fail. However, it does not explain side effects (e.g., optionally clearing logs via the clear parameter) or prerequisites like authentication (apiKey parameter). With no annotations, more detail would be beneficial.

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?

Single sentence covers purpose and outputs with no fluff. Every phrase is essential 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?

For a simple assertion tool, the description adequately explains return values (count, list, pass/fail) and mentions the tab scope. Missing details on side effects of clear and authentication, but overall sufficient given the tool's simplicity.

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?

Input schema has 100% coverage, so description adds no extra meaning beyond what each parameter already defines. Baseline 3 is appropriate since schema already handles semantics.

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 asserts no failed network requests (4xx, 5xx, or failed) and returns specific outputs. It uses a specific verb-resource pair, distinguishing it from sibling tools like get_network_errors which only retrieves errors.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives like get_network_errors or clear_network_logs. The name implies it is for assertions in tests, but no when-not-to-use or alternative conditions are mentioned.

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

assert_page_load_timeB

Assert that the page load time (navigation timing loadEventEnd) is within a threshold.

ParametersJSON Schema
NameRequiredDescriptionDefault
thresholdNoMaximum acceptable load time in ms
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must carry full burden. It does not disclose what happens on assertion failure (error thrown, boolean return), whether it modifies browser state, or if it logs anything, leaving agent guessing about side effects.

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?

Single sentence with no fluff. Front-loads the key purpose and metric. Efficiently conveys the tool's function.

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?

For a simple assertion with no output schema and few optional params, the description is adequate but incomplete. It does not specify return type or error behavior, which is notable for a tool that could break a test flow.

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 100% with parameter descriptions. The description adds the specific metric (loadEventEnd) not in schema, providing extra context. However, it does not clarify the behavior of optional parameters like tabId or apiKey beyond schema defaults.

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 action (assert), resource (page load time), and specific metric (loadEventEnd). It distinguishes from sibling assertions like assert_css_property or assert_element by focusing on performance timing.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives such as assert_no_network_errors or get_performance_metrics. The description implies usage for load time thresholds but lacks context on prerequisites or when not to use it.

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

assert_tabs_matchA

Verify two tabs have the same state (URL, title, DOM hash). Useful for cross-tab state sync testing.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdAYesFirst tab ID
tabIdBYesSecond tab ID
apiKeyNoAPI key for authentication if enabled

TDQS

A4/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavioral traits, but it fails to mention side effects, failure behavior (e.g., thrown exception or return value), or prerequisites like tab existence. It only states the verification action, leaving significant gaps.

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: one sentence with two clear clauses. It is front-loaded with the primary action and immediately provides context. No wasted words, every part earns its place.

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 assertion tool with only two required parameters and no output schema, the description covers the essential information: what it compares and when to use it. However, it lacks details on failure behavior and edge cases, so it is slightly incomplete.

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 input schema already fully covers all three parameters with descriptions (100% coverage). The description adds value by explaining the meaning of 'state' (URL, title, DOM hash), which is not present in the schema, enriching the parameter semantics context.

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: verifying two tabs have the same state by comparing URL, title, and DOM hash. It also provides a use case (cross-tab state sync testing), distinguishing it from sibling assertion tools like assert_element or assert_css_property.

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 mentions 'cross-tab state sync testing' as the intended use case, giving clear context for when to apply the tool. However, it does not explicitly state when not to use it or list alternatives, though the context is sufficient for an experienced user.

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

audit_broken_resourcesB

Find broken images, failed stylesheets, font errors, and other resource loading problems on the page.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavioral traits. It only says 'find' but does not state if it's read-only, whether it modifies the page, or what happens if no issues found. Lacks detail on side effects.

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?

Single sentence of 14 words, front-loaded with action and resource types. No wasted words.

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?

No output schema; description fails to explain what the tool returns (list of errors? counts?). Also missing context on page load requirement or how results are formatted. Insufficient for an audit 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 100% (both tabId and apiKey described in schema). Description adds no additional meaning beyond the schema, so baseline 3 applies.

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 finds broken images, stylesheets, font errors, and other resource loading problems. It uses specific verbs and resource types, distinguishing it from siblings like assert_no_network_errors or check_font_loading.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. No prerequisites or when-not-to-use scenarios mentioned.

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

browser_snapshotA

Get a text-based accessibility tree snapshot of the page. This shows the page structure with ARIA roles, names, and states — ideal for understanding page layout when you cannot see screenshots.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description must cover behavioral traits. It states the tool reads the accessibility tree, implying non-destructive behavior, but does not disclose any side effects, permissions, or limitations.

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 sentences efficiently convey the tool's purpose and a key use case. 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?

The description is adequate for a simple read tool but lacks information about output format, data fidelity, or how it differs from the sibling 'get_accessibility_tree'. Without an output schema, some explanation of return value would be helpful.

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 100% with both parameters described. The description adds no extra meaning beyond the schema (e.g., defaults for tabId or when apiKey is needed). Baseline score of 3 is appropriate.

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 it retrieves a text-based accessibility tree snapshot, specifying the content (ARIA roles, names, states). It distinguishes from screenshots but not from sibling tool 'get_accessibility_tree'.

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 a concrete scenario ('when you cannot see screenshots') for when to use this tool. However, it does not specify when not to use it or mention alternatives like 'get_accessibility_tree'.

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

check_color_contrastB

Check color contrast ratios for text elements against WCAG AA and AAA standards. Returns contrast ratios and pass/fail status.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorNoCheck specific element (default: all text elements on page)
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It does not confirm the tool is read-only, mention any side effects, or explain authentication requirements. The description only states the output, missing important 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.

Conciseness5/5

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

The description is two sentences long, front-loaded with the core purpose, and contains no extraneous information. Every word 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?

Despite no output schema, the description mentions return values. However, it does not specify the output format (e.g., JSON structure) nor provide context for optional parameters like apiKey. The tool's behavior is adequately described for simple use, but lacks depth for complex 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 100% description coverage for all three parameters (selector, tabId, apiKey). The description adds no additional meaning beyond the schema, merely restating the return value. A score of 3 is appropriate as schema covers parameter semantics adequately.

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 checks color contrast ratios against WCAG AA and AAA standards, specifying it returns contrast ratios and pass/fail status. This is a specific action on a resource, but it does not explicitly differentiate itself from sibling tools like run_accessibility_audit, which may also evaluate contrast.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as get_computed_styles or run_accessibility_audit. It does not mention prerequisites, limitations, or contexts where this tool is preferred.

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

check_font_loadingB

Verify that all web fonts have loaded correctly. Returns font family, status, weight, and style for each font.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It indicates a read-only verification and mentions output fields, but does not disclose what happens if fonts fail to load, or the format of the status field. For a simple check tool, this is adequate but not fully transparent.

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 two sentences with no fluff. The first sentence states the purpose, the second lists return fields. It is front-loaded and every word earns its place.

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?

For a simple check tool with no output schema, the description covers the basic purpose and output fields. However, it lacks details like the format of the returned data (array or object), the meaning of 'status', and any prerequisites (e.g., fonts must be requested). It is minimally complete but could be more informative.

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 100% with both parameters (tabId, apiKey) described. The description adds no extra parameter meaning beyond the schema, so baseline 3 is appropriate. The description does not repeat or enhance parameter semantics.

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 verifies web font loading and lists the return fields (family, status, weight, style). This distinguishes it from sibling check tools like assert_css_property or check_color_contrast, which focus on other aspects. However, it could be more explicit about the context (e.g., active tab) even though tabId parameter implies it.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. Among many sibling check tools, an agent could benefit from hints such as 'Use this after page load to verify fonts, not for checking specific CSS properties.' The description only states what it does, leaving the agent to infer usage context.

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

check_form_validityA

Check HTML5 form validation state for a form or all form elements within a selector. Returns validity details per element including valueMissing, typeMismatch, patternMismatch, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector for form or form element
checkAllNoCheck all form elements within the selector (default: true)
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description bears the full burden. It adequately states the tool returns validity details per element, but does not disclose behavior for missing selectors, error handling, or whether it has side effects. A read-only hint is missing.

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 with no unnecessary words. The first sentence defines the main action, the second elaborates on output. Ideal for quick scanning.

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 tool with 4 parameters and no output schema, the description sufficiently explains return values (validity details with example properties). It lacks details on potential errors or the structure of the response, but the level of detail is adequate for most use cases.

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?

Input schema covers all 4 parameters with descriptions. The description adds value by listing example validation constraints (valueMissing, typeMismatch, patternMismatch) that the schema does not enumerate, providing richer context for the return format.

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 that the tool checks HTML5 form validation state for a form or form elements, listing specific validity properties like valueMissing and typeMismatch. It uses a specific verb ('Check') and resource ('HTML5 form validation state'), distinguishing it from sibling tools that focus on CSS properties, assertions, or page 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 implies usage for verifying form validation before submission, but it does not explicitly state when to use or not use this tool relative to alternatives. However, the purpose is clear enough that an agent can infer appropriate contexts.

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

check_security_headersA

Inspect security-related HTTP response headers for the page: CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, and XSS-Protection.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoURL to check (default: current page URL)
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states the tool 'inspects' headers, indicating a read operation, but does not disclose whether it re-fetches the page, uses cached data, or requires network access. Additional behavioral details are missing.

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 a single, direct sentence that lists the headers inspected. No unnecessary words, well-structured for quick understanding.

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 tool has no output schema, so the description should hint at the return format or results. It only lists the headers checked but not what the output contains (e.g., pass/fail, values). This limits completeness for an agent invoking the 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 100%, so the schema already documents all parameters. The description adds no extra meaning beyond what the schema provides for url, tabId, and apiKey. Baseline 3 is appropriate.

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 inspects security-related HTTP response headers, listing specific ones (CSP, HSTS, etc.). This is a specific verb-resource combination that distinguishes it from sibling tools like get_network_logs or get_network_request_detail.

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 implies the tool is used to check security headers of a page, but does not explicitly state when to use it versus alternatives, nor does it provide exclusions or prerequisites. Context is clear but lacking guidance on 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.

clear_network_logsA

Clear all collected network logs for a tab

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication

TDQS

A3.6/5.0
Behavior3/5

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

No annotations; description implies destructive action but does not emphasize irreversibility or mention that it clears only for the specified tab. Basic transparency but could be improved.

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?

Single sentence with no unnecessary words; effectively communicates core purpose.

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?

Simple tool with no output schema; description covers action and target. Additional context (e.g., typical use case) would improve completeness but not essential.

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 100% for both parameters. Description adds minimal value beyond schema; 'for a tab' is already implied by the tabId parameter.

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 verb 'clear', resource 'network logs', and scope 'for a tab', distinguishing it from sibling tools like get_network_logs or get_network_errors.

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

Usage Guidelines2/5

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

No guidance on when to use (e.g., reset state before tests) or when not to use (e.g., when logs are needed). Alternatives like get_network_logs are not mentioned.

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

click_elementA

Click on any element on the page. Use this for buttons, links, checkboxes, dropdowns, or any interactive element. Simulates real human mouse behavior with Bézier curve movement, randomized delays, and natural press/release timing.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesTarget to click - prefer CSS selectors when possible
buttonNoMouse button: left (default), right (context menu), or middle
doubleClickNoSet to true for double-click. Two rapid clicks (~40-100ms apart) are fired at the same position. Useful for opening files, selecting words, or triggering double-click handlers. Does NOT automatically handle focus/select behavior of the element — the element's own event handlers determine that.
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A4/5.0
Behavior4/5

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

The description discloses human-like simulation (Bézier curves, randomized delays, natural timing), which adds behavioral context beyond the schema. However, it does not address failure cases (e.g., element not found) or potential side effects (navigation, state changes). Still, the disclosed trait is valuable for agent planning.

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 sentences, front-loaded with the primary purpose, followed by behavioral detail. No extraneous words; 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?

For a simple clicking tool with well-documented parameters, the description covers the main aspects: what it does, when to use it, and simulation behavior. It lacks mention of return values (no output schema) or handling of invisible elements, but is nearly complete for typical use.

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 100%, so parameters are fully described in the schema. The description does not add extra meaning to parameters beyond what is already present. Baseline 3 is appropriate as the description focuses on tool behavior, not parameter 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?

The description clearly states the action ('Click on any element on the page') and specifies the types of elements it applies to (buttons, links, checkboxes, dropdowns, or any interactive element). This provides a specific verb-resource pairing and distinguishes it as the general click tool among siblings like double_tap or hover_element.

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 provides context by suggesting usage for interactive elements, but does not explicitly differentiate from alternatives like double_tap, long_press, or hover_element. It implies single clicks but lacks explicit when-not-to-use or sibling comparisons.

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

close_tabA

Close a specific browser tab. Use this to clean up tabs you no longer need. Be careful - closed tabs cannot be recovered through this tool!

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesID of the tab to close (get this from list_tabs)
apiKeyNoAPI key for authentication if enabled

TDQS

A4.2/5.0
Behavior3/5

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

No annotations available, so description carries full burden. Discloses that closed tabs cannot be recovered, which is key behavioral info. However, does not detail immediate effects or potential side effects beyond that.

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 sentences, concise and front-loaded. Every word serves a purpose with 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?

Given no output schema and simplicity of the tool, description covers purpose, usage, and critical warning. Lacks return value info but acceptable for a void-like operation.

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 description coverage is 100%, but the description adds value by suggesting 'get this from list_tabs' for tabId, providing practical guidance 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 'Close a specific browser tab' with a specific verb and resource. It distinguishes itself from sibling tools like list_tabs, select_tab, and new_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?

Provides explicit context: 'Use this to clean up tabs you no longer need.' Includes a caution about non-recovery, which guides correct usage. Lacks explicit alternatives but context is sufficient.

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

compare_screenshotsB

Compare two screenshots pixel-by-pixel using pixelmatch. Returns match percentage, mismatched pixel count, and a diff image.

ParametersJSON Schema
NameRequiredDescriptionDefault
beforeImageYesBase64-encoded PNG image (before)
afterImageYesBase64-encoded PNG image (after)
thresholdNoPerceptual difference threshold (0-1). Smaller is more sensitive.
includeDiffImageNoReturn a base64 diff image highlighting mismatches

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It states the tool uses pixelmatch and returns results, but omits important details: whether it modifies any state, file size limitations, or required image properties (e.g., same resolution). This leaves behavioral ambiguity.

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 two sentences, each earning its place: first states the action and method, second lists outputs. No filler or redundancy. Highly efficient 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 4 parameters, no output schema, and no annotations, the description partially covers usage. It explains the return values (percentage, pixel count, diff image) but lacks prerequisites (e.g., images must be same size) or format of the diff image (base64 implied but not stated). Adequate but with clear gaps.

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?

Input schema coverage is 100% and already parametrizes beforeImage, afterImage, threshold, includeDiffImage. The description adds context (pixelmatch, return values) but does not enhance understanding of parameters beyond the schema. Baseline score of 3 is appropriate given high 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 explicitly states it compares two screenshots pixel-by-pixel using pixelmatch, and lists the outputs (match percentage, mismatched pixel count, diff image). This clearly distinguishes it from sibling tools like diff_page_source (text-based) and compare_snapshots (likely different granularity).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. While the name implies pixel-level comparison, the description does not explicitly address trade-offs with compare_snapshots or other visual comparison tools, nor does it state prerequisites (e.g., same image dimensions).

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

compare_snapshotsA

Compare two page state snapshots (from browser_snapshot or read_page_html) and return the differences. Use this to verify state changes after an action.

ParametersJSON Schema
NameRequiredDescriptionDefault
beforeYesFirst snapshot string (captured before action)
afterYesSecond snapshot string (captured after action)
modeNoComparison mode: text (line-by-line) or dom (element-level)text

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, yet description fails to disclose any behavioral traits such as output format, performance implications for large snapshots, error conditions, or side effects. Only states 'return the differences' without structure.

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 that front-load the action and purpose with no wasted words. 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?

Minimally adequate for a simple comparison tool with well-documented parameters, but lacks details on output format and error handling, which are not covered by schema or annotations.

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 descriptions cover all three parameters with clear explanations (e.g., mode: 'text (line-by-line) or dom (element-level)'), so the description adds minimal extra semantic value. Baseline of 3 is appropriate due to high 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?

Clearly states 'compare two page state snapshots' and 'return the differences', with explicit purpose to verify state changes after an action. Distinguishes from siblings like diff_page_source and compare_screenshots by naming the source tools (browser_snapshot, read_page_html).

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 a clear use case ('verify state changes after an action') but does not specify when not to use this tool versus alternatives like diff_page_source or compare_screenshots. No exclusions or prerequisites mentioned.

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

deep_query_shadow_domC

Query an element inside a deep shadow DOM tree by providing a path of host selectors.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostPathYesOrdered array of shadow host CSS selectors to traverse
innerSelectorYesCSS selector within the deepest shadow root
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

C2.6/5.0
Behavior1/5

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

No annotations provided, and description only states the action without behavioral details (e.g., error on invalid path, return value format, side effects). Fails to disclose any behavioral traits.

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?

Single sentence, 14 words, front-loaded with purpose. Every word contributes to clarity; no redundancy.

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?

No output schema, yet description does not explain return value. Does not mention optional parameters like tabId or apiKey, leaving usage context incomplete for a 4-parameter 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 100%, but description adds no meaningful interpretation beyond the schema. The phrase 'path of host selectors' mirrors the parameter description without additional context.

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?

Clear verb 'Query' and resource 'element inside a deep shadow DOM tree'. Distinguishes from siblings by mentioning 'deep shadow DOM', but does not explicitly contrast with 'query_shadow_dom' or 'get_shadow_dom_tree'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives. No prerequisites, limitations, or conditions for use are mentioned.

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

detect_layout_issuesB

Detect layout problems like overflow, element overlap, viewport clipping, and z-index stacking issues.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It fails to state whether the tool modifies the page, requires special permissions, or returns a result. The lack of mention of return value or side effects is a significant gap.

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?

Single sentence with 12 words, focused and front-loaded. Every word contributes to understanding the tool's core function.

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?

With no output schema, the description should clarify what the tool returns (e.g., a list of issues, boolean). It also omits prerequisites like page load state. For a detection tool, this is 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?

Schema coverage is 100%, so baseline is 3. The description does not add any additional meaning about the two optional parameters (tabId, apiKey) beyond what the schema provides.

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 a specific verb 'detect' and resource 'layout problems', listing concrete examples (overflow, overlap, clipping, z-index issues). This clearly distinguishes it from sibling tools, which focus on other aspects like CSS properties or accessibility.

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 implies it is for layout issue detection, but it does not provide explicit when-to-use or when-not-to-use guidance, nor mention alternatives among the many sibling tools.

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

diff_page_sourceA

Compare two HTML strings structurally and return the differences (added nodes, removed nodes, attribute changes, text changes). Use this to detect DOM changes after an action.

ParametersJSON Schema
NameRequiredDescriptionDefault
beforeHtmlYesHTML string captured before action
afterHtmlYesHTML string captured after action
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It describes the types of differences returned but does not discuss performance, limits, or behavior for edge cases (e.g., malformed HTML). 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?

Two sentences: first defines the action and output, second gives usage context. No unnecessary words, every sentence earns its place.

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?

No output schema exists, so the description partially covers return structure by listing types of differences. However, it lacks details on optional parameters (tabId, apiKey) and does not discuss potential constraints like size limits or performance implications for large HTML strings.

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 100%, with each parameter having a description. The description adds the context of structural comparison but does not provide additional meaning beyond the schema for the parameters themselves. Baseline score of 3 is appropriate.

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 'compare', the resource 'HTML strings', and the output 'differences (added nodes, removed nodes, attribute changes, text changes)'. It distinguishes from sibling tools like compare_screenshots by focusing on structural HTML comparison.

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 'Use this to detect DOM changes after an action', providing clear context. However, it does not mention when not to use it or contrast with similar tools like compare_snapshots, but the use case is well-defined.

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

double_tapA

Simulate double-tap at coordinates or on an element. Useful for testing double-tap-to-zoom, double-tap-to-edit, or other mobile interactions.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesElement or position to double-tap
intervalNoInterval between taps in ms (default: 80ms)
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It states the action (simulate double-tap) and the interval between taps, but does not explain if it triggers events, requires mobile emulation, or has side effects. Adequate but not highly transparent.

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, front-loaded sentences. No redundancy, every word 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 moderate complexity (4 params, nested object) and no output schema, the description is nearly complete. It explains the action, targets, and typical use cases. Lacks mention of return value or success confirmation, but effect is user-visible.

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 100%, so parameters are already well-documented. The description adds context about use cases but no additional parameter-specific semantics 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 it simulates a double-tap at coordinates or on an element, and lists concrete use cases (double-tap-to-zoom, double-tap-to-edit). This distinguishes it from sibling tools like click_element or long_press.

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 provides usage context ('useful for testing...') but does not explicitly say when not to use this tool or mention alternatives like swipe or pinch. No guidance on choosing between coordinates and element targets.

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

drag_and_dropA

Drag an element from one location to another. Use this for sliders, sortable lists, file upload drop zones, or any drag-interactive elements. Simulates realistic human drag speed.

ParametersJSON Schema
NameRequiredDescriptionDefault
fromYesSource element/position to start dragging from
toYesTarget element/position to drop onto
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.9/5.0
Behavior3/5

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

The description adds 'Simulates realistic human drag speed,' which provides a behavioral trait beyond the schema. However, it lacks details on what happens on failure, whether the tool waits for drop, or any side effects.

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 two sentences, front-loaded with the primary action and examples, with 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.

Completeness3/5

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

Given no output schema, the description should ideally mention the return value or success indicator. It does not, so it is slightly incomplete. It adequately covers usage but not the outcome.

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 already has 100% coverage with descriptions for all parameters. The description does not add any additional meaning or clarifications beyond what is in the schema, so it meets the baseline.

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 action ('drag an element from one location to another') and provides specific use cases (sliders, sortable lists, file upload drop zones), effectively distinguishing it from sibling tools like click_element or hover_element.

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 explicitly says 'Use this for...' which gives clear context on when to use the tool. However, it does not mention when not to use it or provide alternatives, but since it's the only drag tool, this is acceptable.

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

emulate_deviceA

Emulate a specific device preset (iPhone 14, Pixel 7, iPad Pro, desktop). Automatically sets viewport, DPR, user agent, and touch emulation.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceYesDevice preset name
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral burden. It discloses that viewport, DPR, user agent, and touch are set automatically, but does not mention persistence, reversal, or side effects across tabs.

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 sentences: first states the core action, second explains the effects. Every word is relevant and there is no redundancy. Highly efficient.

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 no annotations or output schema, the description adequately covers purpose and effects. However, it lacks details on how to reset emulation, whether it persists, and any limitations, leaving some gaps for a state-modifying 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 100%, so baseline is 3. The description adds context by listing device presets and stating the effects of emulation, but does not elaborate on tabId or apiKey parameters beyond what the schema provides.

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 it emulates device presets and lists examples (iPhone 14, etc.). It specifically mentions setting viewport, DPR, user agent, and touch emulation, distinguishing it from sibling tools like resize_viewport or emulate_network_conditions.

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 implies usage for responsive testing but lacks explicit guidance on when to use this tool versus alternatives like resize_viewport or reset_viewport. No when-not-to-use or alternative tool suggestions are provided.

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

emulate_network_conditionsB

Simulate slow or offline network conditions. Use this to test how pages behave on poor connections. Set reset=true to restore normal conditions.

ParametersJSON Schema
NameRequiredDescriptionDefault
offlineNoSimulate offline mode
latencyNoAdditional latency in ms
downloadThroughputNoDownload throughput in bytes/sec (e.g., 50000 for 50KB/s)
uploadThroughputNoUpload throughput in bytes/sec
resetNoReset to normal network conditions
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

B3.3/5.0
Behavior2/5

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

Without annotations, the description bears full responsibility for disclosing behavioral traits. It mentions simulation and reset but omits important details such as whether the conditions persist across tabs, affect other tabs, require any permissions, or have side effects like clearing cache or cookies. The description fails to convey the scope and lifetime of the simulated conditions.

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, front-loads the core purpose, and provides a key usage tip. Every sentence earns its place without redundancy or unnecessary detail.

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?

The tool has 7 parameters, including optional tabId and apiKey, but the description does not explain how they affect behavior, default scoping, or what to expect when combining parameters. With no output schema and no annotations, the description should cover more details about the tool's behavior and limitations to be complete.

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 input schema has 100% coverage with decent descriptions for each parameter. The description adds value by specifically highlighting the reset parameter to restore normal conditions, which is not obvious from the schema alone. This enhances the agent's understanding of how to use the tool effectively.

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 simulates slow or offline network conditions for testing page behavior on poor connections. This distinguishes it from sibling tools like emulate_device (which focuses on device emulation) and network logging tools, but it does not explicitly differentiate from other network-related tools such as intercept_requests.

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 advises using the tool to test poor connections and mentions the reset parameter to restore normal conditions. However, it provides no guidance on when not to use it (e.g., for persistent network simulation across tests) or alternatives (e.g., intercept_requests for custom network manipulation).

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

execute_javascriptA

Run ANY JavaScript code directly in the page. This is your escape hatch for anything the other tools can't do: extract data, modify the page, trigger events, check values, etc. Full access to window, document, and all page APIs.

ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYesJavaScript code to run. Can be a simple expression or multi-line function.
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.9/5.0
Behavior3/5

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

Describes full access to page APIs, which is a key behavioral trait. However, without annotations, it should also disclose potential risks (e.g., page crashes, mutation side effects) and return behavior. The description is honest but not exhaustive.

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. First sentence defines the core action, second sentence frames its role and gives examples. Highly efficient 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?

No output schema, so the description should explain return values. It does not mention that the return result of the JavaScript expression is returned. Also lacks error handling or promise resolution behavior. Given the tool's simplicity, this is a notable gap.

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?

Input schema covers 100% of parameters with descriptions. The description adds no extra meaning beyond what the schema already provides for each parameter. Baseline score is appropriate.

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 it executes JavaScript in the page, positions itself as an escape hatch, and provides concrete examples (extract data, modify page, trigger events, check values). Distinguishes from sibling tools that are more 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?

Explicitly frames the tool as an escape hatch for tasks other tools cannot do, implying use when other tools are insufficient. Lacks explicit 'when not to use' or alternative suggestions, but the sibling list provides context.

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

find_elementA

Find an element by visible text, ARIA role, ARIA label, CSS selector, or XPath. Returns a unique CSS selector and element details. Use this when you need to locate an element but don't know its exact selector. Role matching supports both explicit role="..." attributes AND semantic HTML (e.g., matches role "button", matches role "link"). When multiple filters are provided (e.g., role + text), they are combined with AND logic.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoFind by visible text content (substring match). Can be combined with role for precise targeting.
roleNoFind by ARIA role (e.g., "button", "link", "navigation", "main"). Falls back to semantic HTML roles if no explicit role attribute is present.
ariaLabelNoFind by aria-label attribute (substring match)
cssNoCSS selector (most direct — bypasses all other filters)
xpathNoXPath expression (bypasses all other filters)
nthNoSelect the Nth match (0-indexed), default: 0
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A4.5/5.0
Behavior4/5

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

The description explains that role matching supports both explicit ARIA roles and semantic HTML, and that CSS/XPath bypass other filters. This adds behavioral context beyond the schema. However, it does not describe error handling or what happens if no element is found.

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 serving a clear purpose: stating the function, providing usage guidance, and detailing behavioral nuances. There is no fluff, and key information is 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?

Given 8 parameters, no output schema, and no annotations, the description covers the core purpose, key behaviors, and parameter interactions. It could mention the return format or that the returned selector can be used with other tools, but it is largely complete.

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

Parameters5/5

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

Schema coverage is 100%, so the schema already describes parameters. The description adds significant value by explaining the semantic HTML fallback for role and the bypass behavior for css/xpath, which is not in 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 finds an element by various methods (visible text, ARIA role, etc.) and returns a unique CSS selector and details. It distinguishes itself from sibling tools like click_element or hover_element that use the found element.

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 'Use this when you need to locate an element but don't know its exact selector.' It also explains AND logic for multiple filters. However, it does not mention when to prefer other tools like CSS/XPath alone or query_shadow_dom.

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

find_in_sourceA

Search for a regex pattern in page HTML and loaded scripts. Returns matches with file URL, line number, and surrounding context.

ParametersJSON Schema
NameRequiredDescriptionDefault
patternYesRegex pattern to search for
contextLinesNoNumber of context lines around each match
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses that search targets page HTML and loaded scripts, and describes return structure. However, it does not explicitly state that the operation is read-only or behavior when no matches found.

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 short sentences, no redundant words. First sentence states action, second states output. Efficient and front-loaded with core purpose.

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?

Adequately describes what the tool does and returns, but lacks context on defaults for optional parameters (tabId, contextLines) and authentication requirement (apiKey). No output schema, but return structure is described. Could be more complete for a tool with 4 params and no annotations.

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 has 100% description coverage for all 4 parameters. The description adds no additional meaning beyond schema, e.g., it mentions 'context lines' but schema already documents contextLines. Baseline 3 is appropriate.

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 it searches for regex patterns in page HTML and loaded scripts, and specifies return values (file URL, line number, context). It distinguishes from sibling tools like read_page_html or read_scripts which don't offer regex search across both combined.

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?

Description implies when to use (to find a regex pattern in page source) but does not explicitly state when not to use or suggest alternatives. No exclusions or prerequisite conditions provided.

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

force_pseudo_stateA

Force a CSS pseudo-state (hover, focus, active, visited, focus-within, focus-visible) on an element and read the resulting computed styles. Useful for testing CSS state styles without actual interaction.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector for the element
pseudoStateYesPseudo-state to force
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It explains the core behavior (forcing a state and reading styles) but lacks details on side effects (e.g., whether the state is temporary, if it affects other elements, or cleanup). The apiKey parameter suggests authentication needs, but this is not addressed.

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 sentences: the first states the action and resources, the second states the use case. Every word serves a purpose, and the most important information is front-loaded. No redundant or vague phrasing.

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 the core action well but does not specify the return value format or structure (no output schema). It also does not explain the optional parameters (tabId, apiKey) or their defaults. For a tool that returns computed styles, additional context about the output would be helpful.

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 100% description coverage for all parameters. The description adds overall purpose but does not elaborate on individual parameters beyond what the schema provides. Baseline 3 is appropriate as the schema already documents each parameter.

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 it forces a CSS pseudo-state and reads computed styles. It lists specific pseudo-states and the use case for testing state styles without interaction, distinguishing it from siblings like hover_element and get_computed_styles.

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 implies when to use the tool ('testing CSS state styles without actual interaction'), providing clear context. However, it does not explicitly mention when not to use it or alternatives, though the sibling tools make these evident.

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

get_accessibility_treeB

Get the raw accessibility tree as structured JSON. Companion to browser_snapshot which returns formatted text. Optionally filter to a subtree with a selector.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorNoCSS selector to filter to a subtree
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description only says the tool returns a JSON representation. It does not disclose whether it is read-only, what happens if the selector is invalid, or any side effects. Minimal behavioral context is provided beyond the output format.

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 sentences with no unnecessary words. The purpose is front-loaded, and the companion mention is concise. 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?

Given the complexity of an accessibility tree and the lack of an output schema, the description is too brief. It does not explain the structure of the returned JSON, performance implications, or behavior when no selector matches. More details are needed for full contextual completeness.

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 100% with descriptions for all three parameters. The description adds that a selector can filter a subtree, but does not elaborate on default behavior or error cases. Since the schema already describes the parameters, the baseline of 3 is appropriate.

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 the raw accessibility tree as structured JSON, distinguishing it from the sibling tool 'browser_snapshot' which returns formatted text. It also mentions optional subtree filtering, providing a specific verb and resource.

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 provides context by naming the companion tool 'browser_snapshot' and hints at filtering, but it does not explicitly state when to use this tool versus other accessibility-related siblings like 'run_accessibility_audit' or 'get_shadow_dom_tree'. There are no exclusions or when-not-to-use guidance.

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

get_active_media_queriesB

Check which CSS media queries are currently active and which breakpoints match the current viewport.

ParametersJSON Schema
NameRequiredDescriptionDefault
breakpointsNoCustom breakpoints to test (default: [320, 375, 428, 480, 640, 768, 1024, 1280, 1440, 1920])
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose read-only nature, output format, or any side effects. It is unclear whether the tool affects the page or requires permissions.

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?

One sentence, front-loaded with the core purpose. No unnecessary words or redundancy.

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?

For a tool with 3 optional parameters and no output schema, the description is too brief. It does not mention the return format, that breakpoints have defaults, or if it operates on the active tab's viewport.

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 100%, so baseline is 3. The description adds no extra meaning beyond the schema, such as explaining the breakpoints default behavior or apiKey purpose.

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 verb 'check' and resource 'CSS media queries' and 'breakpoints', clearly distinguishing from sibling tools that deal with computed styles or element states.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like get_computed_styles or when not to use it. The description fails to provide context for appropriate usage.

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

get_all_issuesA

Unified diagnostic tool that returns console errors, network errors, and broken resources in a single call. Use this for a quick health check. For deeper inspection of a specific category, use get_console_logs, get_network_errors, or audit_broken_resources individually. Note: resource inspection requires the CDP debugger to be attached. If Chrome DevTools is open on the tab, resource inspection may be skipped but console/network data will still be returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeConsoleNoInclude console errors and warnings
includeNetworkNoInclude failed network requests
includeResourcesNoInclude broken images, stylesheets, and fonts
clearAfterNoClear logs after retrieval
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses that resource inspection requires CDP debugger and may be skipped if Chrome DevTools is open. However, it does not mention the destructive potential of the 'clearAfter' parameter.

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 adding value: purpose, use case, and behavioral detail. Front-loaded and 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?

Covers overall purpose and key behavioral nuance (CDP requirement). Missing mention of return value format and the clearAfter effect, but sufficient for a quick health check 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 100%, so baseline is 3. The description adds context about the categories and CDP condition, but does not significantly enhance understanding of individual parameters beyond what the schema already provides.

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 it is a unified diagnostic tool returning console errors, network errors, and broken resources. It distinguishes from sibling tools by naming alternatives for deeper inspection.

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 this for a quick health check' and provides when-not-to-use: for deeper inspection of a specific category, use the individual tools. This gives clear guidance.

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

get_computed_stylesC

Get computed CSS styles for an element. Optionally filter to specific properties or query pseudo-elements like ::before and ::after.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector
propertiesNoSpecific CSS properties to query (default: all computed styles)
pseudoElementNoPseudo-element (e.g., "::before", "::after")
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description alone must inform the agent of behavioral traits. It does indicate a read operation, but fails to mention error handling (e.g., missing selector), authentication, or side effects. The agent has insufficient information to anticipate failures or constraints.

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 a single, front-loaded sentence with no redundant information. Every word contributes to the core purpose, making it highly efficient for an agent to parse.

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?

With 5 parameters and no output schema, the description should provide more context on return values or behavior. It does not specify the format of the returned computed styles (e.g., a map of property-value pairs), nor does it address error cases. This leaves significant gaps in understanding the tool's full behavior.

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 100% description coverage, so each parameter is already documented. The description adds marginal value by summarizing the optional filtering and pseudo-element querying, but repeats what the schema conveys. Thus, baseline score of 3 is appropriate.

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 retrieves computed CSS styles for an element, using a specific verb and resource. It mentions optional filtering and pseudo-elements, which helps differentiate from related tools like assert_css_property or get_element_state, though it does not explicitly contrast with siblings.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like assert_css_property or modify_css. The description simply states what it does, without context on prerequisites, limitations, or conditions where another tool would be more appropriate.

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

get_console_logsA

Get all console messages from the page (console.log, console.error, warnings, etc.). Use this to debug JavaScript errors, see what the page is logging, or verify your code is running.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNoFilter logs: "error" for errors only, "warn" for warnings, "all" for everything (default)
clearNoClear all logs after reading so you only get new messages next time
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description bears full transparency burden. It correctly indicates the tool gets console messages but does not disclose whether reading is destructive or if logs persist. The 'clear' parameter hints at one behavior, but the description itself is minimal on side effects.

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 two sentences with zero wasted words. The first sentence states the core functionality, the second provides usage context. Front-loading is optimal.

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 retrieval tool with well-documented schema and no output schema, the description is largely complete. It explains what is retrieved and common use cases. Minor gap: it does not specify the return format (e.g., array of objects with fields), but this is acceptable.

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?

Input schema has 100% coverage with detailed descriptions for all parameters. The description adds no new meaning beyond the schema, e.g., it does not elaborate on the 'level' enum values or 'clear' behavior. Baseline 3 is appropriate given high 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 retrieves console messages, using specific verbs and resource. It distinguishes from sibling tools like get_network_logs and assert_no_console_errors by focusing on console messages.

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 lists several use cases (debugging JS errors, seeing logs, verifying code) but does not explicitly mention when not to use this tool or provide alternatives. However, the context is clear enough for an agent to infer typical usage.

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

get_cookiesB

Get cookies for the current page or a specific URL

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoURL to get cookies for (defaults to current page URL)
nameNoFilter by cookie name
apiKeyNoAPI key for authentication

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are present, so the description must carry the full burden. It does not disclose behavioral traits such as authentication needs (apiKey is in schema but not mentioned), side effects, or format of returned data.

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 a single sentence of 11 words with no extraneous information. It front-loads the action and resource, making it easy to scan.

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?

For a simple retrieval tool with no output schema, the description is adequate but lacks mention of return format, error conditions, or behavior when no cookies exist. It could be more helpful with typical usage examples.

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 100% with descriptions for all parameters. The description adds minimal extra value by clarifying that the url parameter defaults to the current page URL. This is sufficient for a baseline score of 3.

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 action ('get cookies') and the resource ('current page or a specific URL'). It distinguishes the tool from siblings like 'set_cookie' and 'delete_cookie' by specifying retrieval only.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., 'set_cookie', 'delete_cookie') or when not to use it. No context about prerequisites or limitations.

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

get_element_layoutA

Get layout information for a specific element or all visible elements on the page. Returns bounding rectangles, overflow, z-index, position, display, visibility, and opacity.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorNoCSS selector for a specific element
includeAllNoReturn layout for all visible elements (default: false)
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description partially covers behavior by listing returned properties, but it does not disclose potential side effects, performance implications, whether it works on dynamic content, or if it requires page to be fully loaded. The default return behavior when no parameters are provided (likely returns for all visible) is implied but not explicit.

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 two sentences, front-loaded with the primary purpose, and contains no redundant information. Every word contributes to understanding.

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 the basic purpose and return values, but given no output schema, it lacks details on the structure of the return (e.g., an array of objects or single object) and whether results are live or static. It also does not address edge cases like invisible elements or missing elements.

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?

All 4 parameters have descriptions in the schema (100% coverage). The description adds context by explaining the purpose of selector and includeAll in relation to 'specific element or all visible', and lists the returned properties, which helps the agent understand parameter usage 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 action (get), resource (layout information), and scope (specific element or all visible elements). It specifies the returned values (bounding rectangles, etc.), which distinguishes it from sibling tools like get_computed_styles or get_element_state.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like get_computed_styles or get_element_state. No when-not or prerequisite conditions are mentioned, leaving the agent to infer usage context.

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

get_element_stateA

Get the state of an element: exists, visible, enabled, focused, checked, selected, readOnly, required, valid, and more. Essential for verifying element conditions during testing.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector or XPath expression
selectorTypeNoSelector typecss
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.9/5.0
Behavior3/5

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

Without annotations, the description carries the burden of disclosing behavioral traits. It states it gets state but does not clarify if it returns a single object, waits for elements, or throws on failure. Side effects are implied non-existent but not confirmed.

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 sentences with no wasted words. The purpose is front-loaded, and examples of state attributes are listed efficiently. 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?

While input schema is complete, the description lacks details about return format (e.g., whether it returns a boolean per attribute or a structure) and error handling (e.g., behavior when element not found). Could be more informative for a tool with no output schema.

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 100% (all parameters described), but the description adds value by enumerating the state attributes, giving insight into the output. This helps agents understand what the tool returns, partially compensating for the missing output 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 'Get the state of an element' and lists specific attributes (exists, visible, enabled, etc.), making the tool's purpose precise and distinct from sibling tools like assert_element or get_computed_styles.

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 says 'Essential for verifying element conditions during testing,' which implies a use case but does not explicitly distinguish when to use this tool versus alternatives like assert_element (which asserts conditions) or other get_* tools.

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

get_local_storageC

Read localStorage entries for the current page

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNoSpecific key to read (returns all if omitted)
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description bears full responsibility for behavioral disclosure. It only states the basic read operation without discussing side effects, permissions, or limitations (e.g., storage is per-origin, authentication needed via apiKey).

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 concise sentence that communicates the core purpose immediately. However, it is perhaps too brief; adding a few more details would improve completeness without sacrificing conciseness.

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 lack of annotations and output schema, the description is insufficiently complete. It does not explain how tabId or apiKey affect behavior, nor any constraints or return format, leaving gaps for the agent.

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 100%, so the schema already documents all parameters. The description adds no additional meaning beyond what is in the schema, resulting in a neutral baseline score.

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 verb 'Read' and resource 'localStorage entries', and specifies the scope ('for the current page'). However, it could be more precise by indicating that the operation can target a specific tab via the tabId parameter, which adds minor ambiguity.

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

Usage Guidelines2/5

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

No guidelines are provided about when to use this tool versus siblings like get_session_storage or set_local_storage. The description does not mention any context for appropriate usage, requiring the agent to infer from the name alone.

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

get_network_errorsA

Get only failed/errored network requests for the tab. Useful for debugging resource loading issues.

ParametersJSON Schema
NameRequiredDescriptionDefault
clearNoClear network logs after retrieving
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A4/5.0
Behavior3/5

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

No annotations are present, so the description carries the full burden. It accurately states the tool retrieves only errored requests, but does not mention the 'clear' parameter's effect of clearing logs after retrieval, nor authentication requirements. Adequate but could disclose more side effects.

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 clear, well-structured sentences with front-loaded purpose and no extraneous words. 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 is simple with three parameters fully described in the schema and no output schema. The description covers the core purpose and usage context, but could mention the return format or behavior of the 'clear' parameter explicitly.

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 100%, so the schema already documents all parameters. The description adds no additional meaning beyond what the schema provides, earning the baseline score of 3.

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 it retrieves only failed/errored network requests, using specific verb 'Get' and resource 'network requests', and distinguishes from sibling tools like 'get_network_logs' which likely return all requests.

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 'Useful for debugging resource loading issues', providing clear context for when to use. It does not mention when not to use or alternatives, but the purpose implies that for successful requests one would use a different tool.

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

get_network_logsA

Get network request/response logs collected since the debugger was attached. Optionally filter by URL pattern, method, status code, or resource type.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoFilter criteria for network logs
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It notes logs are collected since attachment, a key behavioral detail, but omits potential side effects (e.g., logs preserved across calls?), permissions, or limitations. Adequate but minimal.

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 sentences with no waste. The first sentence conveys the core action and scope, the second lists key filter options. Information is front-loaded and efficiently packaged.

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 provides enough context for a retrieval tool: sources (logs since attached) and filtering options. Missing output format details, but siblings like get_network_errors also lack output schemas, suggesting a consistent pattern. Slightly incomplete for a new agent.

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 100% with clear parameter descriptions. The description mentions filter fields (URL pattern, method, status code, resource type), which maps to the filter object, but adds no new meaning beyond what the schema already provides. Baseline of 3 is appropriate.

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 network request/response logs collected since the debugger attached, with optional filters. It distinguishes from siblings like get_network_errors (errors only) and get_network_request_detail (single request detail).

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 implies usage for debugging network activity but does not explicitly state when to use this tool versus alternatives like get_network_errors or clear_network_logs. No exclusion criteria or context provided.

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

get_network_request_detailA

Get detailed information about a specific network request, including headers and optionally the response body

ParametersJSON Schema
NameRequiredDescriptionDefault
requestIdYesThe request ID from get_network_logs
includeBodyNoInclude response body (default: false)
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication

TDQS

A3.5/5.0
Behavior3/5

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

Description adds that the tool returns headers and optionally the response body, but does not disclose important behavioral traits such as authentication requirement (apiKey), potential volatility of network requests, or whether the tab must be active. Given no annotations, more transparency would be beneficial.

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?

Single concise sentence of 15 words, front-loaded with key information. 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?

With 4 parameters, no output schema, and no annotations, the description is adequate but incomplete. It mentions headers and body but omits other potential return fields (status, timing). Also does not address required apiKey or tabId, leaving gaps for agent understanding.

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 100% with all parameters described. The description adds no additional parameter meaning beyond the schema, mentioning 'headers' and 'response body' which correspond to the requestId and includeBody parameters, but no new semantics.

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 verb 'Get' and resource 'detailed information about a specific network request', including headers and optionally response body. It effectively distinguishes from siblings like 'get_network_logs' (lists all requests) and 'assert_network_request_made' (checks existence).

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

Usage Guidelines2/5

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

No explicit guidance on when or when not to use this tool compared to alternatives. For instance, it does not contrast with 'get_network_logs' or 'get_network_errors'. The description implies its use but lacks direct usage context.

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

get_performance_metricsA

Get page load performance metrics: navigation timing, paint metrics (FCP), LCP, CLS, FID, and memory usage.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.7/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It lists returned metrics but does not disclose side effects, prerequisites (e.g., page must be loaded), or whether calling it affects performance. Basic but acceptable.

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?

Single sentence, front-loaded with the action and key metrics. No redundant information; every word adds value. Excellent conciseness.

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 it lists metrics, it lacks context on return format or interpretation. With no output schema, more detail on how results are structured would be helpful. Also, sibling tools are not differentiated, but overall adequate for a simple retrieval 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 100% with clear descriptions for both 'tabId' and 'apiKey'. The description adds no extra meaning beyond the schema, so baseline score of 3 is appropriate.

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 'Get page load performance metrics' and lists specific metrics (FCP, LCP, CLS, FID, memory usage), clearly distinguishing it from assertion tools like 'assert_page_load_time' by focusing on data retrieval.

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?

No explicit guidance on when to use this tool versus siblings like 'get_network_logs' or 'assert_page_load_time'. Usage is only implied through the description of what it returns, missing context on when it's appropriate.

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

get_session_storageA

Read sessionStorage entries for the current page

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNoSpecific key to read (returns all if omitted)
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication

TDQS

A3.5/5.0
Behavior3/5

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

Description implies read-only, non-destructive operation, but does not disclose authentication requirements or side effects. With no annotations, description carries the burden but is minimal.

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?

Single sentence, no unnecessary words, front-loaded with verb and resource.

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?

No output schema, and description does not explain return format (e.g., object with keys/values). For a read tool, return value documentation is important.

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 100%, so schema already documents parameters. Description adds no extra meaning beyond the 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?

Description clearly states verb 'Read', resource 'sessionStorage entries', and scope 'for the current page'. Distinguishes from sibling tools like set_session_storage and remove_session_storage.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like get_local_storage or set_session_storage. No context on prerequisites or exclusions.

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

get_shadow_dom_treeB

Return the full shadow DOM tree structure as JSON for a given host element.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostSelectorYesCSS selector for the shadow host element
maxDepthNoMaximum depth to traverse
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavior. It only states return type and operation, not what happens on missing element, multiple matches, or authentication requirements. Lacks depth.

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?

Single sentence, front-loaded with purpose. Concise but could benefit from a bit more detail. No wasted words.

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?

No output schema; description does not describe the return structure or format. Does not differentiate from sibling tools or cover edge cases. Incomplete for a 4-parameter 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?

Input schema has 100% description coverage, so baseline is 3. The description adds no extra meaning beyond the schema, e.g., explaining default maxDepth or tabId fallback.

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 returns the full shadow DOM tree as JSON for a given host element, using specific verbs and resource. It distinguishes from siblings like query_shadow_dom by specifying 'full' and 'JSON'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as query_shadow_dom or deep_query_shadow_dom. No prerequisites or exclusions mentioned.

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

get_tab_orderA

Get a static list of all focusable elements on the page in tab order, with unique CSS selectors and visibility flags. Use this for a one-time snapshot of the tab order. For interactive focus path recording (simulating Tab presses and tracking where focus lands), use record_focus_path instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It indicates the tool returns a static list, but does not disclose potential side effects (none expected) or error conditions. Adequate but could be more explicit about read-only nature and scope of elements.

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 sentences, front-loaded with purpose, then usage guidance. No extraneous 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?

No output schema, but description adequately explains what the tool returns (list of elements with CSS selectors and visibility flags). Sufficient for a simple retrieval tool without annotations.

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 100%; both parameters (tabId, apiKey) are described in the schema. Description adds no extra meaning beyond what the schema already provides.

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 static list of focusable elements with CSS selectors and visibility flags, and explicitly distinguishes it from the sibling tool 'record_focus_path'.

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' (one-time snapshot) and 'when not to use' (for interactive recording, use record_focus_path instead).

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

get_tab_stateA

Capture URL, title, and a DOM hash for quick tab state comparison. Useful for verifying cross-tab state sync.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the burden of disclosing behavior. It states what is captured but does not explicitly state it is read-only or that it requires a valid tab. The lack of side-effect or permission info is acceptable for a simple read operation but could be more explicit.

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 sentences, no wasted words. The first sentence states functionality, the second provides context. Efficient and easy to parse.

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 lack of output schema, the description adequately covers what the tool does. It could benefit from mentioning the return format or structure, but overall it is sufficient for an agent to understand its purpose and relationship to siblings.

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 100% with clear parameter descriptions. The description adds no additional parameter meaning beyond the schema. Baseline score of 3 is appropriate as the schema already provides sufficient semantic detail.

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 captures URL, title, and DOM hash for tab state comparison. It also specifies the use case of verifying cross-tab state sync, which distinguishes it from sibling tools like get_element_state or snapshot_page_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?

The description provides a clear usage context (verifying cross-tab state sync) and implies when to use. However, it does not explicitly mention when not to use or suggest alternative tools, leaving room for improvement.

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

get_tooltip_textA

Hover over an element and extract any tooltip text. Checks title attribute, aria-describedby, aria-labelledby, CSS tooltips, and custom tooltip components.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesElement or position to hover over
waitForTooltipNoTime to wait after hover for tooltip animations (ms)
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool checks multiple tooltip sources (title, aria, CSS, custom), which adds some transparency. However, it does not specify the return format (e.g., string, null), error handling, or potential side effects like triggering events or modifying the page. The disclosure is partial.

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 sentence that efficiently conveys the core action and the list of tooltip sources. It avoids unnecessary words and is front-loaded with the verb 'Hover over an element and extract any tooltip text.' However, it could be slightly more structured (e.g., listing sources in a bullet) without being verbose, but overall it is well-optimized.

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 tool has moderate complexity (4 parameters, nested target object, no output schema). The description covers the hover action and sources, but it does not explain the return value (e.g., does it return a string or null?), error cases (e.g., if no tooltip found), or edge cases like overlapping tooltips. Given no output schema, the description should provide more context on what the agent receives.

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 100%, with all parameters already described in the input schema. The tool description adds no additional parameter semantics beyond what the schema provides. For example, waitForTooltip's schema already explains the timeout purpose. The description does not clarify parameter behavior or constraints further, so baseline score of 3 applies.

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 action (hover and extract tooltip text) and the specific sources it checks (title attribute, aria-describedby, aria-labelledby, CSS tooltips, custom components). This distinguishes it from sibling tools like hover_element, which only hovers without extraction, and get_element_state, which may not extract tooltip content.

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 implies usage when tooltip text extraction is needed after hovering, but it does not explicitly state when to use this tool versus alternatives like hover_element or find_element. No exclusions or alternative recommendations are provided, leaving the agent to infer context from sibling tool names.

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

get_viewport_infoB

Get current viewport dimensions, device pixel ratio, viewport meta tag, screen info, and user agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are present, so the description carries full responsibility for behavioral disclosure. It only indicates a read operation, but does not mention permissions, side effects, or constraints beyond 'get'.

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?

Single sentence, no redundant words, efficiently conveys the tool's purpose without fluff.

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 required parameters, no output schema, and moderate complexity (multiple data points), the description lists outputs but omits the response structure. Adequate but not fully 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 100%, with both parameters described in the schema. The description adds no additional meaning beyond listing outputs, meeting the baseline for high 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 verb 'Get' and the resource 'current viewport dimensions, device pixel ratio, viewport meta tag, screen info, and user agent', distinguishing it from sibling tools like get_element_layout or get_performance_metrics.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., resize_viewport, emulate_device, get_active_media_queries). The description lacks context for selection.

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

hover_and_inspectA

Hover over an element and capture any resulting DOM or style changes. Useful for testing dropdown menus, tooltips, and hover effects.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesElement or position to hover over
captureChangesNoCapture and return DOM/style changes after hover
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.9/5.0
Behavior3/5

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

The description discloses that the tool performs a hover and then captures changes, but it does not detail potential side effects, timing, or authentication requirements. With no annotations, more behavioral context would be beneficial.

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 sentences, highly concise, and front-loaded with the main purpose. Every sentence adds value 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?

The description gives the overall purpose and usage examples, but does not explain what format the captured changes are returned in. Since there is no output schema, more detail on the return value would improve completeness.

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 100% description coverage, so the description adds little extra parameter meaning beyond the schema. The usage examples provide some context for the target parameter, but not enough to raise the 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 action ('Hover over an element and capture any resulting DOM or style changes') and the specific use cases, distinguishing it from sibling tools like hover_element that only hover without capturing changes.

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 concrete usage scenarios ('testing dropdown menus, tooltips, and hover effects'), guiding when to use the tool. It does not explicitly mention when not to use it, 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.

hover_elementA

Move mouse over an element without clicking. Use this to reveal dropdown menus, tooltips, hover-only buttons, or to trigger CSS :hover states.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesElement or position to hover over
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A4.2/5.0
Behavior4/5

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

Since no annotations are provided, the description carries the full burden. It accurately describes the behavior as moving over without clicking and triggering CSS hover states. It could have mentioned that no mutation occurs, but overall clear.

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 sentences, front-loaded with the action and followed by use cases. No redundant words. Excellent conciseness.

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 hover tool with no output schema, the description covers purpose, usage, and parameters adequately. Could mention return value or behavior upon failure, but not essential.

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 100%, so the parameters are well-documented. The description adds the context of use cases but does not enhance parameter meaning beyond what's in the schema. Baseline 3 is appropriate.

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 action (move mouse over an element without clicking) and specific use cases (reveal dropdown menus, tooltips, hover-only buttons, trigger CSS :hover states). This distinguishes it well from sibling tools like click_element or double_tap.

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 scenarios for when to use the tool (revealing menus, tooltips, etc.), giving clear context. However, it does not explicitly exclude cases or mention alternatives, which would have made it a 5.

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

input_and_typeA

One-stop tool for filling form fields. Automatically clicks the input, clears existing text, types your text, and optionally submits with Enter. Use this for search boxes, login forms, registration fields, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector or XPath to the input/textarea element
selectorTypeNoSelector type: "css" (default) or "xpath"
textYesText to type into the input field
clearFirstNoClear existing text before typing (default: true). Set to false to append.
submitNoPress Enter automatically after typing to submit forms
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.9/5.0
Behavior3/5

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

Without annotations, the description carries full burden for behavioral disclosure. It accurately describes the main sequence (click, clear, type, submit) and default clear behavior, but does not cover edge cases (e.g., element not found, hidden elements, error handling) or specify whether it scrolls to the element.

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 (two sentences), front-loaded with the core purpose, and includes essential details without unnecessary words. 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 complexity (7 parameters, no output schema, no annotations), the description is minimally adequate. It explains what the tool does but omits details like return value, waiting behavior, or error conditions. The high schema coverage compensates partially.

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 100% coverage, with each parameter described. The tool description adds context by summarizing the overall workflow, but it does not provide additional meaning beyond the schema for individual parameters. Baseline 3 is appropriate.

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 as a 'one-stop tool for filling form fields' and enumerates the automated steps (click, clear, type, optionally submit). It provides explicit use cases like search boxes and login forms, distinguishing it from simpler siblings like type_text or click_element.

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 suggests appropriate use cases ('search boxes, login forms, registration fields') but does not explicitly specify when not to use this tool or recommend alternative tools for simpler actions. This is clear enough for most agents but lacks exclusion guidance.

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

intercept_requestsB

Intercept and modify or block network requests. Use block to abort requests, modify to return custom responses, or clear to remove all intercepts.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesBlock requests, modify responses, allow all, or clear all intercepts
urlPatternNoURL pattern to match (substring)
methodNoHTTP method to match
statusCodeNoOverride response status code (for modify)
responseBodyNoOverride response body (for modify)
responseHeadersNoOverride response headers
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the behavioral disclosure burden. It does not mention important traits like whether intercepts persist across page loads, affect other tabs, or require specific permissions. The side effects of each action are only briefly described.

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 sentences with no filler. Front-loaded with the core purpose, followed by action-specific guidance. 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?

For an 8-parameter tool with no annotations and no output schema, the description is too minimal. It lacks explanation of interception lifecycle, persistence, tab targeting, API key usage, and interaction with other network tools.

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?

Although input schema has 100% description coverage, the description omits the 'allow' action and does not add meaning beyond the schema for parameters like urlPattern or method. It fails to explain how parameters interact with the action.

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 intercepts and modifies or blocks network requests, listing specific actions (block, modify, clear) and their purposes. This distinguishes it from sibling tools that focus on assertions, navigation, or element interaction.

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 implies usage for network request control but does not explicitly state when to use this tool versus related siblings like assert_network_request_made or clear_network_logs. No when-not-to-use guidance is provided.

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

list_tabsA

Get a list of ALL open browser tabs. Use this to find tab IDs, see what pages are open, or locate a specific website you need to interact with. Returns tab ID, URL, title, and active status.

ParametersJSON Schema
NameRequiredDescriptionDefault
apiKeyNoAPI key for authentication if enabled

TDQS

A4.1/5.0
Behavior3/5

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

No annotations provided; description covers key behavioral traits (lists returned data) but lacks details on side effects, authentication (apiKey parameter not referenced), or rate limits. Adequate for a simple read operation.

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 adding value. No redundancy. Front-loaded with key action and use cases.

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?

Tool is simple (0 required params, no output schema); description adequately explains what it does and what it returns, compensating for lack of output schema by listing fields. Sibling tools are numerous but context is sufficient.

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 100% with one parameter (apiKey) fully described in schema. Description adds no additional meaning for this parameter, so baseline score applies.

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 it retrieves all open browser tabs, listing returned fields (tab ID, URL, title, active status). Distinguishes from sibling tools like get_tab_order, get_tab_state, select_tab, and close_tab by focusing on enumeration.

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 tells when to use (find tab IDs, see pages, locate website) and implicitly positions it as a prerequisite for tab-specific actions, but does not mention 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.

long_pressB

Simulate long-press at coordinates or on an element. Useful for context menus or selection.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesElement or position to long-press
durationNoPress duration in ms
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It states it simulates a long-press but does not disclose whether it triggers events, waits for UI responses, or has side effects. This lack of behavioral detail is a significant gap.

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 a single, concise sentence followed by a brief usage hint. Every word serves a purpose with no redundancy or fluff.

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?

No output schema exists, yet the description does not explain what the tool returns (e.g., success indicator, error handling, or any post-action behavior). For a tool in a complex automation suite, this omission leaves the agent unprepared for expected outcomes.

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 covers 100% of parameters with descriptions. The tool description adds minimal value beyond the schema, only reiterating that the target can be coordinates or an element. Baseline 3 is appropriate.

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 action ('simulate long-press'), the target ('at coordinates or on an element'), and the use case ('context menus or selection'), effectively distinguishing it from sibling tools like click_element or double_tap.

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 the use case ('context menus or selection') but does not explicitly contrast with alternative tools or provide when-not-to-use guidance, leaving usage context implied rather than explicit.

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

modify_cssB

Modify CSS styles of elements on the page

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector of the element(s) to style
stylesYesObject of CSS property-value pairs (e.g., {"color": "red", "display": "none"})
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It only says 'modify' without detailing persistence, scope, or side effects.

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 concise sentence with no redundancy. However, some behavioral details are missing, so not perfect.

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?

For a simple mutation tool, the description covers basic purpose but lacks usage context and behavioral details. It's adequate but not comprehensive given the number of sibling tools.

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 100% and descriptions are adequate. The description adds no extra meaning beyond what's in the input schema, meeting baseline expectations.

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 action (modify CSS styles) and resource (elements on the page). It effectively distinguishes from siblings like modify_html and get_computed_styles.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool vs alternatives (e.g., execute_javascript, modify_html), no prerequisites or context.

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

modify_htmlB

Modify DOM elements on the page (set HTML, attributes, or remove elements)

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector of the element to modify
actionYesThe modification action to perform
valueNoNew HTML content or attribute value
attributeNameNoAttribute name (for setAttribute/removeAttribute)
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavioral traits. It only says 'modify DOM elements' without detailing side effects, permanence, or selector requirements.

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?

Single sentence, concise and front-loaded. No wasted words.

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?

No output schema, no annotations. Description fails to explain return value, error behavior, or prerequisites. Incomplete for a tool with 6 parameters and complex actions.

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 100%, so baseline is 3. Description lists action types but does not add semantics beyond schema (e.g., when to use setOuterHTML vs setInnerHTML, or that value is required for some actions).

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 modifies DOM elements and lists specific actions (set HTML, attributes, remove elements). It distinguishes from siblings like modify_css.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus other DOM-related tools like click_element, execute_javascript, or modify_css. Missing context for appropriate usage.

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

monitor_console_eventsB

Real-time console event monitoring. Start monitoring, get events since last read, or stop. Filter by log level.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesStart, stop, or get events since last read
levelsNoLog levels to capture
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It mentions real-time monitoring but omits details like whether starting clears previous events, how long monitoring persists, or if stopping affects the console state. This lack of behavioral context makes it insufficient for an agent to understand side effects.

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 two sentences, front-loaded with the core purpose, and wastes no words. 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?

Given 4 parameters and no output schema, the description should cover return value format, behavior for 'get' (e.g., whether it returns only new events since last read), and life cycle of monitoring. It lacks these details, making it incomplete for an agent to use reliably.

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 100% input schema coverage, the description adds little beyond the schema. It reiterates filtering by log level and lists actions, but does not provide extra meaning like format constraints or interaction between parameters (e.g., levels default). Baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool performs real-time console event monitoring with specific actions (start, stop, get) and filtering by log level. This distinguishes it from sibling tools like get_console_logs (which likely retrieves past logs) and assert_no_console_errors (an assertion).

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 implies usage for real-time monitoring but does not explicitly state when to use this tool versus alternatives like get_console_logs or assert_no_console_errors. No exclusions or scenario guidance is provided.

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

monitor_storage_eventsA

Monitor localStorage and sessionStorage changes. IMPORTANT: Due to the Web Storage API spec, storage events only fire in OTHER tabs — same-tab changes are NOT captured. Start monitoring, get recorded events (from all tabs of same origin), or stop monitoring.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesStart monitoring, stop, or get recorded events
storageTypeNoWhich storage type to monitorboth
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, description covers key behavioral trait: cross-tab limitation. Also notes that events are recorded. However, does not mention potential side effects (e.g., event listeners added) or permissions needed.

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 sentences with a crucial warning front-loaded. Every sentence provides value; 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?

Given 4 parameters, no output schema, and no annotations, description covers the core behavior and critical cross-tab limitation. Lacks specifics on output format for 'get' action but sufficient for agent to understand usage.

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 100%, so baseline 3. Description adds minimal extra meaning beyond schema: it mentions action and storageType but does not elaborate on tabId or apiKey behavior beyond 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?

Description clearly states it monitors localStorage and sessionStorage changes, with specific verb 'Monitor' and resource 'storage events'. It distinguishes from siblings like get_local_storage by emphasizing event-based cross-tab monitoring.

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 important usage guidance: storage events only fire in other tabs, not same-tab. Lists actions (start, stop, get) but does not explicitly compare to alternatives like polling get_local_storage for same-tab changes.

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

new_tabA

Open a brand new browser tab. You can optionally provide a URL to navigate to immediately. Returns the new tab ID so you can interact with it.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoOptional URL to load in the new tab (e.g., "https://google.com")
apiKeyNoAPI key for authentication if enabled

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries behavioral burden. It states creation and return of ID but does not mention side effects like focus changes or limitations. Adequate but not detailed.

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 sentences, front-loaded with verb, no fluff. 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?

Low complexity tool with no output schema. Description covers purpose, parameters, and return value. Sufficiently complete for its simplicity.

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 100%, so baseline 3. The description adds context about optional URL and return value but adds little beyond schema which already has descriptions for both 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 states it opens a new browser tab and optionally navigates to a URL, with a return of tab ID. This distinguishes it from other tab-related siblings like close_tab, list_tabs, and select_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 implies when to use (need a new tab, optionally navigate) but does not explicitly state when not to use or alternatives. It is clear enough for a simple tool.

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

pinchA

Simulate pinch zoom with two touch points converging or diverging. Positive startRadius > endRadius = pinch in (zoom out). Negative = pinch out (zoom in).

ParametersJSON Schema
NameRequiredDescriptionDefault
centerYesCenter point of the pinch gesture
startRadiusNoInitial distance of fingers from center
endRadiusNoFinal distance of fingers from center
durationNoPinch duration in ms
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It explains the zoom direction but does not mention side effects (e.g., does it trigger browser zoom?), coordinate validity, or step increments. More detail on execution behavior is needed.

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 sentences with key information front-loaded: 'Simulate pinch zoom' and direction logic. No wasted words, structure is optimal.

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 (gesture simulation with two points) and no output schema, the description covers core logic. However, it could mention execution details like step size or how the gesture is simulated over duration, though duration is in schema.

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 100%, so baseline is 3. The description adds value by explaining the relationship between startRadius and endRadius for direction, which clarifies parameter semantics beyond 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 simulates pinch zoom with two touch points converging or diverging. It specifies the direction of pinch in/out based on radius comparison, distinguishing it from other gesture tools like swipe or double_tap.

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 implies usage for pinch zoom gestures but does not explicitly state when to use it versus alternatives or provide exclusions. It lacks guidance on context or prerequisites.

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

press_keyA

Press a single keyboard key with optional modifiers. Use this for special keys: Enter, Tab, Escape, arrows, function keys, or keyboard shortcuts. Does NOT type text - use type_text for that.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesKey name: "Enter", "Tab", "Escape", "Backspace", "ArrowUp/Down/Left/Right", "a", "F1-F12"
modifiersNoModifier keys to hold (e.g., ["Control"] for Ctrl+C). Use Meta for Command on Mac.
selectorNoCSS/XPath selector to focus before pressing key - use this to avoid needing to click first
selectorTypeNoSelector type: "css" (default) or "xpath"
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It describes the action but does not detail side effects, error handling, or behavior when key fails. It is adequate but could be more transparent about execution details.

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 two sentences, front-loaded with the main action, and includes essential guidance. Every sentence adds value with no 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?

For a 6-parameter tool with no output schema, the description covers the core action but does not explain the purpose of selector, tabId, or apiKey parameters. The schema covers them, but additional context would improve completeness.

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 100%, so baseline is 3. The description adds minimal value beyond the schema, only reinforcing that keys are individual and not text. It does not clarify optional parameters like selector or tabId.

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 'press a single keyboard key with optional modifiers' and distinguishes it from typing text by referencing sibling tool 'type_text'. It lists specific special keys, making the purpose unambiguous.

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

Usage Guidelines5/5

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

The description explicitly says when to use the tool (for special keys, keyboard shortcuts) and when not to use it ('Does NOT type text - use type_text for that'), providing 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.

query_shadow_domC

Query an element inside a shadow DOM root. Provide the host element selector and the inner selector within the shadow root.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostSelectorYesCSS selector for the shadow host element
innerSelectorYesCSS selector within the shadow root
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

C2.9/5.0
Behavior2/5

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

Annotations are absent, so the description should disclose behavioral traits. It does not state whether the operation is read-only, has side effects, or requires permissions. Only implies a query without specifying effects.

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 short sentences, front-loaded with purpose. 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?

Lacks information on return value, error handling, and scope (e.g., depth of shadow root query) especially given the absence of an output schema and presence of similar sibling tools.

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 100%, so baseline is 3. The description adds minimal extra meaning beyond the schema's parameter descriptions, primarily rephrasing the required inputs.

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 action ('Query an element inside a shadow DOM root') and specifies the required inputs, but does not differentiate from the sibling tool 'deep_query_shadow_dom'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs. alternatives like deep_query_shadow_dom or get_shadow_dom_tree. The description only instructs what to provide, not the context of use.

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

read_page_htmlA

Read the full HTML source of the current page

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication

TDQS

A3.6/5.0
Behavior3/5

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

The description implies a non-destructive read operation but lacks details on authentication requirements, error handling, or behavior for invalid tab IDs. With no annotations, the description carries full burden but provides minimal 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.

Conciseness5/5

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

The single-sentence description is extremely concise with no wasted words. It efficiently conveys the tool's purpose.

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 read operation with no output schema, the description is mostly complete. It could optionally mention that the tool returns the HTML source, but the tool name and description make this implicit.

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 100%, so the schema already documents both parameters. The description adds no additional meaning beyond what the schema provides.

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 'Read', the resource 'full HTML source', and the scope 'current page'. It distinguishes this tool from siblings like read_page_resources, read_scripts, and read_stylesheets which read other resources.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool instead of alternatives. There is no mention of prerequisites, context, or when not to use it.

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

read_page_resourcesA

List all resources loaded on the page (images, fonts, scripts, stylesheets) with their URLs and sizes

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by resource type (default: all)
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication

TDQS

A3.5/5.0
Behavior3/5

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

No annotations provided. Description implies a read-only operation (listing resources), but does not disclose any limitations, permissions, or side effects. It adds minimal behavioral context beyond the obvious 'list' action.

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?

Single sentence, front-loaded with verb and object. No wasted words, succinctly conveys the tool's function.

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?

No output schema; description hints at return data (URLs and sizes) but lacks structural details. No mention of error handling or edge cases. Adequate for a simple list tool but could be more 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?

All parameters have schema descriptions (100% coverage). The tool description mentions 'with their URLs and sizes' which hints at output but adds no extra meaning for the parameters themselves. Baseline 3 is appropriate.

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 lists all resources (images, fonts, scripts, stylesheets) with URLs and sizes. It differentiates from sibling tools like read_scripts (only scripts) or read_stylesheets (only stylesheets) by being broader and offering a type filter.

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

Usage Guidelines2/5

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

No explicit guidance on when to use read_page_resources vs. more specific tools like read_scripts or read_stylesheets. The description implies it's for all resources, but does not mention when not to use it or that for only scripts, one should use the sibling tool.

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

read_scriptsB

Read JavaScript sources loaded on the page. Returns all scripts or a specific one by URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoSpecific script URL to read (returns all if omitted)
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It mentions a read operation but does not address limitations (e.g., cross-origin restrictions), whether it returns runtime state or static source, or side effects. Essential safety context is missing.

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?

Two short sentences efficiently convey the core action and return behavior. No unnecessary information, though it could be structured more compactly.

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?

Without an output schema, the description should explain the return format or structure. It only says 'returns all scripts or a specific one' without indicating whether the response includes source code, metadata, or how to handle missing scripts. Errors and edge cases are not addressed.

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 100%, so baseline is 3. The description mainly restates the URL parameter behavior already covered in the schema, adding no new semantics for tabId or apiKey.

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 reads JavaScript sources from the page, with explicit specification of retrieving all scripts or filtering by URL. This distinguishes it from sibling tools like read_stylesheets or read_page_html.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as execute_javascript or get_network_request_detail. No conditions for use or exclusions are provided.

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

read_stylesheetsA

Read CSS stylesheets loaded on the page. Returns all stylesheets or a specific one by URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoSpecific stylesheet URL to read (returns all if omitted)
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication

TDQS

A3.7/5.0
Behavior3/5

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

No annotations exist, so description carries full burden. It discloses a non-destructive read operation but omits details on missing URLs, permissions, or authentication requirements for the apiKey parameter.

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?

Single sentence, front-loaded, every word contributes to meaning.

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?

Without an output schema, the description lacks detail on return format (e.g., array of objects with specific fields). Adequate for a simple read, but misses some context.

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?

All parameters have schema descriptions (100% coverage). The description adds minimal value by restating the url parameter's behavior; no new meaning for tabId or apiKey.

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 reading CSS stylesheets, a specific resource, and distinguishes from siblings like modify_css and read_scripts.

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 no explicit guidance on when to use this tool vs alternatives (e.g., get_computed_styles, modify_css). Usage is implied by the action, but no exclusions or context.

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

record_focus_pathA

Simulate Tab key presses N times and record where focus lands at each step, flagging invisible or hidden focus targets. This is an interactive alternative to get_tab_order — use record_focus_path when you want to verify the actual focus behavior during keyboard navigation, and get_tab_order when you just need a static list.

ParametersJSON Schema
NameRequiredDescriptionDefault
stepsNoNumber of Tab presses to simulate
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A4.4/5.0
Behavior4/5

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

The description discloses key behaviors: it simulates Tab presses, records focus landing, and flags invisible/hidden targets. However, it does not mention whether focus is restored after simulation or if there are side effects on the page state, but overall provides sufficient transparency for an interactive tool.

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 two sentences long, with no unnecessary words. The first sentence states the action, the second provides usage context. It is 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?

The description explains the output (record of focus positions with flags) and differentiates from sibling. However, it does not specify the exact format or data structure of the record, which would be helpful given no output schema. Overall, it is fairly complete for a tool of this complexity.

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 already has 100% coverage with clear descriptions for all three parameters. The tool description only adds the mention of 'N times' to reinforce the steps parameter, which does not significantly 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 'Simulate Tab key presses N times and record where focus lands', with a specific verb and resource. It also explicitly distinguishes from sibling tool 'get_tab_order' by noting it is an interactive alternative.

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 guidance: 'use record_focus_path when you want to verify the actual focus behavior during keyboard navigation, and get_tab_order when you just need a static list.' This clearly states when to use this tool versus its alternative.

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

record_performance_timelineB

Start, stop, or get a performance timeline recording. Records memory, LCP, CLS at intervals during a user sequence.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesStart, stop, or get the timeline
intervalNoSampling interval in ms
durationNoMaximum recording duration in ms
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

B3.4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It states what is recorded (memory, LCP, CLS) but omits side effects (e.g., does 'stop' clear data?) and does not disclose behavior like overlapping recordings or automatic stop on duration. 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?

Two efficient sentences. First sentence summarizes the three actions, second adds recorded metrics. No filler or redundancy.

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?

Missing critical context: return value for 'get' action is unspecified, and the sequential dependency (start before stop/get) is not mentioned. For a stateful tool without output schema, the description should clarify what the agent can expect from each action.

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 100%, so description does not need to detail parameters. However, it adds no extra context beyond the schema (e.g., explaining LCP/CLS acronyms or how interval/duration affect data collection). Baseline 3 is appropriate.

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 manages performance timeline recordings with three actions (start, stop, get) and specifies it records memory, LCP, CLS at intervals. This differentiates it from sibling get_performance_metrics which likely returns static metrics.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like get_performance_metrics. The description does not mention prerequisites or order of actions (e.g., start before stop/get).

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

remove_local_storageB

Remove a localStorage entry from the current page

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesStorage key to remove
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description alone must disclose behavioral traits. It only states the basic action without mentioning side effects, permissions required, or behavior when the key does not exist, leaving significant gaps.

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, front-loaded sentence with no fluff. It is efficient, though it could benefit from additional context without sacrificing conciseness.

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?

For a simple tool with full schema coverage and no output schema, the description is minimally adequate. However, it lacks behavioral details (e.g., permanence, error handling) that would make it complete given the absence of annotations.

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 covers all parameters with descriptions (100% coverage). The description adds no additional meaning beyond the schema, warranting the baseline score of 3.

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 removes a localStorage entry from the current page. The verb 'remove' and resource 'localStorage entry' are specific, and it is easily distinguishable from sibling tools like 'set_local_storage' and 'remove_session_storage'.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention when not to use it, nor any prerequisites or context for when removal is appropriate, relying solely on the tool name for differentiation.

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

remove_session_storageB

Remove a sessionStorage entry from the current page

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesStorage key to remove
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must bear full burden. It states removal of a sessionStorage entry but does not disclose side effects, error behavior (e.g., missing key), or authentication requirements (apiKey is present but unexplained).

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 a single, focused sentence with no unnecessary words. It is appropriately front-loaded and concise.

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?

For a simple removal operation, the description is reasonably complete. However, it lacks mention of return values (success/failure) or potential side effects, which would improve completeness. No output schema is provided.

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 100%, so the parameter meanings are already clear from the schema. The description adds no additional semantic value beyond what the schema provides, earning a baseline score of 3.

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 verb 'Remove' and the resource 'sessionStorage entry from the current page'. It is specific about the action and target, but does not differentiate from sibling tools like 'remove_local_storage', which share a similar pattern.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., 'remove_local_storage', 'set_session_storage'). The description only states the action, without context for selection.

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

replay_macroB

Replay a recorded macro with optional speed multiplier. Events are replayed with original timing preserved.

ParametersJSON Schema
NameRequiredDescriptionDefault
eventsYesRecorded events from stop_recording_macro
speedNoSpeed multiplier (1.0 = original speed, 2.0 = twice as fast)
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It mentions that events are replayed with original timing preserved, but omits potential side effects (e.g., page changes from simulated interactions), authentication needs (despite apiKey parameter), or error scenarios.

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 sentences, no redundant information. The description is brief and front-loaded with the core action.

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 lacks details about return values, error handling, and the tool's impact on page state. Given the absence of an output schema, more context would be beneficial for an agent.

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 100%, so the schema already explains each parameter. The description adds minimal value beyond stating the overall behavior; it does not elaborate on parameter usage or constraints.

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 that the tool replays a recorded macro with an optional speed multiplier, and that original timing is preserved. This distinguishes it from recording-related siblings like start_recording_macro and stop_recording_macro.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives, when not to use it, or any prerequisites. The description only states functionality without context for selection.

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

reset_viewportB

Reset viewport emulation to the browser's default size and user agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

B3.3/5.0
Behavior3/5

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

The description explains the tool resets to default size and user agent, which is transparent about its primary behavior. However, with no annotations, it lacks details on side effects, permissions, or error conditions, which is acceptable for a simple reset action but leaves some gaps.

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 a single, front-loaded sentence that conveys the tool's purpose efficiently with 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?

For a simple tool with two optional parameters and no output schema, the description is adequate but could be more complete by specifying what 'default' means or any prerequisites. It leaves some questions but is minimally sufficient.

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?

Both parameters (tabId, apiKey) are fully described in the input schema (100% coverage), so the description adds no additional parameter meaning beyond what the schema provides. Baseline score of 3 is appropriate.

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 resets viewport emulation to default size and user agent, which is specific and distinct from siblings like emulate_device or resize_viewport. However, it does not explicitly differentiate from these siblings.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like emulate_device or resize_viewport. The description implies it is for reverting emulation, but does not state this explicitly or mention context or exclusions.

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

resize_viewportB

Resize the browser viewport to specific dimensions. Use this to test responsive layouts at different screen sizes.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthYesViewport width in pixels
heightYesViewport height in pixels
deviceScaleFactorNoDevice pixel ratio (default: 1)
mobileNoWhether to emulate mobile (default: false)
userAgentNoCustom user agent string
touchNoEnable touch emulation (default: false)
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It does not disclose side effects such as whether scroll position resets, resize events are triggered, or how it interacts with existing emulation settings. The behavior regarding tab target (tabId) is also not described.

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 two sentences long, direct, and contains no unnecessary words. Every sentence contributes to understanding the tool's purpose.

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 8 parameters and no output schema, the description is too brief. It omits critical details about optional parameters like deviceScaleFactor, mobile, and touch, which are essential for understanding the tool's full capability. The presence of a sibling 'emulate_device' suggests a more comprehensive alternative, but this is not addressed.

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 100% description coverage, so the description does not need to elaborate on parameters. However, it adds no extra context (e.g., defaults or typical usage of optional parameters), meeting the baseline expectation.

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 resizes the browser viewport for testing responsive layouts. However, it does not differentiate from sibling tools like 'reset_viewport' or 'emulate_device', which also modify viewport settings.

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 provides a use case ('test responsive layouts at different screen sizes') but lacks explicit guidance on when not to use it or alternatives. It does not mention that 'emulate_device' might be more appropriate for full device emulation.

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

restore_page_stateA

Restore a page from a previously captured snapshot. Navigates to the URL, restores storage, cookies, HTML, and scroll position.

ParametersJSON Schema
NameRequiredDescriptionDefault
snapshotYesPreviously captured snapshot object
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It lists behaviors: navigates to URL, restores storage, cookies, HTML, scroll position. However, it does not mention side effects (e.g., overwriting existing page state), failure cases, or authentication details (apiKey parameter).

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 sentences, front-loaded with the core action (restore page) followed by what is restored. No redundant 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?

Given complexity (nested snapshot, 3 params, no output schema), the description covers core functionality but omits failure behavior, prerequisites (must have captured snapshot earlier), and return value. TabId default is implied by schema but not explicitly stated in description.

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 descriptions cover all parameters (100% coverage). The tool description adds value by explaining what the snapshot object contains (storage, cookies, etc.), which is not detailed in the schema's nested property descriptions. tabId and apiKey are clearly described.

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 restores a page from a previously captured snapshot, using the verb 'restore' and specifying the resource 'page state'. It distinguishes itself from sibling tools like snapshot_page_state (capture) and navigate_to_url (simple navigation).

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. It is implied that it should be used after capturing a snapshot with snapshot_page_state, but no mention of excluding usage when just navigating is needed.

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

run_accessibility_auditA

Run an axe-core accessibility audit on the page. Returns violations, incomplete items (need manual review), and pass counts. Use this to find WCAG compliance issues.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorNoAudit only within this selector (default: entire page)
tagsNoWCAG tags to test: "wcag2a", "wcag2aa", "wcag21a", "wcag21aa", "best-practice"
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It describes the output (violations, incomplete, pass counts) and mentions axe-core, but does not disclose if the tool is read-only, performance impact, or any side effects. Adequate but not detailed.

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 two sentences long, front-loads the purpose, and every word adds value. No fluff.

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 no output schema, the description adequately describes the return types (violations, incomplete, pass counts). It could be more explicit about the format (JSON object), but it covers the key outputs. The tool has 4 optional parameters, which are well-documented in the schema.

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 100% description coverage for all 4 parameters. The description does not add additional meaning beyond what the schema provides. Baseline score of 3 is appropriate.

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 it runs an axe-core accessibility audit, returns violations, incomplete items, and pass counts, and is used to find WCAG compliance issues. This distinguishes it from siblings like get_accessibility_tree or check_color_contrast.

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 says 'Use this to find WCAG compliance issues' but does not provide when-not-to-use or compare with alternative audit tools like check_color_contrast or detect_layout_issues. Usage context is implicit but not explicit.

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

screenshot_elementA

Take a screenshot of a specific element only. Provide a CSS selector or XPath to capture just that element.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector or XPath for the element to screenshot
selectorTypeNoSelector typecss
formatNoImage format: png (default) or jpeg
qualityNoJPEG quality 0-100
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral details like visibility requirements, scrolling behavior, or error handling for missing elements, but it only states the basic function, leaving important gaps.

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?

Single sentence, no wasted words, immediately communicates the action and required input (CSS/XPath), satisfying conciseness and front-loading.

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?

For a tool with 6 parameters and no output schema, the description is too brief; it omits return value, behavior on missing element, scrolling, or tab handling, leaving significant gaps for an agent.

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?

All parameters are covered by schema descriptions (100% coverage), so the description adds little value beyond clarifying that selector is for targeting the element; baseline of 3 is appropriate.

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 screenshot of a specific element, using a CSS selector or XPath, which distinguishes it from sibling tools like screenshot_full_page and screenshot_viewport.

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 implies use for capturing a specific element rather than full page or viewport, but lacks explicit guidance on when to use this tool versus alternatives, prerequisites, or exclusions.

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

screenshot_full_pageA

Take a screenshot of the ENTIRE page, including content you need to scroll down to see. Automatically scrolls and stitches images together. Use this when you need to see everything on the page.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoImage format: png (default, lossless) or jpeg (smaller file size)
qualityNoJPEG quality 0-100 (higher = better quality, larger file)
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description must disclose behavioral traits. It explains the tool 'Automatically scrolls and stitches images together,' which is key behavior. It does not mention limitations or side effects like performance impact, but this is sufficient for the tool's complexity.

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 with only two sentences, front-loading the main action and purpose. Every sentence adds value without 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?

Given 4 optional parameters, no output schema, and no annotations, the description covers the core functionality and when to use it. It could mention output format or that the image is returned, but the tool is simple and the description is adequate.

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 100% with all parameters described in the input schema. The description does not add additional meaning beyond the schema's parameter descriptions. According to guidelines, baseline is 3 when coverage is high.

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 the entire page, including off-screen content, with specific verb 'Take a screenshot' and resource 'ENTIRE page'. It distinguishes from sibling tools like screenshot_element and screenshot_viewport by emphasizing full-page capture.

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 includes 'Use this when you need to see everything on the page,' providing clear usage context. However, it lacks explicit exclusion for cases where only visible or element screenshots are needed, though this is implied given sibling tool names.

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

screenshot_viewportA

Take a screenshot of what's currently visible in the browser window. Use this to see the current state of the page, verify UI elements, or debug layout issues. Returns an image you can view.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoImage format: png (default, lossless) or jpeg (smaller file size)
qualityNoJPEG quality 0-100 (higher = better quality, larger file)
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must bear full transparency. It states it returns an image, but lacks details about side effects, resolution, or behavior when the window is obscured, which is adequate for a simple tool but not thorough.

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 core purpose, no redundant phrasing, efficient and easy to parse.

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 screenshot tool with no output schema and full parameter docs, the description covers purpose, typical usage, and return type. It could mention limitations (e.g., only viewport) but is sufficient for selection.

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?

Input schema has 100% coverage with parameter descriptions, so the description does not need to add much. It adds no extra meaning beyond the schema, which is acceptable but does not improve clarity.

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 'Take a screenshot of what's currently visible' using a specific verb and resource, and effectively distinguishes from sibling tools like screenshot_element and screenshot_full_page which target different areas.

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 suggests use cases ('verify UI elements, debug layout issues') but does not explicitly discuss when to avoid this tool or contrast with siblings like screenshot_element, leaving room for ambiguity.

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

select_tabA

Switch to a specific tab. Use this when you need to interact with a different open tab. Makes the tab active and brings its window to front.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesID of the tab to activate (get this from list_tabs)
apiKeyNoAPI key for authentication if enabled

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description discloses key behaviors (tab activation, window focus). However, it omits potential side effects or error handling, such as what happens if the tab is already focused or if the tabId is invalid.

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 adding value: action, usage context, and result. No redundant information. Front-loaded with the core meaning.

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 tool with two parameters and no output schema, the description covers the essential purpose and behavior. It could mention error handling or prerequisites but remains adequate for an AI agent.

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 100% and already explains tabId's purpose ('ID of the tab to activate (get this from list_tabs)'). The description adds no additional parameter semantics beyond what the schema provides.

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 action ('Switch to a specific tab'), the resource ('tab'), and the outcome ('makes the tab active and brings its window to front'). It distinctly separates this tool from siblings like list_tabs, close_tab, and new_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?

Explicitly states when to use ('when you need to interact with a different open tab'). Though it does not explicitly list when not to use, the sibling tool set provides enough context to infer alternatives.

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

set_input_filesA

Set files on a file input element for testing file uploads. Uses CDP DOM.setFileInputFiles for virtual file creation.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector for file input element
filesYesArray of file paths or { name, mimeType, content: base64 } objects
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries full burden for behavioral disclosure. It reveals the use of CDP DOM.setFileInputFiles for virtual file creation, adding context beyond the name, but lacks details on side effects, permissions, or error handling.

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 two meaningful sentences, front-loaded with the core action. No redundant or extraneous 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 tool's simplicity (file upload testing) and the rich schema, the description provides adequate context. It explains the technical mechanism (CDP), which is helpful. However, it omits return behavior or success indicators, but the absence of an output schema mitigates this somewhat.

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 100%, so the schema fully documents all 4 parameters. The description does not add meaning beyond what the schema provides (e.g., 'Set files' is already clear from the tool name and schema). Baseline score of 3 is appropriate.

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 action ('Set files'), the target resource ('file input element'), and the use case ('for testing file uploads'). It also mentions the underlying CDP method, distinguishing it from sibling tools like input_and_type or click_element.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives (e.g., input_and_type, drag_and_drop). It does not mention prerequisites, conditions, or exclusions, leaving the agent to infer usage context.

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

set_local_storageB

Set a localStorage entry on the current page

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesStorage key
valueYesStorage value
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states the basic action, omitting details like overwrite behavior, persistence, or authentication requirements (apiKey parameter).

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 concise sentence that front-loads the purpose. However, it could include a brief phrase about targeting a specific tab or authentication without losing conciseness.

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 absence of annotations and the presence of 4 parameters (including optional tabId and apiKey), the description is too sparse. It fails to mention how tab targeting works or authentication requirements, leaving the agent underinformed.

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 100% description coverage, so the schema already documents each parameter. The description adds no additional meaning or usage hints beyond what the schema provides.

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 'Set' and the resource 'localStorage entry on the current page.' It is distinct from sibling tools like get_local_storage and remove_local_storage.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as set_session_storage, set_cookie, or monitor_storage_events. The agent receives no context for appropriate usage.

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

set_session_storageB

Set a sessionStorage entry on the current page

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesStorage key
valueYesStorage value
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states the action without mentioning overwrite behavior, tab-specific nature, error conditions (e.g., storage full, permissions), or side effects.

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?

A single sentence of 7 words that efficiently conveys the core action with no unnecessary verbiage.

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 is adequate for a simple set operation but lacks information about return value, success indication, or how it interacts with session storage lifecycle, which is incomplete for an agent making decisions.

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 100%, so the baseline is 3. The description adds no additional meaning beyond what the schema already provides for the 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 states the verb 'Set', the resource 'sessionStorage entry', and the scope 'on the current page', making it distinct from sibling tools like get_session_storage and remove_session_storage.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like set_local_storage or when not to use it, leaving the agent without context for appropriate invocation.

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

snapshot_page_stateA

Capture a complete snapshot of the page state: HTML, localStorage, sessionStorage, cookies, scroll position, and form values. Use with restore_page_state to return to this exact state.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden for behavioral disclosure. It implies a read-only capture but does not explicitly state effects, permissions, or side effects. The name and pairing suggest safety, but transparency could be improved with explicit statements about non-destructiveness or required authentication.

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 at two sentences, front-loading the purpose and listing the captured components in the first sentence, then providing usage context in the second. No unnecessary words.

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 good purpose clarity, the description omits what the snapshot returns (e.g., a snapshot ID or data structure) and how it should be used with restore_page_state. Since there is no output schema, this information is critical for correct invocation. Without it, the agent may not know how to pass the result to the restoration 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 100%, with both parameters described adequately in the input schema. The description does not add additional meaning beyond what the schema provides, so the baseline score of 3 is appropriate.

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 complete page snapshot including HTML, storage, cookies, scroll position, and form values. It names the specific action and resource, and distinguishes from sibling tools by listing the captured components and mentioning its pairing with restore_page_state.

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 advises using the tool with restore_page_state for state restoration, but does not provide explicit when-not-to-use guidance or compare to alternative individual getter tools (e.g., get_cookies, get_local_storage) that could be used for partial snapshots. Usage context is implied but not comprehensive.

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

start_recording_macroB

Start recording user actions (clicks, typing, navigation) in a tab. Inject the macro recorder content script.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions starting recording and injecting a script, but fails to disclose potential side effects (e.g., impact on tab state, data capture, or need to stop recording).

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?

Two sentences with the action front-loaded. No unnecessary words. However, could be more concise by removing the second sentence or integrating it into the first.

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?

No output schema, so description should explain what happens after recording (e.g., return value, state). Missing connection to sibling tools like 'stop_recording_macro'. The description is incomplete for an action that mutates tab state.

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?

Input schema has 100% coverage (both parameters described). The tool description does not add meaning beyond the schema descriptions. Baseline 3 is appropriate as schema already documents tabId and apiKey.

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 action ('Start recording user actions') and the resource ('in a tab'), and mentions injection of the macro recorder content script. It distinguishes itself from siblings like 'stop_recording_macro' and 'replay_macro' by focusing on initiating the recording process.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives (e.g., when not to use it, or that it should precede stop_recording_macro). The description does not set usage context or prerequisites beyond the input parameters.

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

stop_recording_macroA

Stop recording and return the macro JSON with recorded events.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses the action and output but omits side effects, error scenarios (e.g., no active recording), and whether the macro is finalized.

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?

One sentence, no wasted words. Efficiently conveys the core purpose.

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 no output schema and no annotations, the description is somewhat lacking. It does not explain what happens if recording was not started, or error handling. Adequate but with gaps.

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?

Input schema has 100% coverage, so the description adds no extra meaning beyond tabId and apiKey descriptions. Baseline of 3 is appropriate.

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 specifies the verb 'Stop recording', the resource 'macro', and the outcome 'return the macro JSON with recorded events'. It effectively distinguishes from sibling tools like 'start_recording_macro'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., recording must be in progress) or provide context on when not to use it.

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

stress_test_refreshA

Refresh page N times with cache bypass, running an assertion after each refresh. Returns pass/fail per iteration. Useful for catching intermittent font bugs, race conditions, and cache-dependent issues.

ParametersJSON Schema
NameRequiredDescriptionDefault
iterationsNoNumber of refresh cycles
assertionScriptNoJavaScript expression to evaluate after each reload (optional)
waitAfterReloadNoTime to wait after reload before assertion (ms)
bypassCacheNoBypass browser cache on each reload (default: true)
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the core behavior (refresh loop, cache bypass, assertion, pass/fail output) but lacks details on side effects, failure handling, cleanup, or whether it stops on first failure. This is adequate but not comprehensive.

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 two sentences, directly stating what the tool does and when it is useful. No filler or redundant information. 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?

Given six parameters, no output schema, and no annotations, the description leaves gaps. It does not describe the return format (e.g., per-iteration results structure), nor does it clarify that the assertion script is optional (the description implies it is always run). Default values and behavior for parameters like iterations, waitAfterReload, and tabId are not mentioned.

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 100%, so baseline is 3. The description adds minimal value beyond the schema, only hinting at cache bypass and assertion. It does not explain parameter behavior like default values or mutual dependencies, but the schema itself is sufficient.

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 refreshes a page N times with optional assertion and cache bypass, returning pass/fail per iteration. It uses a specific verb ('Refresh') and resource ('page'), and distinguishes it from sibling tools like navigate_reload by emphasizing iteration and assertion.

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 context: it is useful for catching intermittent font bugs, race conditions, and cache-dependent issues. While it does not explicitly mention when not to use it or alternatives, the context is clear enough for an agent to understand appropriate scenarios.

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

swipeA

Simulate touch swipe from point A to point B with duration. Ensure viewport is set to mobile/touch enabled first via emulate_device or resize_viewport.

ParametersJSON Schema
NameRequiredDescriptionDefault
fromYesStart coordinates
toYesEnd coordinates
durationNoSwipe duration in ms
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided. The description discloses that it simulates a touch swipe and requires a mobile viewport, but does not address error behavior (e.g., what happens if viewport is not set) or return values. Basic behavioral context is given, but more detail would 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?

The description is two sentences: the first states the core action and parameters, the second gives a prerequisite. It is tightly written with no wasted words and places the most important information upfront.

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 5 parameters (2 required), nested objects, and no output schema or annotations, the description adequately covers the tool's purpose, prerequisites, and parameter roles. It lacks details on return values or error handling, but for a simple gesture tool, it is largely 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?

The input schema has 100% coverage with descriptions for all parameters. The tool description adds only framing (e.g., 'from point A to point B') beyond the schema. With full schema coverage, baseline is 3, and the description provides minimal extra semantic 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 'Simulate touch swipe from point A to point B with duration,' specifying the verb, resource, and parameters. Among sibling tools like 'double_tap', 'long_press', and 'pinch', it uniquely identifies a swipe gesture.

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 advises to ensure a mobile/touch-enabled viewport via 'emulate_device' or 'resize_viewport' before using this tool. It does not mention when to avoid using it, but the prerequisite is clear and helpful.

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

tab_to_nextB

Simulate Tab key navigation and track focus movement. Returns previous and current focused element info, and whether focus wrapped around.

ParametersJSON Schema
NameRequiredDescriptionDefault
directionNoTab directionnext
shiftNoHold Shift for reverse tab order
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It mentions returns but does not explicitly state that focus actually moves (side effect) or any other behavioral traits like permissions, rate limits, or whether it is read-only. This leaves significant gaps for an agent.

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 concise sentence with no wasted words. It could be slightly improved by structuring the behavior and return separately, but it is still efficient and clear.

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?

No output schema exists, so the description should explain return values. It mentions previous/current focus info and wrap status, which is adequate but lacks detail on format or structure. Given the complexity (4 parameters), it is minimally 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 100%, with each parameter having a description. The tool description adds no additional meaning beyond what the schema already provides, so baseline 3 is appropriate.

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 simulates Tab key navigation and tracks focus movement, specifying the return info. It distinguishes from siblings like press_key (general key press) and get_tab_order (tab order retrieval) by focusing on simulation and tracking.

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 implies usage for tab navigation and focus tracking but provides no explicit guidance on when to use this tool versus alternatives such as press_key or record_focus_path. No when-not or context is given.

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

test_storage_syncA

Test cross-tab localStorage synchronization. Sets a value in tab A and checks if it appears in tab B.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdAYesTab ID to set localStorage value in
tabIdBYesTab ID to verify localStorage value in
keyYeslocalStorage key to test
valueYesValue to set and expect
apiKeyNoAPI key for authentication if enabled

TDQS

A4/5.0
Behavior3/5

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

The description discloses the two-step operation (set then check), but lacks details on side effects, error handling, or prerequisites. Without annotations, more behavioral context would be beneficial.

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 with no fluff, front-loading the core purpose. Every sentence earns its place.

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?

While no output schema exists, the description adequately covers the core use case. It could mention success/failure behavior, but given tool simplicity, it is sufficiently 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 100%, so baseline is 3. The description adds no extra meaning beyond the schema parameter descriptions, only indirectly maps tabIdA/tabIdB to tab A/B.

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 specific verb 'Test' and resource 'cross-tab localStorage synchronization', and distinguishes from siblings like set_local_storage and get_local_storage by specifying cross-tab verification.

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 implies a test scenario for cross-tab sync, which provides context, but does not explicitly state when to use or avoid this tool compared to alternatives.

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

type_textA

Type regular text into the currently focused input field. Use this for typing usernames, passwords, search queries, form data, etc. Each character is typed individually like a real user.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesPlain text to type (no special keys - use press_key for those)
delayNoDelay between keystrokes in ms (default: 50). Increase for slower inputs if needed.
tabIdNoTarget tab ID (defaults to active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states typing is done 'like a real user,' but lacks details on event simulation (keydown, keypress, keyup) or error handling (e.g., losing focus mid-type). The description is somewhat transparent but could be more specific about underlying mechanics.

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 that front-load the core purpose and then add context. Every sentence is informative with no wasted words, making it easy for the agent to parse quickly.

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, the description covers the key behavioral aspects (individual keystrokes, realistic typing), usage guidance, and parameter semantics completely. No output schema is needed, and the description is sufficient for an agent to understand and invoke the tool correctly.

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

Parameters3/5

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

Schema coverage is 100%, and the description does not add meaning beyond what the schema already provides for the parameters (text, delay, tabId, apiKey). The baseline of 3 is appropriate since the schema already documents the parameters adequately.

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 it types regular text into the currently focused input field, using a specific verb and resource. It distinguishes from siblings by explicitly excluding special keys and referencing press_key for those, helping the agent choose correctly.

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 lists common use cases (usernames, passwords, etc.) and provides an alternative for special keys. It implies the tool is for typing plain text only, but does not explicitly mention when to avoid it beyond that, or prerequisites like focusing the input.

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

wait_for_conditionA

Wait until a JavaScript condition evaluates to true. Polls the expression at the specified interval until the timeout. Returns whether the condition was met and how long it took.

ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYesJavaScript expression that returns truthy when condition is met
timeoutNoMax wait time in ms
intervalNoPolling interval in ms
tabIdNoTarget tab ID (defaults to currently active tab)
apiKeyNoAPI key for authentication if enabled

TDQS

A3.8/5.0
Behavior4/5

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

The description explains the polling mechanism, interval, and timeout behavior, as well as the return type (whether condition was met and duration). With no annotations, this provides adequate transparency, though it could mention error handling or page context.

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 two sentences, front-loaded with the core purpose, and contains no extraneous 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 the return value, which compensates for the lack of an output schema. It is complete for a simple polling tool, though it could mention timeout behavior in more detail.

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 100%, so each parameter already has descriptions. The tool description does not add significant meaning beyond the schema, maintaining the baseline 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 waits for a JavaScript condition to become true, using verbs like 'Wait' and 'Polls'. It distinguishes itself from siblings like execute_javascript and assertion tools by focusing on waiting for a condition rather than executing or checking state.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. It does not mention scenarios where execute_javascript or other polling methods might be preferred, nor does it specify when not to use it.

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. 81 tool updatesv1.0.1
    • Addedassert_css_property
    • Addedassert_element
    • Addedassert_network_request_made
    • Addedassert_no_console_errors
    • Addedassert_no_network_errors
    • Addedassert_page_load_time
    • Addedassert_tabs_match
    • Addedaudit_broken_resources
    • Addedbrowser_snapshot
    • Addedcheck_color_contrast
    • Addedcheck_font_loading
    • Addedcheck_form_validity
    • Addedcheck_security_headers
    • Changedclick_element7 fields changed
      • changedInput schema / properties / apiKey / description
        Previous value: -"API key for authentication"New value: +"API key for authentication if enabled"
      • changedInput schema / properties / button / description
        Previous value: -"Mouse button (default: left)"New value: +"Mouse button: left (default), right (context menu), or middle"
      • changedInput schema / properties / doubleClick / description
        Previous value: -"Double-click instead of single click"New value: +"Set to true for double-click. Two rapid clicks (~40-100ms apart) are fired at the same position. Useful for opening files, selecting words, or triggering double-click handlers. Does NOT automatically handle focus/select behavior of the element — the element's own event handlers determine that."
      • changedInput schema / properties / target / description
        Previous value: -"How to find the element to click"New value: +"Target to click - prefer CSS selectors when possible"
      • changedInput schema / properties / target / properties / type / description
        Previous value: -"How to locate the element"New value: +"Method to locate the element: \"css\" (most reliable), \"xpath\", or \"coordinates\""
      • changedInput schema / properties / target / properties / value / anyOf
        Previous value: -[
        -  {
        -    "description": "CSS selector or XPath expression",
        -    "type": "string"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "description": "Coordinates",
        -    "properties": {
        -      "x": {
        -        "description": "X coordinate",
        -        "type": "number"
        -      },
        -      "y": {
        -        "description": "Y coordinate",
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "x",
        -      "y"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "description": "CSS selector (e.g., \"#submit-button\") or XPath expression",
        +    "type": "string"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "description": "Exact pixel coordinates",
        +    "properties": {
        +      "x": {
        +        "description": "X coordinate in pixels from left of viewport",
        +        "type": "number"
        +      },
        +      "y": {
        +        "description": "Y coordinate in pixels from top of viewport",
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "x",
        +      "y"
        +    ],
        +    "type": "object"
        +  }
        +]
      • changedInput schema / properties / target / properties / value / description
        Previous value: -"The selector string or {x, y} coordinates"New value: +"The selector string or {x, y} coordinates object"
    • Changedclose_tab2 fields changed
      • changedInput schema / properties / apiKey / description
        Previous value: -"API key for authentication"New value: +"API key for authentication if enabled"
      • changedInput schema / properties / tabId / description
        Previous value: -"The tab ID to close"New value: +"ID of the tab to close (get this from list_tabs)"
    • Addedcompare_screenshots
    • Addedcompare_snapshots
    • Addeddeep_query_shadow_dom
    • Addeddetect_cookie_banners
    • Addeddetect_layout_issues
    • Addeddiff_page_source
    • Addeddouble_tap
    • Changeddrag_and_drop6 fields changed
      • changedInput schema / properties / apiKey / description
        Previous value: -"API key for authentication"New value: +"API key for authentication if enabled"
      • changedInput schema / properties / from / description
        Previous value: -"Source element or position"New value: +"Source element/position to start dragging from"
      • changedInput schema / properties / from / properties / type / description
        Previous value: -"How to locate the element"New value: +"Method to locate: \"css\" (most reliable), \"xpath\", or \"coordinates\""
      • changedInput schema / properties / from / properties / value / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "x": {
        -        "type": "number"
        -      },
        -      "y": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "x",
        -      "y"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "description": "CSS selector or XPath to element",
        +    "type": "string"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "description": "Exact pixel coordinates",
        +    "properties": {
        +      "x": {
        +        "description": "X coordinate in pixels",
        +        "type": "number"
        +      },
        +      "y": {
        +        "description": "Y coordinate in pixels",
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "x",
        +      "y"
        +    ],
        +    "type": "object"
        +  }
        +]
      • changedInput schema / properties / from / properties / value / description
        Previous value: -"CSS/XPath selector or {x, y} coordinates"New value: +"The selector string or {x, y} coordinates object"
      • changedInput schema / properties / to / description
        Previous value: -"Target element or position"New value: +"Target element/position to drop onto"
    • Addedemulate_device
    • Addedemulate_network_conditions
    • Changedexecute_javascript2 fields changed
      • changedInput schema / properties / apiKey / description
        Previous value: -"API key for authentication"New value: +"API key for authentication if enabled"
      • changedInput schema / properties / expression / description
        Previous value: -"JavaScript expression or code to execute"New value: +"JavaScript code to run. Can be a simple expression or multi-line function."
    • Addedfind_element
    • Addedfind_in_source
    • Addedforce_pseudo_state
    • Addedget_accessibility_tree
    • Addedget_active_media_queries
    • Addedget_all_issues
    • Addedget_computed_styles
    • Changedget_console_logs3 fields changed
      • changedInput schema / properties / apiKey / description
        Previous value: -"API key for authentication"New value: +"API key for authentication if enabled"
      • changedInput schema / properties / clear / description
        Previous value: -"Clear logs after reading (default: false)"New value: +"Clear all logs after reading so you only get new messages next time"
      • changedInput schema / properties / level / description
        Previous value: -"Filter by log level (default: all)"New value: +"Filter logs: \"error\" for errors only, \"warn\" for warnings, \"all\" for everything (default)"
    • Addedget_element_layout
    • Addedget_element_state
    • Addedget_network_errors
    • Addedget_performance_metrics
    • Addedget_shadow_dom_tree
    • Addedget_tab_order
    • Addedget_tab_state
    • Addedget_tooltip_text
    • Addedget_viewport_info
    • Addedhover_and_inspect
    • Changedhover_element4 fields changed
      • changedInput schema / properties / apiKey / description
        Previous value: -"API key for authentication"New value: +"API key for authentication if enabled"
      • changedInput schema / properties / target / properties / type / description
        Previous value: -"How to locate the element"New value: +"Method to locate: \"css\" (most reliable), \"xpath\", or \"coordinates\""
      • changedInput schema / properties / target / properties / value / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "x": {
        -        "type": "number"
        -      },
        -      "y": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "x",
        -      "y"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "description": "CSS selector or XPath to element",
        +    "type": "string"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "description": "Exact pixel coordinates",
        +    "properties": {
        +      "x": {
        +        "description": "X coordinate in pixels",
        +        "type": "number"
        +      },
        +      "y": {
        +        "description": "Y coordinate in pixels",
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "x",
        +      "y"
        +    ],
        +    "type": "object"
        +  }
        +]
      • changedInput schema / properties / target / properties / value / description
        Previous value: -"CSS/XPath selector or {x, y} coordinates"New value: +"The selector string or {x, y} coordinates object"
    • Changedinput_and_type6 fields changed
      • changedInput schema / properties / apiKey / description
        Previous value: -"API key for authentication"New value: +"API key for authentication if enabled"
      • changedInput schema / properties / clearFirst / description
        Previous value: -"Clear existing text before typing (default: true)"New value: +"Clear existing text before typing (default: true). Set to false to append."
      • changedInput schema / properties / selector / description
        Previous value: -"CSS selector or XPath to the input element"New value: +"CSS selector or XPath to the input/textarea element"
      • changedInput schema / properties / selectorType / description
        Previous value: -"Selector type (default: css)"New value: +"Selector type: \"css\" (default) or \"xpath\""
      • changedInput schema / properties / submit / description
        Previous value: -"Press Enter after typing to submit"New value: +"Press Enter automatically after typing to submit forms"
      • changedInput schema / properties / text / description
        Previous value: -"Text to type into the input"New value: +"Text to type into the input field"
    • Addedintercept_requests
    • Changedlist_tabs1 field changed
      • changedInput schema / properties / apiKey / description
        Previous value: -"API key for authentication"New value: +"API key for authentication if enabled"
    • Addedlong_press
    • Addedmonitor_console_events
    • Addedmonitor_cookie_changes
    • Addedmonitor_storage_events
    • Changednavigate_back2 fields changed
      • changedInput schema / properties / apiKey / description
        Previous value: -"API key for authentication"New value: +"API key for authentication if enabled"
      • changedInput schema / properties / tabId / description
        Previous value: -"Target tab ID (defaults to active tab)"New value: +"Target tab ID (defaults to currently active tab)"
    • Changednavigate_forward2 fields changed
      • changedInput schema / properties / apiKey / description
        Previous value: -"API key for authentication"New value: +"API key for authentication if enabled"
      • changedInput schema / properties / tabId / description
        Previous value: -"Target tab ID (defaults to active tab)"New value: +"Target tab ID (defaults to currently active tab)"
    • Changednavigate_reload3 fields changed
      • changedInput schema / properties / apiKey / description
        Previous value: -"API key for authentication"New value: +"API key for authentication if enabled"
      • changedInput schema / properties / ignoreCache / description
        Previous value: -"If true, reload ignoring cache"New value: +"Set to true to force reload from server (skips browser cache)"
      • changedInput schema / properties / tabId / description
        Previous value: -"Target tab ID (defaults to active tab)"New value: +"Target tab ID (defaults to currently active tab)"
    • Changednavigate_to_url3 fields changed
      • changedInput schema / properties / apiKey / description
        Previous value: -"API key for authentication"New value: +"API key for authentication if enabled"
      • changedInput schema / properties / tabId / description
        Previous value: -"Target tab ID (defaults to active tab)"New value: +"Target tab ID (defaults to currently active tab)"
      • changedInput schema / properties / url / description
        Previous value: -"The URL to navigate to"New value: +"Full URL including http:// or https:// (e.g., \"https://google.com\")"
    • Changednew_tab2 fields changed
      • changedInput schema / properties / apiKey / description
        Previous value: -"API key for authentication"New value: +"API key for authentication if enabled"
      • changedInput schema / properties / url / description
        Previous value: -"URL to open in the new tab"New value: +"Optional URL to load in the new tab (e.g., \"https://google.com\")"
    • Addedpinch
    • Changedpress_key5 fields changed
      • changedInput schema / properties / apiKey / description
        Previous value: -"API key for authentication"New value: +"API key for authentication if enabled"
      • changedInput schema / properties / key / description
        Previous value: -"Key to press (e.g., \"Enter\", \"Tab\", \"a\", \"ArrowDown\")"New value: +"Key name: \"Enter\", \"Tab\", \"Escape\", \"Backspace\", \"ArrowUp/Down/Left/Right\", \"a\", \"F1-F12\""
      • changedInput schema / properties / modifiers / description
        Previous value: -"Modifier keys to hold"New value: +"Modifier keys to hold (e.g., [\"Control\"] for Ctrl+C). Use Meta for Command on Mac."
      • changedInput schema / properties / selector / description
        Previous value: -"CSS or XPath selector to focus before pressing the key"New value: +"CSS/XPath selector to focus before pressing key - use this to avoid needing to click first"
      • changedInput schema / properties / selectorType / description
        Previous value: -"Selector type (default: css)"New value: +"Selector type: \"css\" (default) or \"xpath\""
    • Addedquery_shadow_dom
    • Addedrecord_focus_path
    • Addedrecord_performance_timeline
    • Addedreplay_macro
    • Addedreset_viewport
    • Addedresize_viewport
    • Addedrestore_page_state
    • Addedrun_accessibility_audit
    • Addedscreenshot_element
    • Changedscreenshot_full_page4 fields changed
      • changedInput schema / properties / apiKey / description
        Previous value: -"API key for authentication"New value: +"API key for authentication if enabled"
      • changedInput schema / properties / format / description
        Previous value: -"Image format (default: png)"New value: +"Image format: png (default, lossless) or jpeg (smaller file size)"
      • changedInput schema / properties / quality / description
        Previous value: -"JPEG quality 0-100 (only for jpeg format)"New value: +"JPEG quality 0-100 (higher = better quality, larger file)"
      • changedInput schema / properties / tabId / description
        Previous value: -"Target tab ID (defaults to active tab)"New value: +"Target tab ID (defaults to currently active tab)"
    • Changedscreenshot_viewport4 fields changed
      • changedInput schema / properties / apiKey / description
        Previous value: -"API key for authentication"New value: +"API key for authentication if enabled"
      • changedInput schema / properties / format / description
        Previous value: -"Image format (default: png)"New value: +"Image format: png (default, lossless) or jpeg (smaller file size)"
      • changedInput schema / properties / quality / description
        Previous value: -"JPEG quality 0-100 (only for jpeg format)"New value: +"JPEG quality 0-100 (higher = better quality, larger file)"
      • changedInput schema / properties / tabId / description
        Previous value: -"Target tab ID (defaults to active tab)"New value: +"Target tab ID (defaults to currently active tab)"
    • Changedselect_tab2 fields changed
      • changedInput schema / properties / apiKey / description
        Previous value: -"API key for authentication"New value: +"API key for authentication if enabled"
      • changedInput schema / properties / tabId / description
        Previous value: -"The tab ID to activate"New value: +"ID of the tab to activate (get this from list_tabs)"
    • Addedset_input_files
    • Addedsnapshot_page_state
    • Addedstart_recording_macro
    • Addedstop_recording_macro
    • Addedstress_test_refresh
    • Addedswipe
    • Addedtab_to_next
    • Addedtest_storage_sync
    • Changedtype_text3 fields changed
      • changedInput schema / properties / apiKey / description
        Previous value: -"API key for authentication"New value: +"API key for authentication if enabled"
      • changedInput schema / properties / delay / description
        Previous value: -"Delay between keystrokes in ms (default: 50)"New value: +"Delay between keystrokes in ms (default: 50). Increase for slower inputs if needed."
      • changedInput schema / properties / text / description
        Previous value: -"Text to type"New value: +"Plain text to type (no special keys - use press_key for those)"
    • Addedwait_for_condition
  2. 36 tool updatesv1.0.0
    • First observedclear_network_logs
    • First observedclick_element
    • First observedclose_tab
    • First observeddelete_cookie
    • First observeddrag_and_drop
    • First observedexecute_javascript
    • First observedget_console_logs
    • First observedget_cookies
    • First observedget_local_storage
    • First observedget_network_logs
    • First observedget_network_request_detail
    • First observedget_session_storage
    • First observedhover_element
    • First observedinput_and_type
    • First observedlist_tabs
    • First observedmodify_css
    • First observedmodify_html
    • First observednavigate_back
    • First observednavigate_forward
    • First observednavigate_reload
    • First observednavigate_to_url
    • First observednew_tab
    • First observedpress_key
    • First observedread_page_html
    • First observedread_page_resources
    • First observedread_scripts
    • First observedread_stylesheets
    • First observedremove_local_storage
    • First observedremove_session_storage
    • First observedscreenshot_full_page
    • First observedscreenshot_viewport
    • First observedselect_tab
    • First observedset_cookie
    • First observedset_local_storage
    • First observedset_session_storage
    • First observedtype_text

TDQS

B3.3/5.0

Scored across 99 tools

Disambiguation4/5

Most tools have distinct purposes (e.g., navigation vs. assertions vs. storage), but the high number of assertion and logging tools (e.g., get_console_logs, get_network_logs, get_all_issues) may cause confusion about which to use for a specific task.

Naming Consistency4/5

Tools predominantly follow a verb_noun pattern with underscores, but there are outliers like 'input_and_type' and 'deep_query_shadow_dom' that break the pattern slightly. Overall, names are clear and predictable.

Tool Count2/5

With 99 tools, the surface is excessively large for an MCP server. Most servers have 5–20 tools; this many tools creates cognitive overhead and suggests the server may be trying to cover too much ground.

Completeness4/5

The toolset covers a wide range of browser automation tasks: navigation, element interaction, assertions, debugging, performance, accessibility, storage, cookies, screenshots, and network interception. Minor gaps like frame handling or alert dialogs are absent, but the coverage is still impressive.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI agents to control a real Google Chrome instance using specific user profiles, cookies, and extensions. It provides 18 tools for browser navigation, element interaction, and page inspection via the Chrome DevTools Protocol.
    -
  • A
    license
    Not graded
    quality
    F
    maintenance
    An MCP server that provides AI assistants with full control over a real browser session via a Chrome extension, supporting 36 tools for navigation, data extraction, and DOM manipulation. It bypasses bot detection by utilizing the user's active browser session, including cookies, authentication tokens, and installed extensions.
    14 npm
    3
    MIT
  • F
    license
    B
    quality
    D
    maintenance
    An MCP server that enables AI coding tools to control a browser for automated actions, UI extraction, network interception, and screenshots.
    23
    1
    -