Skip to main content
Glama
softallice

@nxavis/agent-browser-mcp

by softallice

@nxavis/agent-browser-mcp

npm version License: MIT Node.js

A Model Context Protocol (MCP) server that provides browser automation capabilities through Vercel's agent-browser. This enables LLMs to interact with web pages using a fast Rust CLI with Node.js fallback.

Quick Start

# 1. Install agent-browser CLI
npm install -g agent-browser && agent-browser install

# 2. Add to Claude Desktop (or your MCP client)
npx @nxavis/agent-browser-mcp

Then use tools like browser_navigate, browser_click, browser_snapshot to control the browser from your AI agent.

Related MCP server: Puppeteer MCP Server

Features

  • AI-Optimized Browser Control - Semantic element locators using accessibility properties, text matching, and data attributes

  • Session Isolation - Multiple isolated browser sessions with separate cookies, storage, and navigation history

  • Comprehensive Automation - Navigation, form filling, clicking, scrolling, keyboard input, and more

  • Data Extraction - Get text, HTML, attributes, accessibility snapshots, screenshots, and PDFs

  • Cookie Management - Full control over browser cookies and storage

  • JavaScript Execution - Run arbitrary scripts in the browser context

  • Network Inspection - Monitor console messages and network requests

Installation

npm install @nxavis/agent-browser-mcp

Or run directly with npx:

npx @nxavis/agent-browser-mcp

Prerequisites

# Install agent-browser globally
npm install -g agent-browser

# Download Chromium browser
agent-browser install

# On Linux, install system dependencies if needed:
# agent-browser install --with-deps

⚠️ Windows Note: agent-browser currently has known issues on Windows with native shells (PowerShell/CMD). For Windows users, we recommend using WSL (Windows Subsystem for Linux) until the upstream issue is resolved.

Configuration

Claude Desktop

Add to your claude_desktop_config.json:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "agent-browser": {
      "command": "npx",
      "args": ["@nxavis/agent-browser-mcp"]
    }
  }
}

VS Code

Add to your VS Code settings (JSON):

{
  "mcp": {
    "servers": {
      "agent-browser": {
        "command": "npx",
        "args": ["@nxavis/agent-browser-mcp"]
      }
    }
  }
}

Antigravity

Add to your .mcp.json file in your project root or home directory:

{
  "mcpServers": {
    "agent-browser": {
      "command": "npx",
      "args": ["@nxavis/agent-browser-mcp"]
    }
  }
}

Or use the global configuration at ~/.mcp.json:

{
  "mcpServers": {
    "agent-browser": {
      "command": "npx",
      "args": ["@nxavis/agent-browser-mcp"],
      "env": {
        "AGENT_BROWSER_PATH": "/usr/local/bin/agent-browser"
      }
    }
  }
}

Custom agent-browser Path

If agent-browser is not in your PATH, specify its location:

{
  "mcpServers": {
    "agent-browser": {
      "command": "npx",
      "args": ["@nxavis/agent-browser-mcp"],
      "env": {
        "AGENT_BROWSER_PATH": "/path/to/agent-browser"
      }
    }
  }
}

Available Tools

Navigation

  • browser_navigate - Navigate to a URL

  • browser_go_back - Navigate back in browser history

  • browser_go_forward - Navigate forward in browser history

  • browser_reload - Reload the current page

Interaction

  • browser_click - Click on an element

  • browser_fill - Fill a text input field

  • browser_type - Type text character by character

  • browser_hover - Hover over an element

  • browser_scroll - Scroll the page or a specific element

  • browser_select - Select an option from a dropdown

  • browser_check - Check a checkbox or radio button

  • browser_uncheck - Uncheck a checkbox

  • browser_press - Press a keyboard key

Data Extraction

  • browser_get_text - Get text content from an element or page

  • browser_get_html - Get HTML content

  • browser_get_attribute - Get an attribute value

  • browser_get_url - Get the current page URL

  • browser_get_title - Get the current page title

  • browser_snapshot - Get accessibility tree snapshot

Session Management

  • browser_new_session - Create a new isolated browser session

  • browser_close_session - Close a browser session

Screenshots & PDF

  • browser_screenshot - Take a screenshot

  • browser_pdf - Generate a PDF of the current page

For a complete list of tools and their parameters, see the original documentation.

Development

# Clone the repository
git clone https://github.com/nxavis/agent-browser-mcp.git
cd agent-browser-mcp

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

# Watch mode
npm run dev

License

MIT

Credits

This package is based on agent-browser-mcp by minhlucvan, adapted for the @nxavis ecosystem.

Available Tools

34 tools
browser_checkA

Check a checkbox or radio button

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesSelector for the checkbox/radio element
sessionIdNoBrowser session ID

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 burden of behavioral disclosure. It only says 'Check a checkbox or radio button,' but doesn't disclose that this mutates the element's checked state, whether it triggers events, or any prerequisites. It's a state-changing operation with no transparency about side effects.

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

Conciseness5/5

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

The description is one concise, front-loaded sentence that directly states the action and target. No wasted words.

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

Completeness3/5

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

For a simple action tool with full schema coverage, the description plus schema is minimally sufficient. However, since it's a mutation tool with no annotations and no output schema, it could benefit from mentioning return behavior, error conditions, or that it works on the current page.

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

Parameters3/5

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

Schema description coverage is 100%, with both 'selector' and 'sessionId' already described in the schema. The tool description adds no additional parameter meaning beyond what the schema 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.

Purpose4/5

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

The description specifies the tool's action ('Check') and target ('checkbox or radio button'), which is a clear verb+resource pair. It implicitly distinguishes from sibling tools like browser_click (generic click) and browser_uncheck (opposite action), though it doesn't explicitly name alternatives.

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

Usage Guidelines4/5

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

The description clearly states the context: use for checkboxes or radio buttons. This implies it should be used over generic clicks for these element types, and the existence of browser_uncheck suggests when not to use (when unchecking). However, it doesn't explicitly state exclusions or alternatives.

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

browser_clear_cookiesB

