Skip to main content
Glama

Argus connects directly to Chrome via the Chrome DevTools Protocol and exposes browser debugging as MCP tools - no Puppeteer, no Playwright, no browser abstraction layer. Spawn Chrome, attach to tabs, record console output, intercept network requests, inject mocks, and capture screenshots, all from your MCP client.

The name comes from Argus Panoptes - the 100-eyed giant of Greek mythology who could watch everything at once and never fully slept. That's the goal: total visibility into what the browser is doing.

Motivation

Argus came about as part of an ongoing exploration into leveraging agents to reproduce reported issues as well as "manually" debug/record them on the fly. As a result you can expect to see bugs in Argus itself as well as plenty room for improvement and growth over time.

Related MCP server: Puppeteer Debugger MCP Server

Features

  • Console recording — capture console.log/warn/error and unhandled exceptions with stack traces

  • Screenshot capture — viewport, full-page, or clipped region, returned as base64 PNG/JPEG

  • Network recording — record every request and response including body, headers, timing, and errors

  • Network mocking — intercept requests by glob pattern and return custom responses, zero page reload required

  • Multi-tab — attach to any number of tabs simultaneously, each with independent recording state

  • No dependencies — direct WebSocket connection to Chrome's debug port, no browser driver needed

  • Injectable overlay — floating status widget injected into every inspected page showing live counts

Installation

# Install globally
npm install -g @jmsa/argus-mcp
argus-mcp

# Or run without installing
npx @jmsa/argus-mcp

From source

git clone https://github.com/Jmsa/argus
cd argus
npm install
npm run dev

Chrome Canary opens automatically on startup with the Argus welcome page. Connect your MCP client to the stdio transport and start using the tools.

Requirements

  • Node ≥ 18

  • Google Chrome or Chrome Canary (macOS, Linux, or Windows)

MCP Client Configuration

Claude Code — run this once:

# npm package (recommended)
claude mcp add --transport stdio argus -- argus-mcp

# from source
claude mcp add --transport stdio argus -- npm run dev

Claude Desktop — add to claude_desktop_config.json:

{
  "mcpServers": {
    "argus": {
      "type": "stdio",
      "command": "argus-mcp"
    }
  }
}

If running from source instead, use "command": "npm" with "args": ["run", "dev"] and set "cwd" to the project root.

Auto-Launch Behavior

By default, Argus does not automatically launch Chrome when a Claude session starts. Use the browser_launch tool to start Chrome when you need it.

First-run experience

The first time Claude starts with Argus installed, Chrome opens once automatically so you can verify everything is working. A message on the welcome page explains what's happening. After that first session, auto-launch is off unless you enable it.

The auto-launch toggle

The welcome page always shows a Yes / No toggle for auto-launch:

  • No (default) — Chrome does not open on Claude start; call browser_launch manually

  • Yes — Chrome and the welcome page open automatically at the start of every Claude session

The toggle takes effect immediately and persists across sessions. Your preference is stored in ~/.argus/config.json and can also be edited manually:

{ "autoLaunch": true }

CI / scripted environments

Set ARGUS_NO_LAUNCH=1 to force-skip Chrome launch regardless of the config file. This is useful in CI pipelines or automated environments where a display isn't available.

Tools

Argus exposes 32 tools across eight groups.

Browser

Tool

Description

browser_launch

Spawn a new Chrome instance with remote debugging

browser_connect

Attach to an already-running Chrome via WebSocket URL

browser_disconnect

Disconnect (browser stays open)

browser_status

Check connection state and active tab count

Tabs

Tool

Description

tab_list

List all open page tabs

tab_open

Open a new tab and navigate to a URL

tab_navigate

Navigate an existing tab to a new URL

tab_close

Close a tab by targetId

tab_screenshot

Capture a screenshot (viewport, full-page, or clipped)

Console

Tool

Description

console_start

Begin recording console output and exceptions

console_stop

Stop recording

console_get_logs

Retrieve logs, filterable by type and text

console_clear

Discard captured log entries

Network Recording

Tool

Description

network_start_recording

Enable network capture (requests, responses, bodies)

network_stop_recording

Disable network capture

network_get_requests

Query captured requests (filter by URL, method, status, error)

network_clear_requests

Clear the request history for a tab

Network Mocks

Tool

Description

network_add_mock

Intercept requests matching a glob and return a custom response

network_remove_mock

Remove a mock rule by ID

network_list_mocks

List active mock rules for a tab

network_clear_mocks

Remove all mocks and disable interception

Page

Tool

Description

page_evaluate

Execute JavaScript and return the result

page_reload

Reload the tab (optionally bypassing cache)

page_get_url

Get the current URL and title of a tab

DOM

Tool

Description

dom_query

Query the first element matching a CSS selector and return its properties

dom_query_all

Query all elements matching a CSS selector

dom_click

Click the first element matching a CSS selector (scrolls into view first)

dom_input_value

Set an input's value and dispatch input/change events (React/Vue safe)

dom_get_value

Get the current value of an input element

dom_wait_for

Wait for an element to appear in the DOM (polls every 100ms)

Banner

Tool

Description

banner_update

Push state updates to the Argus banner overlay (recording indicator, counts)

banner_get_screenshots

Retrieve screenshots captured via the banner Screenshot button

Skills

Skills are Claude Code workflows that invoke Argus tools automatically. Install the plugin to get them as slash commands:

/plugin install Jmsa/argus

Skill

Command

Description

debug-session

/argus:debug-session <url>

Capture a complete debugging snapshot — console, network, screenshot

repro-issue

/argus:repro-issue <url> <bug description>

Reproduce a bug using mocks to isolate frontend vs API

network-debug

/argus:network-debug <url>

Investigate failed requests, slow responses, and mock verification

Documentation

How It Works

MCP Client (Claude, Inspector, etc.)
        │  stdio
        ▼
  Argus MCP Server
        │  CDP over WebSocket
        ▼
  Chrome / Chrome Canary
        │  per-tab CDPSession
        ▼
  domains: console · screenshot · network · ui

Chrome is spawned as a child process. Argus listens to its stderr for the DevTools listening on ws://... line to get the exact WebSocket URL, then connects. Each tab gets its own CDPSession (multiplexed over a single WebSocket connection) with independent domain state.

Development

npm run dev       # start with tsx (no build step)
npm run build     # compile to dist/
npm run typecheck # type-check without emitting

Chrome profile data is stored at ~/.argus/chrome-profile so Chrome doesn't reinitialise on every restart.

Contributing

Contributions are welcome. Argus is an active exploration project, so there's plenty of room to improve.

Before opening a PR:

  1. Fork the repo and create a branch from main

  2. Run npm run typecheck — PRs must pass type checking

  3. Test your changes against a live browser session

  4. Keep commits focused; one logical change per PR

Good areas to contribute:

  • New CDP domain wrappers (e.g. Performance, Accessibility)

  • Additional skills / slash commands

  • Bug reports with reproduction steps

  • Documentation improvements

Open an issue first for large changes so we can align on approach before you invest time in implementation.

License

MIT

Available Tools

32 tools
browser_connectA

Connect to an already-running Chrome instance via WebSocket debugger URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
wsUrlNoWebSocket debugger URL (e.g. ws://localhost:9222/json/version). If omitted, connects to localhost:9222

TDQS

A3.5/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 burden. It discloses the connection mechanism (WebSocket debugger URL) and the default behavior (localhost:9222 if omitted). However, it doesn't state what happens on failure, whether it replaces an existing connection, or whether the connection persists across calls. For a connection tool, this is a moderate 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?

One sentence, front-loaded with the core action, and includes the essential default behavior. Zero 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?

For a single-parameter connection tool, the description covers the core usage. However, with no annotations and no output schema, it doesn't explain what a successful connection returns, how to verify the connection, or error behavior. An agent might not know if it needs to call browser_status afterward to confirm.

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 already documents the wsUrl parameter with an example and default behavior. The description adds no additional parameter semantics beyond what the schema provides. Baseline 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 states a specific verb ('Connect') and resource ('already-running Chrome instance via WebSocket debugger URL'), which clearly distinguishes it from browser_launch (which starts a new instance) and browser_disconnect (which tears down). It doesn't explicitly name those siblings, but the action is unambiguous.

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 when to use it: when a Chrome instance is already running and you have a WebSocket debugger URL. It doesn't explicitly say 'use browser_launch instead if no instance is running' or mention alternatives, but the context is reasonably clear given the sibling set.

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

browser_disconnectA

Disconnect from Chrome (leaves browser running).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral disclosure burden. It communicates the most important side effect—the browser remains running—which prevents agents from assuming disconnect shuts down Chrome; more minor behaviors such as idempotency or already-disconnected state are not disclosed, but for a zero-parameter action this is a valuable and non-obvious disclosure.

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 filler. The key behavioral caveat is placed in parentheses immediately after the action, making it maximally scannable.

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

Completeness4/5

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

For a zero-parameter, no-output-schema tool with no annotations, the description covers the action and its primary consequence completely. It could be fuller by stating what happens if no browser is connected, but that omission is minor for a simple disconnect primitive.

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?

There are zero parameters and 100% schema coverage, so there is nothing for the description to add about parameter meaning. The baseline of 4 applies because the schema already completely describes the empty input.

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 names a specific action, 'Disconnect from Chrome', and explicitly adds the behavioral nuance 'leaves browser running', which distinguishes it from closing or terminating via tab_close or browser_launch. This clear verb+resource formulation lets an agent identify the tool's purpose immediately.

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 parenthetical implies the tool is appropriate when a disconnect is wanted without killing the browser, but it does not state when to prefer it over connect/launch/close siblings or mention any prerequisites. Usage context is 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.

browser_launchA

Launch a new Chrome browser instance with remote debugging enabled.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 full behavioral disclosure. It does disclose the notable trait 'remote debugging enabled' and that this creates a new instance, but it does not say whether the call returns connection info, whether it blocks, or how the instance is cleaned up.

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 with no extraneous words, and the key facts (launch, new, remote debugging) appear immediately. Every element contributes to selecting or invoking the tool.

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 zero-parameter, no-output-schema tool, the description is largely sufficient: it identifies the action and its distinguishing mode. The main gap is surrounding lifecycle/cleanup guidance, but that is less critical for a parameterless launch action.

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

Parameters4/5

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

The tool has zero parameters, so there are no argument semantics for the description to clarify. The description accurately describes what the parameterless call accomplishes.

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 names a specific action ('Launch'), a resource ('new Chrome browser instance'), and a key mode ('remote debugging enabled'). This makes it easy to distinguish from siblings like browser_connect, which imply attaching to an existing instance.

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 word 'new' implies this is for starting a fresh browser rather than connecting to an existing one, but the description never explicitly says when to use this instead of browser_connect or how to confirm the instance is ready. Usage is implied rather than stated.

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

browser_statusA

Get the current connection status of the browser.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/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 burden of indicating side effects. The verb 'get' conveys a read-only operation and 'current' suggests it reflects live state, but the description does not disclose what the returned status looks like, what states are possible, or whether an error occurs if no browser is active.

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 filler. Every word contributes to conveying the tool's core purpose, and it is appropriately sized for a parameterless status-check tool.

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 zero-parameter, read-only status tool, this description is mostly complete: an agent knows what to call and roughly what to expect. It does not detail the exact output format, but the simple nature of the operation and lack of output schema make this a minor gap rather than a critical omission.

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

Parameters4/5

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

The tool has zero parameters, so the input schema is already fully descriptive and there is no parameter information for the description to add. The baseline for no-parameter tools is 4, and nothing here reduces that.

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 a specific verb ('get') and resource ('current connection status of the browser'). It distinguishes itself from sibling tools like browser_connect and browser_disconnect by being a status read rather than a state-changing action, though it does not explicitly name those alternatives.

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 intended use is implied: call this tool when you need to know the browser's current connection status. However, it does not explicitly state when to use this instead of related browser lifecycle tools, nor does it mention prerequisites such as the browser needing to be launched or connected.

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

console_clearA

Clear recorded console logs for a tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetIdYesTarget ID of the tab

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 must carry the behavioral disclosure burden. It explicitly states that recorded console logs are cleared, which is a destructive action, and identifies what is affected. However, it does not clarify whether the clear is irreversible, whether it affects ongoing recording, or what happens if no logs are recorded.

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 with no filler. Every word contributes to conveying the action and scope, and it is appropriately 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 one-parameter tool with no output schema, the description is largely sufficient: it names the action, the affected resource, and the tab scope. Minor gaps such as precondition guidance or effect on active recording keep it from being 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 description coverage is 100%, and the parameter 'targetId' is already documented as 'Target ID of the tab'. The description adds no additional meaning beyond the schema, so the 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 uses a specific verb ('Clear') and a precise object ('recorded console logs for a tab'), making the tool's purpose unambiguous. It is clearly distinct from sibling tools like console_get_logs, console_start, and console_stop, which concern retrieving or managing recording rather than clearing.

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 states what the tool does but provides no guidance on when to use it versus alternatives, such as whether to pair it with console_start/stop or how it relates to console_get_logs. No exclusions or preconditions 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.

console_get_logsC

Get recorded console logs for a tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by log type: log, debug, info, error, warning, etc.
limitNoMaximum number of entries to return
searchNoFilter by text content
targetIdYesTarget ID of the tab

TDQS

C2.9/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 does not state that logs exist only after recording is started, whether logs persist across navigations or clears, what the response shape is, or that no output schema is provided. The single sentence reveals almost nothing beyond the tool's basic intent.

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 zero filler: verb, object, and scope in that order. There is no wasted wording, though the brevity does leave behavioral gaps that are penalized in other dimensions.

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 and no annotations, the description must carry more weight, but it omits the critical prerequisite relationship to console_start, does not explain what 'recorded' means (session-bound, cleared, etc.), and gives no hint about return values. The sibling set strongly implies a recording workflow, yet the description never connects to it.

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 fully documents all four parameters including type, limit, search, and targetId. The description adds 'for a tab' which maps to targetId, but no additional parameter-level meaning beyond the schema, so it stays at the baseline 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 uses a specific verb ('Get') with a clear resource ('recorded console logs') and scope ('for a tab'). The word 'recorded' subtly distinguishes this retrieval tool from the sibling recording lifecycle tools (console_start, console_stop, console_clear), though it does not name them.

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 call this tool or what prerequisites exist. The description says the logs are 'recorded' but never states that console_start must have been invoked first, nor distinguishes when to use this versus console_clear or console_stop. An agent must infer the workflow from sibling names alone.

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

console_startC

Start recording console logs for a tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetIdYesTarget ID of the tab

TDQS

C2.9/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. 'Start recording' implies a stateful side effect, but the description does not explain what happens after recording starts, whether it can be called again, or how the recording relates to other console tools.

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, direct sentence with no wasted words, and the key action is front-loaded. It is efficiently structured, though it could include one more sentence of lifecycle context without becoming verbose.

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 is simple with one well-documented parameter, but there are no annotations and no output schema. The description is adequate for selecting and starting the tool, but it leaves the recording lifecycle—retrieval and stopping—implicit, which sibling names only partially clarify.

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% for the single parameter 'targetId', so the schema already documents its meaning. The phrase 'for a tab' adds minimal context, but it does not provide any additional semantics beyond what the schema states.

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 uses a clear verb ('Start') and names the resource ('recording console logs') with a scope ('for a tab'). It is easily distinguishable from siblings like console_stop and network_start_recording, though it does not explicitly call out the differentiating sibling.

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 gives no guidance on when to use this tool versus alternatives. It does not mention that console_start should precede console_get_logs, or that console_stop ends the recording, leaving the usage context to inference.

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

console_stopA

Stop recording console logs for a tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetIdYesTarget ID of the tab

TDQS

A3.5/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 transparency burden. It states the core action but does not disclose whether previously recorded logs are retained, whether stopping is idempotent, or what happens if recording was never started. This leaves an agent unable to predict side effects after invoking the 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 a single, front-loaded sentence with no filler or redundancy. It states the action and scope efficiently, and every word contributes to the 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?

Given the tool's simplicity, the description covers the basic action and parameter, but it omits important behavioral context such as log retention after stopping and when to use it relative to console_start. With no output schema and no annotations, this is 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 description coverage is 100%, and the single parameter targetId already has a clear description: "Target ID of the tab." The tool description adds only the phrase "for a tab," which reinforces the parameter but provides no new semantic information. The schema carries the heavy lifting, 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?

The description uses a specific verb and resource: "Stop recording console logs for a tab." This clearly identifies the action and scope, and differentiates it from siblings like console_start, console_get_logs, and console_clear. The operation is unambiguous.

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 does not explicitly state when to use this tool or name alternatives, but the pairing with console_start is implied by the verb "Stop" and the sibling tool name. It provides no excluded cases or guidance about console_get_logs or console_clear, so usage context is only implied.

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

dom_clickA

Click the first element matching a CSS selector (scrolls into view first).

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector of the element to click
targetIdYesTarget ID of the tab

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 burden. It discloses that it scrolls into view and clicks only the first match, but it does not mention what happens if no element is found, whether it waits for the element, or what the return value is. Given the lack of annotations, this is a moderate disclosure.

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 that front-loads the action and includes the key behavioral note about scrolling. No waste.

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

Completeness4/5

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

For a simple click operation with two well-documented parameters and no output schema, the description covers the essential behavior. It could mention error handling or return values, but for a click action this 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?

Both parameters are fully described in the schema with 100% coverage. The description adds no additional semantics beyond the schema, so it meets the baseline 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 clicks the first element matching a CSS selector and scrolls into view. This verb+resource specification distinguishes it from sibling tools like dom_query (which likely queries) and dom_input_value (which inputs).

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 clicking elements but does not explicitly state when to use it instead of other DOM tools. No alternatives or exclusions are mentioned, so the guidance is only implied.

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

dom_get_valueB

Get the current value of an input element.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector of the input element
targetIdYesTarget ID of the tab

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 the behavioral disclosure burden. The verb 'Get' and the word 'current' communicate a read operation on a live DOM value, but the description does not mention return format, behavior when the element is missing, whether it waits for the element, or any error semantics.

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 with no filler, front-loading the action and object clearly. Every word earns its place and nothing extraneous is included.

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 is simple, its two parameters are fully documented, and the core purpose is stated. However, without an output schema or annotations, the description could be more complete by noting what the tool returns and what happens when the selector does not match an input element.

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%: both selector and targetId are documented in the input schema. The description adds no parameter-level detail, but the schema already provides the necessary semantics, so this is an acceptable baseline.

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 names the action ('Get') and the resource ('input element value'), so an agent can tell what the tool does. However, it does not explicitly distinguish itself from sibling tools like dom_input_value or dom_query, so it lacks sibling differentiation.

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 for when to use this tool versus alternatives. The description does not mention dom_input_value, dom_query, or any conditions, exclusions, or prerequisites, leaving the agent to infer usage entirely from the name and short description.

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

dom_input_valueA

Set the value of an input element and dispatch input/change events (works with React/Vue controlled inputs).

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to set as the input value
clearNoClear existing value before typing (default: false)
selectorYesCSS selector of the input element
targetIdYesTarget ID of the tab

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It goes beyond 'set value' by explicitly stating that input/change events are dispatched)Skip, a key side effect that affects controlled frameworks. This is significant additional context beyond the tool name and schema.

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, efficient sentence that leads with the core action and then adds the compatibility note. No filler words, and every part contributes to understanding the tool's purpose and usage context.

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 four-parameter tool with no output schema, the description covers the essential purpose and the key behavioral nuance (event dispatch, framework compatibility). It does not discuss failure behavior or element-not-found cases, but those are minor for such a targeted 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 all four parameters (text, clear, selector, targetId) are already documented. The description adds no extra insight into parameter meanings or usage, so 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 states a clear verb ('set'), a specific resource ('input element'), and the critical behavior ('dispatch input/change events'). It also notes compatibility with React/Vue controlled inputs, which distinguishes this tool from dom_get_value or dom_click and clarifies its niche.

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 React/Vue compatibility hint implies when this tool is appropriate, but the description does not explicitly mention alternatives or state when not to use it. An agent can infer usage from the context, but there is no direct routing to or away from sibling tools.

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