Clear all cookies

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdNoBrowser session ID

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits on its own. It only says 'Clear all cookies' without mentioning that this is destructive, irreversible, affects all cookies in the browser context, or could terminate user sessions. This is a significant gap for a mutation 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, short sentence with no wasted words. It is front-loaded and easy to parse, achieving maximum clarity with minimal text.

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 is destructive and there is no output schema or annotation support, the description is too sparse. It does not explain the scope of 'all cookies' (e.g., entire browser vs. current session) or warn about side effects, leaving the agent under-informed for a potentially impactful action.

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

Parameters3/5

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

The single parameter 'sessionId' is already described in the schema as 'Browser session ID', so schema coverage is 100%. The description adds no additional meaning about the parameter, such as whether it scopes the clearing to a particular session, but the schema alone provides sufficient baseline semantics.

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

Purpose5/5

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

The description 'Clear all cookies' uses a specific verb ('clear') and a clear resource ('all cookies'), making the tool's purpose immediately obvious. It also distinguishes itself from sibling tools like browser_set_cookie and browser_get_cookies by focusing on the destructive clearing 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 provides no guidance on when to use this tool versus alternatives such as browser_set_cookie or browser_get_cookies. There is no mention of scenarios where clearing all cookies is appropriate, nor any exclusions (e.g., not for specific domains).

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

browser_clickB

Click on an element identified by selector or accessibility properties

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector, text content, or accessibility locator
sessionIdNoBrowser session ID

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. It only says 'Click' without mentioning side effects, prerequisites (e.g., element visibility), or what happens if the element is not found. This is minimal for a tool with mutation-like behavior.

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

Conciseness5/5

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

The description is a single concise sentence that communicates the core function without any redundant words. It is appropriately sized for the tool's simplicity.

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 click action, the description is adequate, but it omits any mention of sessionId behavior or return values. Given the large sibling toolset, additional context about when to use click versus other interaction tools would improve completeness.

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

Parameters3/5

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

The schema covers both parameters with descriptions. The tool description adds value by explaining that 'selector' can be a CSS selector, text content, or accessibility locator, which clarifies the parameter's flexibility beyond the schema's generic phrasing.

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 ('Click') and the resource ('element'), and specifies how to identify it ('selector or accessibility properties'). However, it does not explicitly distinguish itself from sibling tools like browser_press or browser_hover, though the action is inherently different.

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 such as browser_press, browser_fill, or browser_hover. The description only states what the tool does, not the context in which it should be chosen.

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

browser_close_sessionC

Close a browser session

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYesSession ID to close

TDQS

C2.2/5.0
Behavior1/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, but it only states the action without detailing side effects, resource cleanup, idempotency, or error conditions. This leaves significant ambiguity about what closing a session entails.

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, succinct sentence that is front-loaded and easy to parse. It is concise in length, though it sacrifices substantive content for brevity, which is slightly more than a pure restatement but still efficient.

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

Completeness2/5

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

Despite the tool's simplicity, the description is too sparse given the lack of annotations and output schema. It does not explain what happens after closing, whether the session ID becomes invalid, or any impact on other browser operations, leaving the context 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 already provides a clear description for the single parameter ('Session ID to close'), achieving 100% schema description coverage. The tool description adds no additional meaning to the parameter, so a baseline score of 3 is appropriate.

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

Purpose2/5

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

The description 'Close a browser session' is essentially a tautology of the tool name 'browser_close_session', adding no new information beyond what the name already conveys. It does not articulate the purpose beyond restating the action, so it fails to add value.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention relationships with sibling tools like browser_new_session, nor does it indicate appropriate use cases or prerequisites.

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

browser_evaluateB

Execute JavaScript code in the browser context

ParametersJSON Schema
NameRequiredDescriptionDefault
scriptYesJavaScript code to execute
sessionIdNoBrowser session ID

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. It fails to mention potential side effects (e.g., page state changes), return values, session requirements, or whether the code runs in the main frame or isolated context. This is a significant gap for a powerful 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.

Conciseness3/5

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

The description is a single sentence, which is concise and front-loaded with the core action. However, it is underspecified, delivering no context about prerequisites, side effects, or when to use the tool. It is concise but not adequately informative.

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

Completeness1/5

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

Given the complexity of the tool (arbitrary JavaScript execution), the lack of annotations, and no output schema, the description is severely incomplete. It does not cover return values, errors, security implications, or how the sessionId affects execution. This is insufficient for an agent to safely and effectively use the tool.

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

Parameters3/5

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

The schema already provides clear descriptions for both parameters (script and sessionId), covering 100% of them. The tool description adds no additional meaning about parameter usage, formats, or constraints beyond what the schema states.

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

Purpose5/5

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

The description clearly states the tool executes JavaScript code in the browser context, using a specific verb ('execute') and a distinct resource ('JavaScript code'). It differentiates itself from sibling browser_* tools by focusing on arbitrary code execution rather than predefined actions.

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 this tool is for running custom JavaScript, but it does not explicitly say when to use it over the sibling tools (e.g., for complex interactions not covered by click/fill). No exclusions or alternative recommendations are provided.

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

browser_fillB

Fill a text input field with the specified value

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesText value to fill in
selectorYesSelector for the input element
sessionIdNoBrowser session ID

TDQS

B3.1/5.0
Behavior2/5

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

Annotations are absent, so the description must carry the full burden of disclosing behavior. It does not state whether existing values are cleared, whether input events are triggered, or whether the element must be interactable, which are critical for a mutation 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 redundant or extraneous information. It is concise and efficient, earning the highest score.

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 action with full schema coverage, the description is minimally viable. However, it lacks disambiguation from browser_type and does not clarify behavior around event firing or value replacement, leaving gaps for an agent navigating a suite of many browser tools.

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

Parameters3/5

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

Schema descriptions cover all three parameters at 100% coverage, providing clear meanings for value, selector, and sessionId. The tool description adds no significant semantic detail 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.

Purpose4/5

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

The description clearly identifies the action ('Fill') and the target ('text input field') with the specified value. However, it does not distinguish from sibling tools like browser_type, which could also operate on inputs, so it lacks 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 provided on when to use this tool versus browser_type or other input methods. It does not mention prerequisites, such as element visibility, or any exclusions, leaving the agent to infer usage context.

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