dom_queryB

Query the first element matching a CSS selector and return its properties.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector to query
targetIdYesTarget ID of the tab

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 carries the full burden of behavioral disclosure. It only says 'Query... return its properties' without stating whether the operation is read-only, what happens if no element matches, or what 'properties' includes. This is a significant gap for a tool with no safety 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?

A single, front-loaded sentence with no waste. It clearly communicates the core action and outcome in a compact form, ideal for quick parsing.

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 and no annotations, the description should clarify return shape (which properties, format) and behavior on no match. It also leaves the distinction from dom_query_all implicit. The description is too sparse for an agent to invoke it reliably in varied 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?

Schema description coverage is 100%: both selector and targetId have descriptions. The tool description adds little beyond the schema, but baseline 3 applies because 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?

States a specific verb ('Query') and resource ('first element matching a CSS selector'), and explicitly says it returns properties. The qualifier 'first element' distinguishes it from sibling dom_query_all, which presumably queries all matching elements.

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 phrase 'first element' implies a targeted single-element lookup, but the description never mentions alternatives like dom_query_all or provides when-not-to-use guidance. There is no explicit routing to siblings, so usage is only implied rather than clarified.

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

dom_query_allA

Query all elements matching a CSS selector and return their properties.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of elements to return (default: 50)
selectorYesCSS selector to query
targetIdYesTarget ID of the tab

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden, but it only states that elements are queried and properties returned. It does not disclose that results are limited (default 50), what properties are returned, result ordering, or error behavior. This leaves important behavioral traits undocumented.

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 with no filler; the core action and object are front-loaded. It is appropriately brief for a simple query tool.

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 no output schema and no annotations, so the description must explain return shape and behavior, but it only says 'return their properties' without specifying format or limit. Given the sibling dom_query exists, the description also does not fully disambiguate the multi-element return contract. This is incomplete for reliable invocation.

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 three parameters are already described in the schema with 100% coverage, so the baseline is 3. The description adds little beyond restating the selector concept and 'properties' outcome; it does not clarify limit semantics or targetId meaning beyond 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?

States a specific action ('Query all elements') and a clear resource (CSS selector matching DOM elements), and the word 'all' distinguishes it from the sibling dom_query tool. The return of properties is mentioned, though the property set is unspecified.

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 phrase 'all elements' conveys that this tool is for batch/multi-element queries, which distinguishes it from dom_query and other DOM tools. It does not explicitly state when to prefer an alternative or mention exclusions, so some inference is required.

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

dom_wait_forC

Wait for an element to appear in the DOM (polls every 100ms).

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNoTimeout in milliseconds (default: 5000)
visibleNoAlso require the element to be visible (default: false)
selectorYesCSS selector to wait for
targetIdYesTarget ID of the tab

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It discloses the polling interval but omits critical behaviors: what happens on timeout (throws vs. returns false), whether it returns a value, and whether visibility is required (though that's a parameter, the description doesn't clarify the default behavior). The description is inadequate for a tool with no output schema.

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 with zero filler. It front-loads the purpose and adds the polling interval as a key detail. Every word earns its place, making it highly concise and efficiently structured.

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 four parameters, no output schema, and no annotations, this description is far too sparse. It does not mention return value, error behavior on timeout, or any usage context. An agent would need to guess important aspects like whether it blocks or returns a boolean. The omission of timeout handling is a significant 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?