browser_get_attributeB

Get an attribute value from an element

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesSelector for the element
attributeYesName of the attribute to get
sessionIdNoBrowser session ID

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 behavioral transparency burden. It does not disclose whether the operation is read-only (though 'get' implies it), what happens if the element or attribute is missing, or the return type. This lack of explicit behavior leaves a gap.

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

Conciseness5/5

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

The description is a single sentence with no filler, efficiently front-loading the purpose. It earns its place without any 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 simple getter with no output schema, the description provides only the action and target. It is minimally complete but lacks context on return values and error behavior, leaving some uncertainty for an agent. A score of 3 reflects an adequate but not rich description.

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 describes all parameters with 100% coverage, and the description adds no additional meaning beyond the schema's own descriptions. Baseline 3 is appropriate because the schema does the heavy lifting.

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

Purpose4/5

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

The description states the action clearly: 'Get an attribute value from an element'. It identifies the specific verb and resource, but does not explicitly differentiate from sibling getter tools like browser_get_text or browser_get_html, 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?

The description offers no guidance on when to use this tool over alternatives, nor does it mention any exclusions or prerequisites. It simply restates the function without any context about selection.

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

browser_get_consoleC

Get console messages from the browser

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdNoBrowser session ID

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 only says 'Get console messages' with no mention of side effects, return format, whether messages are cleared, or any permissions needed. This is a significant gap for a tool that might affect browser state.

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

Conciseness5/5

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

The description is a single, direct sentence with no redundant information. It is front-loaded and wastes no words, making it highly concise.

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 there is no output schema, the description should explain what the tool returns (e.g., a list of messages, format, source), but it does not. It also lacks any context about the nature of console messages or typical use cases, making it incomplete for an agent to use 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 input schema has one parameter, sessionId, with a 'Browser session ID' description, yielding 100% schema coverage. The description does not add any extra meaning for the parameter, 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.

Purpose4/5

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

The description uses a clear verb 'Get' with a specific resource 'console messages from the browser', which distinguishes it from sibling tools that handle navigation, clicks, or other browser interactions. It is clear enough, though it could specify the types of console messages (e.g., logs, errors, warnings).

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, no prerequisites, and no exclusions. It simply states what it does, leaving the agent without context for selection.

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

browser_get_cookiesC

Get cookies from the browser

ParametersJSON Schema
NameRequiredDescriptionDefault
urlsNoURLs to get cookies for
sessionIdNoBrowser session ID

TDQS

C2.8/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 'get' which implies read-only, but does not explain what is returned, how cookies are formatted, whether a session is required, or what happens if the session does not exist. This is insufficient for an agent to anticipate tool behavior.

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 a single concise sentence, but it is under-specified. While there is no wasted wording, the brevity sacrifices necessary context, making it barely adequate rather than well-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?

Given the simple getter nature and absence of an output schema, the description should at least clarify what cookies are returned and under what conditions. It fails to provide this, leaving the tool incomplete for an agent to use confidently. Sibling tools like set_cookies add context that could have been leveraged.

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

Parameters3/5

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

Schema description coverage is 100% with both 'urls' and 'sessionId' already described. The tool description adds no extra meaning beyond the schema, so it meets the baseline of 3 but does not enhance parameter understanding.

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 'Get cookies from the browser' clearly states the operation and resource, and distinguishes from siblings like set_cookies and clear_cookies. However, it lacks specificity about whether it retrieves all cookies or those for specific URLs, which is a minor clarity gap.

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. There is no mention of prerequisites, session requirements, or differentiation from browser_set_cookies/browser_clear_cookies. This leaves the agent without direction on tool selection.

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

browser_get_htmlA

Get HTML content from an element or the entire page

ParametersJSON Schema
NameRequiredDescriptionDefault
outerNoGet outer HTML instead of inner HTML
selectorNoSelector for the element (gets full page HTML if not provided)
sessionIdNoBrowser session ID

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 full burden. It adds scoping behavior (element or page) but does not disclose potential limitations such as behavior with invalid selectors or whether the operation is purely local. It is adequate for a simple read 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 filler. Every word contributes to understanding the tool's function.

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 getter with fully described parameters, the description adequately covers the core functionality. The lack of an output schema is mitigated by the straightforward 'HTML content' outcome, though it could mention return format nuances.

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 all three parameters, so the baseline of 3 applies. The description adds no additional parameter semantics beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the tool gets HTML content, specifying both element and full-page scope. This distinguishes it from sibling getters like browser_get_text and browser_get_attribute.

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?

It implies usage context (element vs entire page) but provides no explicit guidance on when to choose this over other getters like browser_get_text or browser_get_url. There are no exclusions or alternatives mentioned.

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

browser_get_networkB

Get network requests made by the browser

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdNoBrowser session ID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'get network requests' without specifying return format, whether it returns live or historical requests, or if any side effects occur. This is insufficient 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.

Conciseness4/5

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

The description is a single, concise sentence with no fluff. It is front-loaded with the core action, though it could be slightly more detailed without sacrificing conciseness.

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

Completeness2/5

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

The tool is simple, but with no output schema, the description should explain what 'network requests' entails (e.g., list of URLs, status codes, timing). It also lacks usage context relative to sibling getters, making it incomplete for an agent to invoke correctly.

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

Parameters3/5

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

The schema fully describes the single parameter sessionId as 'Browser session ID', so schema coverage is 100%. The tool description adds no additional meaning about the parameter, which is acceptable since the schema already handles 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 clearly states the tool's function: 'Get network requests made by the browser'. It specifies the verb (get), resource (network requests), and scope (made by the browser), which distinguishes it from other getter tools like browser_get_url or browser_get_console.

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. It does not mention prerequisites, such as requiring a valid session ID, nor does it explain scenarios where other getters (e.g., browser_get_console) would be more appropriate.

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

browser_get_textA