Schema description coverage is 100%, so all four parameters (timeout, visible, selector, targetId) have inline descriptions. The tool description adds nothing beyond the polling interval, which is not a parameter. Per the baseline rule, a 3 is appropriate since the schema adequately documents parameters.

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 core action: 'Wait for an element to appear in the DOM' and adds the polling interval (every 100ms). This is specific and distinguishes it from query tools like dom_query that don't wait. However, it does not explicitly differentiate from sibling tools that might have overlapping purposes, so it stops short of a 5.

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?

There is no guidance on when to use this tool versus alternatives. It does not mention scenarios like async loading, nor does it state any exclusions (e.g., when to use dom_query or dom_click instead). An agent must infer usage from the schema and name.

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

network_add_mockC

Add a network mock rule that intercepts matching requests.

ParametersJSON Schema
NameRequiredDescriptionDefault
methodNoHTTP method to match (optional, matches all if omitted)
targetIdYesTarget ID of the tab
urlPatternYesURL pattern to match (supports * and ** glob wildcards)
responseBodyNoResponse body string
responseCodeYesHTTP response code to return
responseHeadersNoResponse headers as key-value pairs

TDQS

C2.9/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 behavioral burden. It only says 'adds a rule' with no mention of side effects (e.g., overriding existing rules, affecting all future requests in the tab, or needing the tab to be alive). No disclosure of persistence, scoping, or state changes beyond the obvious mutation.

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 with no filler, front-loading the core action. It is concise, though it could include more behavioral context without becoming verbose. It earns a 4 for being tightly written and avoiding repetition of schema details.

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 6-parameter tool with no output schema and no annotations, the description is too thin. It doesn't explain what happens on success, whether mocks persist, how they are matched (beyond the schema's wildcard note), or how they relate to other network tools. An agent would lack enough context to anticipate the tool's full effect.

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 six parameters, so the schema already documents each parameter's meaning. The description adds no extra parameter insight; it doesn't explain the interaction between parameters (e.g., how method filters combine with urlPattern). Baseline 3 applies since the schema handles parameter semantics well.

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

Purpose4/5

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

The description states a clear action ('Add a network mock rule') and a behavioral outcome ('intercepts matching requests'). It distinguishes from siblings like network_remove_mock and network_list_mocks by indicating the add action, though it doesn't explicitly name alternatives. The purpose is evident without needing to open the schema.

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?

There is no guidance on when to use this tool versus alternatives. It doesn't mention that mocks are temporary, how they interact with other mock tools, or when adding a mock is appropriate (e.g., to simulate a response). The description gives no context for selection among the network_* siblings.

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

network_clear_mocksB

Remove all network mock rules for a tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetIdYesTarget ID of the tab

TDQS

B3.3/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden. It states the destructive action but does not disclose side effects, such as whether it affects other tabs, if it also clears mock requests, or if the operation is reversible. The bare sentence does not provide the behavioral context an agent needs to anticipate consequences.

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 states the core action without redundancy. It is appropriately sized for a simple tool with one parameter, containing no filler or unnecessary details.

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 one parameter and no output schema, the description covers the primary action but omits expected side effects, return value, or error behavior. Given the simplicity, it is barely adequate but not fully complete—an agent would benefit from knowing if the operation is scoped solely to the specified tab or if any confirmation is involved.

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

Parameters3/5

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

The schema description covers the only parameter ('targetId' as 'Target ID of the tab') at 100% coverage. The tool description adds no additional meaning to the parameter, so with high schema coverage, 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 action ('Remove') and the resource ('all network mock rules for a tab'). It distinguishes itself from the sibling network_remove_mock (which implies removing a specific rule) and network_list_mocks (listing). For a simple destructive action, this is precise and unambiguous.

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 over alternatives. There is no mention of 'use network_remove_mock for a specific rule' or when clearing all mocks might be appropriate. The description offers no context for selection, leaving the agent to infer based solely on the name.

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

network_clear_requestsB

Clear recorded network requests for a tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetIdYesTarget ID of the tab

TDQS

B3.3/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden of behavioral disclosure. It implies a destructive action but does not state whether recording must be active, whether clearing affects current recording, whether the action is reversible, or what the result is.

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 filler. Every word contributes to the core operation and the tab scope.

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 one-parameter tool with no output schema, the description is functional and correctly scoped. However, without annotations it omits behavioral context such as prerequisites, side effects, and reversibility, leaving the agent to infer these.

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% and the single required parameter targetId is documented as 'Target ID of the tab'. The tool description adds no meaningful parameter semantics beyond what the schema already provides, so the baseline 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 uses a specific verb ('Clear') and a specific resource ('recorded network requests for a tab'), which clearly distinguishes it from sibling tools like network_get_requests and network_clear_mocks. The scope is unambiguous.

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 about when to use this tool versus alternatives such as network_clear_mocks, stopping recording, or resetting state. There are no exclusions or context signals, so the agent must infer usage from the name and sibling list.

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

network_get_requestsB

Get recorded network requests for a tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoFilter by URL substring
limitNoMaximum number of entries to return
methodNoFilter by HTTP method (GET, POST, etc.)
statusNoFilter by HTTP status code
hasErrorNoFilter to only show requests with errors
targetIdYesTarget ID of the tab

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 carry the full burden of behavioral disclosure. It only states the purpose without detailing side effects, failure modes, or whether it requires an active recording. The description does not mention if it returns a snapshot or if it consumes/clears the recorded requests, leaving ambiguity.

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 is front-loaded with the core action, but it lacks any additional structure or context. While concise, it may be overly minimal given the tool's complexity, yet it is not verbose.

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

Completeness2/5

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

Given the tool has six parameters and no output schema or annotations, the description is insufficiently complete. It does not explain what the return data looks like, whether it requires prior recording, or how it interacts with recording and clearing tools. An agent would need to infer these details from the schema and siblings, which is risky.

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 describes all six parameters with 100% coverage, including filters like URL, limit, method, status, and hasError. The description does not add any additional semantics or clarify relationships between parameters beyond the schema. Since the schema is thorough, the description does not need to compensate, but it also does not provide extra value.

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

Purpose5/5

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

The description clearly states the action (get), the resource (recorded network requests), and the scope (for a tab). It differentiates from sibling tools like network_clear_requests and network_start_recording by indicating retrieval rather than mutation or recording. The word 'recorded' implies it accesses previously captured data, adding specificity.

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 network_list_mocks or network_clear_requests. It does not mention prerequisites like starting a recording session or that it only works for a specific tab's captured traffic. There is no indication of when this tool would be preferred over other network tools.

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

network_list_mocksA

List all active network mock rules for a tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetIdYesTarget ID of the tab

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 disclosing behavior. 'List' and 'active' communicate a read-only scoped operation, but the description does not explicitly state that no mocks are modified, nor does it describe return shape or side-effect absence. This is 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?

The description is a single front-loaded sentence with no filler. Every word contributes to identifying the operation, resource, and scope.

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-only tool with one well-documented parameterees, the description is largely sufficient: it states the operation, resource, and scope. The only minor gap is the lack of any detail about the returned data since no output schema is provided, but 'List' reasonably implies a list of mock rules.

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%: targetId is already documented as 'Target ID of the tab'. The description adds only 'for a tab', which reinforces the schema but provides no additional semantic detail beyond what the schema already offers.

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 ('List'), names the exact resource ('active network mock rules'), and scopes it to a tab. This clearly distinguishes it from sibling tools like network_add_mock, network_remove_mock, and network_clear_mocks.

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 its usage through the verb 'List' and the resource scope, so an agent can infer it is for inspection rather than mutation. However, it does not explicitly state when to prefer this over siblings or mention any exclusions, leaving the routing entirely implicit.

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

network_remove_mockB

Remove a network mock rule by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
mockIdYesMock rule ID to remove
targetIdYesTarget ID of the tab

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Remove', implying a destructive action, but does not state whether the removal is permanent, whether it affects active network requests that matched the rule, or what side effects might occur. For a mutation tool with zero annotation coverage, this 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.

Conciseness4/5

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

The description is a single, efficient sentence with no filler. It is front-loaded with the key action and resource. However, it is almost too terse—while concise, it omits useful context about the tool's effect and alternatives, so it earns a 4 rather than a 5.

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 two-parameter removal tool, the description is minimally adequate. However, it lacks any mention of what happens after removal, how it relates to network recording, or that network_clear_mocks exists for bulk removal. This incompleteness makes the tool description only partially sufficient for correct invocation in the full context 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?

The input schema has 100% description coverage, already documenting both 'targetId' and 'mockId' clearly. The description adds no extra semantic meaning beyond the generic 'by ID' phrase. Per the rubric, a baseline of 3 is appropriate when the schema handles parameter documentation effectively.

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

Purpose5/5

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

The description clearly states the specific action (remove), the resource (network mock rule), and the selection mechanism (by ID). It distinguishes this from siblings like network_clear_mocks (which removes all) and network_add_mock (which creates), so an agent can immediately understand the tool's role.

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. The description does not explicitly differentiate removing a single mock rule from clearing all mocks (network_clear_mocks), nor does it mention any prerequisites or context. The agent must infer usage solely from the name and description, which is risky given the existence of network_clear_mocks.

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

network_start_recordingC

Start recording network requests for a tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetIdYesTarget ID of the tab

TDQS

C2.9/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. The description only states that recording starts but does not mention implications such as memory usage, whether recording stops automatically on navigation or tab close, or whether repeated calls stack recordings or cancel previous ones. This is a significant gap for a stateful tool like this.

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 is efficient, though slightly under-specified in terms of context, but for conciseness this is strong.

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 and no annotations, the description should clarify state management (when recording stops, how to retrieve records, whether it resets existing data). It provides none of that. For a stateful command that a test automation agent will likely pair with network_stop_recording and network_get_requests, 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 description coverage is 100%, so the single parameter 'targetId' is already documented as 'Target ID of the tab'. The description adds no extra meaning beyond the schema, but the parameter is straightforward. Baseline 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 states a clear action ('Start recording') on a specific resource ('network requests for a tab'). It is concise and likely distinguishable from siblings like network_stop_recording, though it does not explicitly name the sibling. The verb and resource are specific enough for an agent to infer the action.

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 does not provide any guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., having a tab open), when to stop recording, or how it relates to network_get_requests or network_stop_recording. Agents must infer usage from the tool name alone.

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

network_stop_recordingA

Stop recording network requests for a tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetIdYesTarget ID of the tab

TDQS

A3.6/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 only states the basic action but does not clarify whether stopping is idempotent, what happens if recording was never started, or whether previously recorded requests remain available. This lack of behavioral context is a notable gap for a state-changing 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 a single, front-loaded sentence with no filler or redundancy. It conveys the essential action clearly and efficiently.

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 one-parameter tool with no output schema, the description is largely complete: it states the action and the target. Some behavioral details like idempotency are absent, but the core invocation context is sufficiently clear for an agent to call 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?

The single parameter targetId is fully described in the schema as 'Target ID of the tab', and schema description coverage is 100%. The tool description does not add any additional meaning beyond the schema, 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 uses a specific verb ('Stop recording') and resource ('network requests for a tab'), clearly distinguishing it from sibling tools like network_start_recording and network_get_requests. An agent can immediately understand what operation this tool performs.

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 intended usage is implied: it is the counterpart to network_start_recording and should be used when recording should end. However, the description gives no explicit guidance about when to use this tool versus alternatives, nor any mention of prerequisites or lifecycle expectations.

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

page_evaluateC

Evaluate JavaScript expression in a tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetIdYesTarget ID of the tab
expressionYesJavaScript expression to evaluate
returnByValueNoReturn result by value (default: true)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Evaluate JavaScript expression in a tab' without noting that arbitrary JavaScript can mutate the page, how errors are surfaced, or whether promises are resolved. This is a significant gap for an execution 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 a single front-loaded sentence with no filler. It communicates the core action immediately and earns its place, even though it lacks additional behavioral 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?