Get text content from an element or the entire page

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorNoSelector for the element (gets full page text if not provided)
sessionIdNoBrowser session ID

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, and the description only states the action without disclosing details like text extraction semantics (visible vs hidden), error handling, or return format. This leaves the agent without important behavioral context for a read operation.

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

Conciseness5/5

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

Single sentence, no filler, immediately states the function and 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 simple getter, the description covers the core behavior and optional selector, but omits return type specifics and edge-case behavior (e.g., missing element), which matters since there is no output schema or annotations.

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

Parameters3/5

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

Schema covers both parameters with descriptions, including selector optionality and session ID. The tool description adds no extra parameter semantics beyond this, 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 'get' and resource 'text content', and clarifies scope ('element or entire page'), distinguishing it from sibling getters like get_html and get_attribute.

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

Usage Guidelines3/5

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

The description implies usage for retrieving text but does not explicitly state when to prefer it over alternatives or when not to use it. No exclusions or alternative tool mentions are provided.

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

browser_get_titleB

Get the current page title

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdNoBrowser session ID

TDQS

B3.1/5.0
Behavior1/5

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

With no annotations provided, the description carries full responsibility for disclosing behavioral traits, but it only restates the tool's name. It does not mention what happens when no page is loaded, whether a session must be active, or the exact return format, leaving the agent without critical operational detail.

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 repetition. It is appropriately sized for a simple getter operation, earning full marks for conciseness.

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

Completeness3/5

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

The description is minimal but covers the core action. However, it lacks explicit mention of return value format, session optionality, and failure behavior. Given the absence of an output schema and annotations, these are meaningful gaps, making the description adequate but not complete.

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

Parameters3/5

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

The input schema already has 100% coverage for the single parameter (sessionId, described as 'Browser session ID'), so the baseline is 3. The description adds no additional parameter context, but it also does not need to, given the schema's clarity.

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

Purpose5/5

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

The description uses a specific verb ('Get') and a clear resource ('current page title'), making the purpose immediately apparent. It also distinguishes itself from sibling getter tools like browser_get_text and browser_get_url by targeting title specifically.

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 the many sibling browser tools, nor any context about prerequisites or session requirements. There is no mention of alternatives or when not to use it.

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

browser_get_urlB

Get the current page URL

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdNoBrowser session ID

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 behavioral disclosure burden. However, it merely restates the tool name without mentioning read-only nature, error handling, or return format. It adds no information beyond the obvious, unlike tools that disclose side effects or limitations.

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

Conciseness5/5

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

The description is a single concise sentence, 'Get the current page URL', with no superfluous words. It is appropriately front-loaded and minimal, matching the tool's trivial complexity.

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

Completeness4/5

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

The tool is simple with one optional parameter and no output schema. The description conveys the core function adequately but omits details like the return format (e.g., full URL string) and behavior when no page is loaded. Given the low complexity, it is mostly complete but could benefit from a note about return values.

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 documents the only parameter 'sessionId' with description 'Browser session ID', achieving 100% schema coverage. The description does not mention or elaborate on this parameter, so it adds no semantic value beyond the schema. The baseline of 3 is appropriate given the schema's completeness.

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 'Get the current page URL' uses a specific verb and resource, clearly identifying the tool's function. It distinguishes from siblings like browser_get_title or browser_get_text by explicitly targeting the URL, making the purpose unambiguous.

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

Usage 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 browser_get_title or browser_snapshot. It lacks explicit prerequisites, exclusions, or references to sibling tools. Usage is only implied by the tool name, which is insufficient for higher scoring.

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

browser_go_backA

Navigate back in browser history

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdNoBrowser session ID

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 must carry the full burden of behavioral disclosure. It only states the action without mentioning side effects, error conditions (e.g., no history), session requirements, or what happens on failure. This is a clear gap for a mutating operation.

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

Conciseness5/5

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

The description is a single concise sentence with no redundant words. Every word contributes to the core meaning, and the structure is optimally front-loaded.

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

Completeness3/5

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

Given the simplicity of the tool (one optional parameter, no output schema), the description is minimally adequate. However, it omits any mention of return values, errors, or session handling, which leaves some gaps for an agent to safely invoke the tool in all scenarios.

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

Parameters3/5

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

The schema provides 100% coverage for the sessionId parameter with its description. The tool description adds no additional meaning or context about the parameter, 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 'Navigate back in browser history' uses a specific verb ('navigate back') and resource ('browser history'), and clearly distinguishes from sibling tools like browser_go_forward. It unambiguously states what the tool does.

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

Usage Guidelines3/5

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

The description implies the usage context (when you want to go back in history) but provides no explicit guidance on when to use this vs. alternatives, nor any exclusions or prerequisites. It is minimally sufficient but lacks direction.

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

browser_go_forwardB

Navigate forward in browser history

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdNoBrowser session ID

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 does not disclose edge-case behavior (e.g., what happens when there is no forward history) or how sessionId affects the operation. It only states the basic action, leaving the agent to infer behavior.

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?

At five words in a single sentence, the description is extremely concise and front-loaded, with no wasted words. It effectively communicates the core action without redundancy.

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

Completeness2/5

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

Given the one optional parameter and no output schema, the description is minimal but omits important context such as default session behavior, failure modes, and whether the sessionId is required. An agent would need to infer these details, making the description incomplete for a robust 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?

The schema already documents the only parameter sessionId with a description ('Browser session ID'), giving 100% coverage. The description adds no additional parameter information, so it earns the baseline 3 as the schema carries the burden.

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 'Navigate forward in browser history' uses a specific verb and resource, clearly distinguishing it from its sibling browser_go_back by direction. It is unambiguous and directly states the tool's function.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool over alternatives like browser_navigate or browser_go_back. It relies entirely on the tool name for differentiation, offering no context or exclusions.

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

browser_hoverC

Hover over an element

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesSelector for the element to hover
sessionIdNoBrowser session ID

TDQS

C2.7/5.0
Behavior1/5

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

With no annotations, the description carries the full burden for disclosing behavioral traits, but it provides none. It doesn't mention side effects (e.g., triggering hover menus), requirements (e.g., element visibility), or error handling—just a bare action statement.

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 words. It conveys the core purpose efficiently and is appropriately sized for a simple interaction tool, earning the highest score for structure.

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 no output schema and no annotations, the description is too sparse to be complete. It omits context about return values, session handling, and how hover relates to other browser actions, leaving the agent underinformed for a browser automation task.

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 both parameters ('selector' and 'sessionId') are already documented in the input schema. The description adds no additional meaning beyond the schema, matching the baseline of 3 for high schema coverage.

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 ('Hover') and the resource ('an element'), using a specific verb+noun structure. It uniquely identifies the operation among siblings like browser_click and browser_fill, but does not explicitly name alternatives or add nuance, so it stops short of the highest tier.

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 hover versus other actions, nor does it mention prerequisites or exclusions. It simply states what the tool does, leaving the agent without context for selecting it over alternatives.

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

browser_is_checkedB

Check if a checkbox/radio is checked

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesSelector for the checkbox/radio element
sessionIdNoBrowser session ID

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states the action but does not disclose the return type (e.g., boolean), behavior when the element is not found, or how multiple matches are handled.

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 wasted words. It is immediately clear and front-loaded.

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 simple query tool with no output schema, the description is too sparse. It does not specify the return value or error conditions, leaving important behavioral details unspecified. It also lacks usage context.

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

Parameters3/5

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

The schema already provides clear descriptions for both parameters ('Selector for the checkbox/radio element' and 'Browser session ID'), so schema coverage is complete. The description adds no additional parameter semantics, yielding the baseline score.

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

Purpose5/5

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

The description clearly states the tool performs a verification of checkbox/radio state, using the specific verb 'Check if' and the resource 'checkbox/radio'. This distinguishes it from sibling tools like browser_check and browser_uncheck, which modify state.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives. It does not mention that it is a read-only verification, nor does it contrast with browser_check/browser_uncheck or the other state-query tools like browser_is_visible.

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

browser_is_enabledC

Check if an element is enabled

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesSelector for the element
sessionIdNoBrowser session ID

TDQS

C2.4/5.0
Behavior1/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 disclosure. It only states the basic purpose and gives no details about return type, error handling, or waiting behavior. This is insufficient for an agent to understand side effects or expected results.

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 unnecessary words. It is front-loaded and easy to parse, though extremely brief.

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

Completeness1/5

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