There is no output schema and no annotations, so the description must provide enough context for safe invocation. It does not explain return semantics, error handling, side effects, or the effect of returnByValue, leaving the agent under-informed about a potentially destructive operation.

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%, and the schema already documents targetId, expression, and returnByValue clearly. The description adds only the 'in a tab' context, so the schema does the heavy lifting and the baseline 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 states a specific verb and resource: 'Evaluate JavaScript expression in a tab.' It is unambiguous against siblings like dom_query or page_reload. It loses a point because it does not explicitly distinguish itself from related evaluation or inspection tools.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no exclusions, and no mention of alternatives. Given the large sibling list containing DOM interaction and console tools, the agent is left to infer when page_evaluate should be chosen.

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

page_get_urlC

Get the current URL of a tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetIdYesTarget ID of the tab

TDQS

C2.9/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. It states the tool is read-only, but gives no insight into what happens if the targetId is invalid, whether it can return null, or any error behavior. Minimal behavioral context beyond the action itself.

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, compact sentence that is front-loaded with the verb and resource. It has no waste, though it lacks useful 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?

While the tool is simple, without any annotations or output schema, the description should at least hint at what is returned (like a string URL) or prerequisites (a valid tab). It is minimal and leaves critical details undocumented.

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 already describes 'targetId' as 'Target ID of the tab'. The description adds no additional meaning beyond that, but given full coverage, baseline 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 action ('Get') and the resource ('current URL of a tab'), which is specific enough. It doesn't explicitly differentiate from siblings, but no sibling tool has a similar purpose, so it's clear enough.

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 does not provide any guidance on when to use this tool, such as requiring a tab to be open or which targetId to use. It implies needing a tab context but does not state how to obtain a targetId or 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.

page_reloadB

Reload a tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetIdYesTarget ID of the tab
ignoreCacheNoHard reload ignoring cache (default: false)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. 'Reload a tab' implies a mutation but does not explain effects (e.g., whether it waits for load, resets state, or how ignoreCache impacts behavior). It adds no context beyond the action itself.

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?

Ultra-concise single sentence with zero waste. It is appropriately front-loaded and avoids any redundancy, earning a high score for conciseness even though it lacks depth.

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 two-parameter tool with no output schema and no annotations, the description is minimally acceptable. However, it omits any context about the tool's purpose beyond the obvious, such as whether reloading a tab affects browser history or how it interacts with network state. It is not inadequate but leaves the agent with limited situational 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%, so both parameters (targetId, ignoreCache) are fully documented in the schema. The description adds no parameter-specific information, so it meets the baseline without compensating for any gaps.

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?

States a specific verb ('reload') and resource ('a tab'), which is clear and distinct from siblings like tab_open or tab_navigate. However, it doesn't explicitly differentiate from similar actions (e.g., page_evaluate) or mention that it refreshes the current page, so it's clear but not detailed.

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?

Provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or scenarios where reloading is appropriate. The agent must infer usage 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.

tab_closeA

Close a browser tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetIdYesTarget ID of the tab to close

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 the behavioral disclosure burden. "Close" conveys the core destructive action, but the description does not mention irreversibility, failure behavior when the target doesn't exist, or any effect on the browser session. For a simple close operation this is minimally adequate.

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 one short, front-loaded sentence with no wasted words. It states exactly what the tool does and nothing more.

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 is simple and the single parameter is fully documented in the schema. However, the description omits practical context like how to find targetId or what happens after the last tab is closed, making it only minimally complete 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?

The input schema already documents targetId with "Target ID of the tab to close," giving 100% schema coverage. The description adds no additional parameter meaning, which is acceptable given the schema covers it.

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 and resource: "Close a browser tab." This clearly distinguishes it from sibling tools like tab_open, tab_navigate, and tab_list.

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 for when to use this tool versus alternatives, nor does it mention prerequisites such as an active browser session or obtaining the targetId via tab_list. The agent must infer usage entirely from the name and schema.

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

tab_listA

List all open browser tabs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

There are no annotations, so the description carries the full burden. It clearly signals a read-only enumeration operation, but provides no detail about ordering, scope across windows, or the response shape. Acceptable for a simple list tool, but not rich.

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 wasted words. Every word adds meaning and it is immediately understandable.

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 there are no parameters and no output schema, the description tells an agent enough to invoke the tool correctly. It could be slightly more complete by mentioning what information is returned, but the tool is simple enough that this is not a major gap.

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

Parameters4/5

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

The tool has zero parameterswes, so there is nothing for the description to explain. The schema coverage is complete, and the baseline for zero-parameter tools is 4.

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

Purpose5/5

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

The description uses a specific verb, 'List', with a clear resource, 'all open browser tabs'. It clearly distinguishes itself from siblings like tab_open, tab_navigate, and tab_close by indicating this tool only enumerates tabs.

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 use case is implied: call this tool when you need to know which browser tabs are currently open. However, there is no explicit guidance about when to prefer this over related tools or mention of any alternatives.

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

tab_navigateB

Navigate a tab to a URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to navigate to
targetIdYesTarget ID of the tab to navigate

TDQS

B3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only states 'navigate' without explaining whether it waits for page load, returns any confirmation, handles invalid target IDs, or affects the page's loading state. Since there's no output schema and no extra detail, an agent cannot predict the tool's side effects or return behavior, which is a significant gap for a mutating action.

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

Conciseness3/5

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

The description is extremely concise, consisting of a single sentence with no fluff. It front-loads the action and resource, which is good, but it's so minimal that it lacks critical information. While conciseness is valued, this borders on under-specification rather than efficient brevity, so a middle score is warranted.

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 that the tool has no annotations, no output schema, and a very brief description, it is incomplete for an agent to use reliably. It doesn't cover expected behavior, error conditions, or return values, and doesn't reference sibling tools for context. The simplicity of the tool (two parameters, no nested objects) is low complexity, but the lack of behavioral disclosure leaves the definition 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?

The input schema provides descriptions for both parameters (URL and target ID), covering 100% of them. The description adds no additional meaning beyond what the schema already states. Baseline of 3 is appropriate since the schema handles parameter documentation adequately, and the description doesn't contribute extra semantic context such as URL format expectations or how target IDs are obtained.

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 'navigate' and the resource 'a tab' with a target URL, which is specific and unambiguous. It implies an existing tab (as opposed to tab_open which creates a new tab), though it doesn't explicitly differentiate from siblings like tab_open or tab_reload. The purpose is clear enough for an agent to infer the core action.

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 gives a clear statement of what the tool does but provides no guidance on when to use it versus alternatives. It doesn't mention when not to use it (e.g., for opening a new tab) or mention any prerequisites like ensuring the tab exists. The context is implied but not explicitly stated, leaving some ambiguity for an agent choosing between this and similar navigation-related tools.

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

tab_openA

Open a new browser tab and navigate to a URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoURL to open (default: about:blank)

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 the behavioral burden and does disclose the core side effect: a new tab is opened and navigated. It doesn't state whether the tab becomes active, how invalid URLs are handled, or what the tool returns, leaving some behavior implicit.

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 short sentence with no filler. The main action appears first, and every word 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 one-optional-parameter tool with no nested schema, this is nearly complete: the action and URL parameter are covered. It falls just short of full completeness by not stating post-navigation behavior or return value, but the low complexity makes the gap minor.

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 doesn't need to document the url parameter; the schema already states the default about:blank. The description only reinforces the URL concept without adding new 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 states a specific action ('Open a new browser tab') and destination ('navigate to a URL'). It distinguishes from tab_navigate by emphasizing a new tab rather than navigation in an existing context, though it doesn't explicitly name the alternative.

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 phrase 'new browser tab' implies use when a separate tab is needed, and the sibling name tab_navigate suggests the alternative for existing tabs. However, no explicit when/when-not guidance 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.

tab_screenshotB

Take a screenshot of a tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
clipNoClip region
formatNoImage format (default: png)
qualityNoJPEG/WebP quality 0-100
fullPageNoCapture full page (default: false)
targetIdYesTarget ID of the tab

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 alone must disclose behavioral traits, but it only states the action. It does not mention whether the capture is non-destructive, whether it returns an image payload or path, how fullPage/clip interact, or the effect on the tab. The word 'screenshot' weakly implies read-only capture, but substantial behavioral 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.

Conciseness5/5

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

A single front-loaded sentence with zero filler. It conveys the core operation immediately and leaves parameter details to the schema, which is well documented.

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 schema covers all parameters, but with no output schema the description should clarify what the tool returns (e.g., a base64 image or a file path) and confirm basic preconditions. For a simple capture tool this is a moderate gap, making it minimally 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 description coverage is 100%, so the structured schema already documents targetId, format, quality, clip, and fullPage. The description adds no parameter-level meaning beyond that, so the 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?

States the exact operation (take a screenshot) and the resource (a tab) in one clear sentence. This differentiates it from sibling tools like banner_get_screenshots and navigation/evaluation tools, so an agent immediately knows its role.

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 gives no guidance on when to choose this over alternatives, no prerequisites (e.g., that a targetId must come from tab_list or a tab must be open), and no exclusions. An agent has to infer usage entirely from the name and schema.

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. 32 tool updatesv1.1.0
    • First observedbanner_get_screenshots
    • First observedbanner_update
    • First observedbrowser_connect
    • First observedbrowser_disconnect
    • First observedbrowser_launch
    • First observedbrowser_status
    • First observedconsole_clear
    • First observedconsole_get_logs
    • First observedconsole_start
    • First observedconsole_stop
    • First observeddom_click
    • First observeddom_get_value
    • First observeddom_input_value
    • First observeddom_query
    • First observeddom_query_all
    • First observeddom_wait_for
    • First observednetwork_add_mock
    • First observednetwork_clear_mocks
    • First observednetwork_clear_requests
    • First observednetwork_get_requests
    • First observednetwork_list_mocks
    • First observednetwork_remove_mock
    • First observednetwork_start_recording
    • First observednetwork_stop_recording
    • First observedpage_evaluate
    • First observedpage_get_url
    • First observedpage_reload
    • First observedtab_close
    • First observedtab_list
    • First observedtab_navigate
    • First observedtab_open
    • First observedtab_screenshot

TDQS

B3.3/5.0

Scored across 32 tools

Disambiguation5/5

Each tool is namespaced by subsystem (browser, tab, page, dom, network, console, banner) and performs a clearly distinct action. Even similar tools like network_remove_mock versus network_clear_mocks are easily differentiated by specificity.

Naming Consistency4/5

The naming is largely consistent with a domain_prefix plus action pattern, and all tools use snake_case. Minor deviations like browser_status, tab_screenshot, and dom_input_value break the strict verb_noun pattern but do not cause real confusion.

Tool Count2/5

With 32 tools, the server exceeds the 25-tool threshold and feels heavy even though the tools are organized by subsystem. The count is defensible for a full browser automation surface, but it is still more than a typical MCP server should expose.

Completeness3/5

The toolset covers core browser automation workflows: browser lifecycle, tabs, DOM interaction, network interception, console logging, and screenshots. However, browser_launch has no corresponding browser_close or quit tool, so a launched Chrome instance cannot be cleanly terminated through the server.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that provides tools for interacting with Chrome through its DevTools Protocol, enabling remote control of Chrome tabs to execute JavaScript, capture screenshots, monitor network traffic, and more.
    29 npm
    53
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    An MCP server based on Puppeteer and Chrome DevTools Protocol for advanced browser debugging, performance analysis, and memory detection. It enables users to inspect DOM elements, monitor console errors, capture screenshots, and perform heap snapshot analysis through persistent browser connections.
    10
    17 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that connects to your browser to capture screenshots, inspect console logs, network requests, and more via Chrome DevTools Protocol.
    4 npm
    2
    MIT