The tool is a state-checking operation with no output schema and no annotations. The description does not explain what the tool returns (e.g., boolean), how it behaves if the element is not found, or any prerequisites. This is significantly incomplete for an agent to use 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 input schema has 100% description coverage for both parameters, so the description doesn't need to add parameter details. However, it also doesn't provide any additional semantics beyond the schema, so a baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action (check) and the target (an element's enabled state). It uses a specific verb and resource, distinguishing it from sibling tools like browser_is_visible and browser_is_checked.

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

Usage Guidelines1/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. It doesn't mention conditions for use, exclusions, or relationships to other state-checking tools.

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

browser_is_visibleC

Check if an element is visible

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesSelector for the element
sessionIdNoBrowser session ID

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 'check if visible' and does not clarify return format (e.g., boolean), whether it waits for visibility or checks immediately, error handling for missing elements, or whether it triggers any side effects.

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

Conciseness4/5

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

The description is a single, direct sentence that efficiently conveys the core purpose. There is no wasted text, though it could be more informative without losing conciseness.

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

Completeness2/5

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

The tool is simple but still lacks essential context: no output schema, no annotations, and no description of return values or behavior on missing elements. For a check-type tool, the user likely needs to know if it returns a boolean or throws an exception, which is omitted.

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

Parameters3/5

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

Schema description coverage is 100%, with 'Selector for the element' and 'Browser session ID' being accurate though generic. The description itself adds no additional parameter context, so the schema provides the baseline which is sufficient.

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 (check) and resource (element visibility), which is clear. However, it does not explicitly distinguish from sibling state-check tools like browser_is_enabled or browser_is_checked, though the name itself makes the purpose unambiguous.

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

Usage 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 such as browser_wait_for_selector or browser_snapshot. There is no mention of prerequisites, such as the element needing to exist or be attached to the DOM, nor when not to use it.

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

browser_navigateA

Navigate to a URL in the browser

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to navigate to
sessionIdNoBrowser session ID for isolation

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. It only states the action without revealing any side effects, page load behavior, or session isolation semantics. This provides minimal transparency beyond the 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, concise sentence that front-loads the essential verb and resource. No wasted words, and the structure is immediately scannable.

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 and full schema coverage, the description is minimally sufficient but lacks behavioral context like whether it waits for page load or how sessionId affects isolation. It is not incomplete enough to hinder basic usage, but more context could improve 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?

The input schema provides 100% coverage with descriptions for both 'url' and 'sessionId', so the description adds no further parameter meaning. Baseline 3 is appropriate as the schema handles parameter semantics adequately.

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

Purpose5/5

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

The description clearly states the action (navigate) and the resource (a URL), which is specific and distinct from sibling tools like browser_go_back, browser_go_forward, and browser_reload. It unambiguously identifies the tool's primary function.

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

Usage Guidelines3/5

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

The description implies usage for loading a specific URL, which is distinct from history navigation (go_back/go_forward) and reload. However, it does not explicitly state when not to use it or call out alternatives, relying on the sibling tool names to convey context.

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

browser_new_sessionB

Create a new isolated browser session

ParametersJSON Schema
NameRequiredDescriptionDefault
viewportNoViewport size configuration

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries full behavioral burden but only adds 'isolated' as a trait. It does not disclose what happens when the session is created, whether it returns a session ID, or how it relates to the browser lifecycle, leaving significant ambiguity.

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

Conciseness5/5

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

A single, front-loaded sentence with no redundant words. It effectively conveys the core action in minimal space, earning full marks.

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 lacks an output schema and annotations, so the description should explain return values and session behavior. It does not, leaving the agent to guess whether a session ID is returned or how isolation manifests, making it 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 description mentions no parameter details, but the schema provides complete descriptions (100% coverage) for the optional viewport object and its width/height properties. The baseline of 3 applies since the schema fully documents parameters.

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

Purpose5/5

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

The description uses a specific verb ('Create') and resource ('new isolated browser session'), clearly distinguishing it from navigation and interaction siblings. The qualifier 'isolated' adds specificity beyond the tool's name.

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

Usage Guidelines3/5

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

The description provides no explicit guidance on when to invoke this tool, such as 'use before browser_navigate' or that it is the standard entry point. The need to create a session is only implied by the domain context.

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

browser_pdfB

Generate a PDF of the current page

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path to save the PDF
sessionIdNoBrowser session ID

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. It only states the action but does not mention how the PDF is saved (e.g., file path behavior, overwrite semantics), whether it consumes the sessionId, or whether any return value is produced. This is a significant gap for a tool that writes a file.

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

Conciseness4/5

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

The description is a single, front-loaded sentence that is easy to parse. While it is concise, it under-specifies important behavioral details, so it does not earn a perfect score.

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

Completeness2/5

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

Given the tool's simplicity and lack of output schema or annotations, the description is incomplete. It omits critical context such as what the 'current page' refers to, what the function returns, and whether a browser session must already exist. The schema helps with parameters but not with overall tool behavior.

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

Parameters3/5

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

The input schema already provides 100% coverage with descriptions for both 'path' and 'sessionId'. The description adds no 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 'Generate a PDF of the current page' uses a specific verb (generate) and resource (PDF of the current page), clearly distinguishing it from sibling tools like browser_screenshot. It is immediately obvious what the tool does.

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 vs alternatives such as browser_screenshot or other export methods. There are no exclusions, prerequisites, or context about sessions, making it unclear when this tool should be selected.

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

browser_pressC

Press a keyboard key

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesKey to press (e.g., 'Enter', 'Escape', 'Tab')
sessionIdNoBrowser session ID

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 only states the action without mentioning side effects (e.g., triggering form submission, key events, or requiring focus). The agent cannot infer whether this is a safe read-only operation or a state-changing one.

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

Conciseness5/5

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

The description is a single, focused sentence with no wasted words. It is appropriately minimal for a simple action and front-loaded with the key verb.

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

Completeness2/5

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

Given the absence of annotations and output schema, the description is too thin to be complete. It lacks information on return values, effect on the browser state, or how it relates to sibling actions like typing. For a tool with many sibling actions, this level of completeness is insufficient.

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

Parameters3/5

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

The input schema covers 100% of parameters (key and sessionId) with descriptions. The tool description adds no additional semantics beyond the schema. Since schema coverage is high, a baseline of 3 is appropriate, though the description could have elaborated on key format or supported modifiers.

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 'Press a keyboard key' clearly names the action (press) and the target (keyboard key). It distinguishes from siblings like browser_click (mouse click) and browser_type (typing a sequence), though it does not explicitly name alternatives. It is concise 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?

There is no guidance on when to use this tool versus alternatives such as browser_type, browser_click, or browser_fill. No context is given about focus requirements, key combinations, or interactions with forms.

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

browser_reloadB

Reload the current page

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdNoBrowser session ID

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits, but it only states the action. It does not mention side effects like losing unsaved form data, cache behavior, whether it waits for page load, or the role of sessionId. This is a significant gap for a tool that reloads a page.

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. It is appropriately concise for a simple action, though it could benefit from additional context.

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

Completeness3/5

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

The tool is simple and the description gives the core function, but it lacks any context about when to use it relative to siblings or how the sessionId affects behavior. Given the absence of annotations and output schema, the description is minimally adequate but leaves clear gaps.

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

Parameters3/5

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

The schema describes the only parameter (sessionId) with full coverage, so the description need not add detail. The description does not mention parameters, but the schema already provides sufficient meaning, matching the baseline for high schema coverage.

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

Purpose5/5

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

The description 'Reload the current page' uses a specific verb and resource, clearly stating the tool's function. It is distinct from siblings like browser_navigate or browser_go_back, which involve navigation rather than refreshing the current page.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or compare with sibling tools like browser_navigate or browser_go_forward, leaving the agent to infer appropriate usage.

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

browser_screenshotC

Take a screenshot of the page or an element

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoFile path to save the screenshot
fullPageNoCapture the full scrollable page
selectorNoSelector for element to screenshot (full page if not provided)
sessionIdNoBrowser session ID

TDQS

C2.9/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 fails to mention potential file writing side effects, return value, or interaction with browser session state. The description only restates the core action without addressing whether it is read-only, destructive, or requires specific conditions.

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, directly stating the tool's purpose. While it could be more informative, its brevity is acceptable for a simple tool, though it omits important nuances.

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 4 parameters, no output schema, and no annotations, placing a burden on the description to explain operational behavior. It omits critical details such as file format, return value, how selector and fullPage interact, and whether a session is required. The schema covers parameter syntax but not usage context, leaving the description incomplete for safe 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?

Schema description coverage is 100%, with all four parameters (path, fullPage, selector, sessionId) clearly documented. The description does not add any semantic meaning beyond what the schema already provides, matching the baseline for fully covered 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 action ('Take a screenshot') and the target ('page or an element'), making the tool's purpose unambiguous. It distinguishes itself from sibling tools by being the only screenshot-specific browser tool, though it doesn't explicitly contrast with alternatives.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like browser_pdf or other capture methods. No context is given for appropriate scenarios, prerequisites, or exclusions, leaving the agent without decision-making support.

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

browser_scrollB

Scroll the page or an element

ParametersJSON Schema
NameRequiredDescriptionDefault
amountNoScroll amount in pixels
selectorNoSelector for element to scroll (scrolls page if not provided)
directionYesScroll direction
sessionIdNoBrowser session ID

TDQS

B3.4/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 states 'Scroll the page or an element' without mentioning side effects like lazy-loading triggers, whether scrolling is instant or animated, what happens if the selector matches no element, or if the tool waits for scroll completion. This leaves significant behavioral aspects undisclosed.

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

Conciseness5/5

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

The description is a single, concise sentence that is front-loaded with the action verb 'Scroll' and clearly states the target. It contains no fluff or redundant information, making it highly efficient and easy to parse.

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

Completeness4/5

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

Given the simplicity of the tool and the comprehensive schema documentation, the description plus schema adequately cover invocation details. However, the lack of usage context and behavioral side-effect information prevents it from being fully complete, as an agent may not know when to use it or what to expect.

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 detailed descriptions for all four parameters (direction, amount, selector, sessionId), achieving 100% schema coverage. The description itself adds no 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 the specific verb 'scroll' and identifies the target as 'the page or an element', which clearly indicates the tool's function and distinguishes it from sibling navigation and interaction tools like browser_navigate or browser_click. It is unambiguous and directly states what the tool does.

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 when it should be used before reading page content or how it relates to waiting for elements. There are no explicit when-to-use or when-not-to-use instructions, making it merely a statement of function without contextual usage direction.

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

browser_selectC

Select an option from a dropdown

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesValue or label of the option to select
selectorYesSelector for the select element
sessionIdNoBrowser session ID

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 full responsibility for behavioral disclosure. It states the core action but omits important details such as whether events are triggered, compatibility with custom dropdowns, or behavior when options are not found.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for the simplicity of the tool, though it lacks depth 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?

The tool has no annotations or output schema, so the description needs to provide more context. It does not cover behavioral expectations or edge cases, leaving the description incomplete for a browser automation tool.

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

Parameters3/5

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

Schema coverage is 100%, so the schema fully documents each parameter. The description adds no additional meaning beyond the schema, leading to a baseline score of 3.

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

Purpose4/5

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

The description 'Select an option from a dropdown' uses a specific verb and resource, clearly identifying the tool's action. It does not explicitly distinguish from sibling tools like browser_fill or browser_click, but the mention of 'dropdown' narrows the scope sufficiently.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. The description implies it is for dropdowns, but does not state exclusions, prerequisites, or suggest sibling tools for other scenarios.

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

browser_set_cookiesB

Set cookies in the browser

ParametersJSON Schema
NameRequiredDescriptionDefault
cookiesYesCookies to set
sessionIdNoBrowser session ID

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. It states a mutation ('Set') but does not disclose whether cookies are replaced or merged, whether a sessionId is required, or what side effects occur. The minimal wording 'in the browser' lacks depth.

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

Conciseness5/5

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

A single sentence, 'Set cookies in the browser,' is extremely concise and front-loaded. Every word contributes to the core meaning with no filler or repetition.

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 mutation tool with no annotations and no output schema, the description is too sparse. It lacks critical context such as whether existing cookies are cleared, how sessionId affects scope, or any practical usage hints. The absence of guidance makes it 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% for both parameters ('Cookies to set' and 'Browser session ID'), so the schema already explains each parameter. The tool description adds no further semantic nuance beyond what the schema provides, but it does not need to compensate.

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 'Set cookies in the browser' uses a specific verb ('Set') and resource ('cookies') and clearly distinguishes from sibling tools like browser_get_cookies and browser_clear_cookies. It leaves no ambiguity about the tool's primary 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 provides no guidance on when to use this tool versus alternatives (e.g., when to use browser_clear_cookies first, or when a session is required). Sibling tools exist, but no exclusions or alternative recommendations are given.

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

browser_snapshotA

Get an accessibility tree snapshot of the page for AI-friendly element references

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdNoBrowser session ID

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals that the tool is a snapshot (non-mutating) and returns accessibility tree data, but it does not describe output format, whether it requires a valid session, or any potential waiting/loading behavior. This is partial but has clear gaps.

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

Conciseness5/5

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

The description is a single, well-structured sentence that is front-loaded and contains no unnecessary words. It earns its place fully.

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 (one optional param), but without annotations or an output schema, the description needs to cover behavior and usage. It clearly states the outcome (accessibility tree snapshot) but lacks explicit usage guidance, output format, or behavioral details like session requirements. Adequate but with notable gaps.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter (sessionId), so the schema already documents it. The tool description adds no additional parameter context beyond what the schema provides, hence the baseline score of 3.

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

Purpose5/5

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

The description uses a specific verb ('Get') and a clear resource ('accessibility tree snapshot of the page'), with a stated purpose ('for AI-friendly element references'). It effectively distinguishes this from sibling tools like screenshot (visual), get_html (raw HTML), and get_text (text).

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 'for AI-friendly element references' implies a clear usage context: use when you need a semantic, AI-accessible representation of page elements. However, it does not explicitly name alternatives or state when not to use it, so it falls short of the top score.

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

browser_typeA

Type text character by character (useful for triggering key events)

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to type
selectorYesSelector for the input element
sessionIdNoBrowser session ID

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It discloses a non-obvious behavioral trait—typing character by character to trigger key events—which is valuable for agent decision-making. It does not mention potential side effects like clearing existing text or requiring focus, but the core behavior is well covered.

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 wasted words. It front-loads the primary action ('Type text character by character') and appends the key use-case rationale, making it both concise and information-dense.

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

Completeness4/5

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

For a simple tool with three parameters and full schema coverage, the description adequately explains the tool's purpose and distinctive behavior. It lacks explicit details on prerequisites or error behavior, but given the absence of an output schema and the straightforward nature of typing, it is reasonably complete.

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

Parameters3/5

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

The input schema already has 100% coverage for parameters with clear descriptions. The description adds a small semantic nuance to the 'text' parameter by implying sequential character input, but it does not significantly go beyond what the schema provides, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool types text character by character, a specific verb + resource. It distinguishes itself from siblings like browser_fill (likely bulk input) and browser_press (key presses) by emphasizing the character-by-character behavior and key event triggering.

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 parenthetical 'useful for triggering key events' provides clear context for when to use this tool over alternatives. However, it does not explicitly name alternatives or state when not to use it, so it falls short of full explicit guidance.

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

browser_uncheckB

Uncheck a checkbox

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesSelector for the checkbox element
sessionIdNoBrowser session ID

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 states the action without revealing any side effects, prerequisites, behavior on already-unchecked elements, or handling of invalid selectors, which is insufficient for an agent to predict the tool's behavior.

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

Conciseness5/5

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

The description is extremely concise with a single, front-loaded sentence that directly states the tool's purpose. No words are wasted, making it easy for an agent to quickly parse the intent.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is insufficiently complete. It does not mention how the selector is used, session handling, or expected outcomes, leaving gaps in the agent's understanding for a functional 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?

The input schema describes both parameters (selector and sessionId) with 100% coverage, so the schema handles parameter semantics. The description adds no additional meaning beyond what the schema already provides, warranting the baseline score of 3.

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

Purpose5/5

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

The description 'Uncheck a checkbox' clearly states the action (uncheck) and the resource (checkbox), using a specific verb that distinguishes it from the sibling tool browser_check, which performs the opposite action. The purpose is unambiguous for an agent.

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 browser_check or browser_click. There is no mention of context, prerequisites, or exclusions, leaving the agent to infer usage solely from the tool name.

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

browser_wait_for_navigationC

Wait for navigation to complete

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNoMaximum wait time in milliseconds
sessionIdNoBrowser session ID

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 for behavioral disclosure, but it only states the wait action. It does not explain timeout behavior, error handling, return values, or whether navigation completion is based on network idle or load events. This is a significant gap for a wait operation.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no redundant wording. It is appropriately concise for a simple tool, though it could earn a higher score if it included key usage context without becoming 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?

The tool is relatively simple, but the description is too minimal given the absence of annotations and output schema. It lacks context about when to use it, what happens on timeout, and how it relates to navigation actions. More detail is needed for an agent to use it successfully.

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 full descriptions for both parameters (timeout and sessionId), so schema coverage is 100%. The description itself does not add parameter-specific meaning, which is acceptable given the high schema coverage; the baseline of 3 applies.

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 action ('Wait for navigation') with a resource ('navigation'), and the name distinguishes it from related tools like browser_wait_for_selector. However, it does not explicitly clarify what 'complete' means (e.g., load event, network idle), leaving some ambiguity.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, such as after browser_navigate or instead of browser_wait_for_selector. The description gives no context about typical usage scenarios or prerequisites.

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

browser_wait_for_selectorC

Wait for an element to appear in the page

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoElement state to wait for
timeoutNoMaximum wait time in milliseconds
selectorYesSelector to wait for
sessionIdNoBrowser session ID

TDQS

C2.9/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 states the action without explaining polling behavior, timeout defaults, what happens on timeout, or that the state parameter can wait for detachment/hidden states. The word 'appear' is also misleading for non-visible states.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no filler or redundant wording. It is efficient, though somewhat under-specified for the tool's complexity; still, it is appropriately concise.

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 wait tool with no output schema and no annotations, the description is too sparse. It does not cover return behavior, timeout semantics, or how the state parameter changes the waiting condition, leaving critical context for the agent to infer or discover through trial and error.

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

Parameters3/5

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

The schema already provides descriptions for all 4 parameters, achieving 100% coverage, so the baseline is 3. The description adds minimal meaning beyond the schema, only loosely connecting 'appear' to the state property without clarifying how selector, timeout, or sessionId are used.

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 'Wait for' with resource 'an element', clearly distinguishing it from the sibling browser_wait_for_navigation. However, 'appear' is narrower than the full state options (visible, hidden, attached, detached) exposed in the schema, so it does not fully capture all possible conditions.

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 like browser_wait_for_navigation or other polling strategies. No exclusions or alternative recommendations are given; the intended usage is only implied by the name and generic description.

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. 34 tool updatesv0.1.1
    • First observedbrowser_check
    • First observedbrowser_clear_cookies
    • First observedbrowser_click
    • First observedbrowser_close_session
    • First observedbrowser_evaluate
    • First observedbrowser_fill
    • First observedbrowser_get_attribute
    • First observedbrowser_get_console
    • First observedbrowser_get_cookies
    • First observedbrowser_get_html
    • First observedbrowser_get_network
    • First observedbrowser_get_text
    • First observedbrowser_get_title
    • First observedbrowser_get_url
    • First observedbrowser_go_back
    • First observedbrowser_go_forward
    • First observedbrowser_hover
    • First observedbrowser_is_checked
    • First observedbrowser_is_enabled
    • First observedbrowser_is_visible
    • First observedbrowser_navigate
    • First observedbrowser_new_session
    • First observedbrowser_pdf
    • First observedbrowser_press
    • First observedbrowser_reload
    • First observedbrowser_screenshot
    • First observedbrowser_scroll
    • First observedbrowser_select
    • First observedbrowser_set_cookies
    • First observedbrowser_snapshot
    • First observedbrowser_type
    • First observedbrowser_uncheck
    • First observedbrowser_wait_for_navigation
    • First observedbrowser_wait_for_selector

TDQS

B3.2/5.0

Scored across 34 tools

Disambiguation5/5

Each tool targets a distinct browser action or query, with clear separation between navigation, interaction, extraction, session, and diagnostic tools. Slight overlaps like fill vs type are clearly differentiated by behavior, and get_text vs get_html vs snapshot have distinct outputs.

Naming Consistency5/5

All tools uniformly use the browser_ prefix and snake_case with action-oriented verbs. The mix of get_* and direct verbs is consistent with the domain, and patterns like wait_for_* and is_* follow predictable conventions.

Tool Count2/5

At 34 tools, the set exceeds the 25+ threshold for 'too many'. While each tool serves a purpose, several could be consolidated (e.g., is_visible/enabled/checked into a single state query, or get_text/html/attribute into a content extractor), making the surface heavier than necessary.

Completeness5/5

The tools cover the full browser automation lifecycle: navigation, interaction, content extraction, waiting, session management, cookies, JavaScript execution, and diagnostics (console/network). Minor gaps like file upload/download are non-core and do not create dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A Model Context Protocol server that provides browser automation capabilities using Playwright, enabling LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment.
    18
    Apache 2.0
  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that provides browser automation capabilities using Puppeteer, enabling LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment.
    7
    25,069 npm
    1
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that provides browser automation capabilities using Playwright, enabling LLMs to interact with web pages, take screenshots, generate test code, scrape web content, and execute JavaScript in real browser environments.
    31
    15,344 npm
    MIT