Skip to main content
Glama
minhlucvan

agent-browser-mcp

by minhlucvan

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 agent-browser-mcp

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

Related MCP server: @playwright/mcp

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

Use Cases

  • Web Scraping for AI - Extract structured data from websites for RAG, research, or analysis

  • Automated Testing - AI-powered end-to-end testing with natural language assertions

  • Form Automation - Fill forms, submit data, handle multi-step workflows

  • Screenshot Analysis - Capture pages for visual AI analysis or documentation

  • Session Automation - Login once, persist cookies, automate authenticated workflows

  • Data Entry - Bulk data input across web applications

  • Monitoring - Track changes on web pages, detect updates, gather metrics

Why Agent Browser?

Agent Browser was built from the ground up for AI agents, not adapted from human-centric automation tools. This fundamental difference delivers significant advantages:

Agent-Native Design

Capability

Agent Browser

Traditional Tools

Semantic Element Targeting

Native accessibility-based locators

CSS selectors / XPath

Token Efficiency

Structured data, minimal output

Verbose HTML/screenshots

Response Format

AI-optimized, parseable

Human-readable

Error Messages

Actionable, context-aware

Generic stack traces

Performance

  • Rust-powered CLI - Fast execution with minimal overhead

  • Lightweight snapshots - Accessibility tree instead of full DOM

  • Streaming output - Real-time feedback without buffering

Installation

npm install agent-browser-mcp

Or run directly with npx:

npx 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

VS Code

Add to your VS Code settings (JSON):

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

Claude Desktop

Add to your claude_desktop_config.json:

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

Cursor

Add to Cursor MCP settings:

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

Claude Code

claude mcp add agent-browser -- npx agent-browser-mcp

Custom agent-browser Path

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

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

Available Tools

Navigation

Tool

Description

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

Tool

Description

browser_click

Click on an element using selector or accessibility locator

browser_fill

Fill a text input field with a value

browser_type

Type text character by character (triggers key events)

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 (Enter, Escape, Tab, etc.)

Data Extraction

Tool

Description

browser_get_text

Get text content from an element or the entire page

browser_get_html

Get HTML content (inner or outer)

browser_get_attribute

Get an attribute value from an element

browser_get_url

Get the current page URL

browser_get_title

Get the current page title

browser_snapshot

Get accessibility tree snapshot for AI-friendly element references

Element State

Tool

Description

browser_is_visible

Check if an element is visible

browser_is_enabled

Check if an element is enabled

browser_is_checked

Check if a checkbox or radio button is checked

Screenshots & PDF

Tool

Description

browser_screenshot

Take a screenshot of the page or a specific element

browser_pdf

Generate a PDF of the current page

Session Management

Tool

Description

browser_new_session

Create a new isolated browser session with optional viewport

browser_close_session

Close a browser session

Wait Operations

Tool

Description

browser_wait_for_selector

Wait for an element to appear (attached, detached, visible, hidden)

browser_wait_for_navigation

Wait for navigation to complete

Cookies & Storage

Tool

Description

browser_get_cookies

Get cookies, optionally filtered by URLs

browser_set_cookies

Set cookies with full options (domain, path, expiry, etc.)

browser_clear_cookies

Clear all cookies

JavaScript & Debugging

Tool

Description

browser_evaluate

Execute JavaScript code in the browser context

browser_get_console

Get console messages from the browser

browser_get_network

Get network requests made by the browser

Selector Syntax

agent-browser supports semantic locators that are AI-friendly:

# By role and name
button:has-text("Submit")
[role="button"][name="Login"]

# By text content
text=Click here
:has-text("Welcome")

# By accessibility attributes
[aria-label="Search"]
[placeholder="Enter email"]

# By test IDs
[data-testid="submit-button"]

# Standard CSS selectors
#email
.form-input
form > input[type="text"]

Session Management

Create isolated browser sessions for parallel automation:

// Create a new session with custom viewport
const session = await client.callTool({
  name: "browser_new_session",
  arguments: {
    viewport: { width: 1920, height: 1080 }
  }
});

// Use session ID for subsequent operations
const result = await client.callTool({
  name: "browser_navigate",
  arguments: {
    url: "https://example.com",
    sessionId: "session-id-here"
  }
});

// Close when done
await client.callTool({
  name: "browser_close_session",
  arguments: { sessionId: "session-id-here" }
});

Programmatic Usage

import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";

const transport = new StdioClientTransport({
  command: "npx",
  args: ["agent-browser-mcp"],
});

const client = new Client({
  name: "my-browser-client",
  version: "1.0.0",
});

await client.connect(transport);

// Navigate to a page
await client.callTool({
  name: "browser_navigate",
  arguments: { url: "https://example.com" }
});

// Get page content
const text = await client.callTool({
  name: "browser_get_text",
  arguments: {}
});

// Take a screenshot
await client.callTool({
  name: "browser_screenshot",
  arguments: {
    path: "/tmp/screenshot.png",
    fullPage: true
  }
});

Environment Variables

Variable

Description

Default

AGENT_BROWSER_PATH

Path to agent-browser executable

agent-browser

Development

# Clone the repository
git clone https://github.com/minhlucvan/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

# Start server
npm start

License

MIT

Available Tools

32 tools
browser_checkB

Check a checkbox or radio button

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesSelector or ref for the checkbox/radio element
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 merely states the action without revealing whether it scrolls into view, toggles state, throws on invalid selectors, or affects page state. This is a significant gap for an automation 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, concise sentence that front-loads the action without any filler or redundancy. Every word contributes to understanding the tool's purpose.

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

Completeness2/5

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

There is no output schema, no annotations, and no mention of return values, success/failure behavior, or side effects. For a simple tool this is minimal, but the lack of behavioral context and outcome details leaves the agent with significant uncertainty about the tool's full behavior.

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

Parameters3/5

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

The input schema already provides 100% coverage for both parameters (selector and sessionId), so the description adds no additional parameter semantics. Baseline 3 applies because the schema fully documents the parameters.

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

Purpose5/5

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

The description 'Check a checkbox or radio button' uses a specific verb+resource pattern, clearly identifying the tool's function. It distinguishes itself from siblings like browser_uncheck (opposite action) and browser_click (generic click), 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 Guidelines3/5

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

The description implies the use case—checking checkboxes or radio buttons—but provides no explicit guidance on when to prefer this over browser_click or browser_uncheck, nor any prerequisites like element visibility. The context is implied rather than stated.

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

browser_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_clickA

Click on an element identified by selector or ref (e.g., '@e1' from snapshot)

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector, text, or ref from snapshot (e.g., '@e1')
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 says 'click' without disclosing behavioral traits such as waiting for actionability, error handling, or potential navigation side effects. This leaves a significant transparency gap for an interactive browser 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 that conveys the core purpose and a clarifying example without any wasted words or unnecessary detail.

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 covers the basic mechanism, but given the lack of annotations and output schema, it would benefit from additional context such as default behavior, return value, or dependency on the current page/session. It is adequate yet leaves clear gaps in completeness.

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

Parameters3/5

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

The input schema already fully describes both parameters with high coverage (100%), including the selector's allowed forms (CSS selector, text, or ref). The description repeats the ref example but adds no new semantic meaning beyond what the schema provides, matching the baseline for full schema coverage.

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

Purpose5/5

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

The description clearly states the action ('Click') and the resource ('an element'), and specifies the identification method (selector or ref with example '@e1' from snapshot). This distinguishes it from sibling interaction tools like browser_hover and browser_fill.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives. Usage context is implied by the name and sibling set, but there is no direct guidance or exclusions, so it relies on the user to infer.

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

browser_closeC

Close the browser

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdNoSession ID to close

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must carry full behavioral disclosure. It merely says 'Close the browser' and omits important details such as side effects (e.g., losing session state, irreversibility, or whether the close targets a specific session).

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 one concise sentence, front-loaded with the action. While it is under-specified, it contains no wasted words and conveys the core purpose efficiently.

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 the schema's documentation of the one parameter, the description is nearly sufficient. However, it does not explain whether the chosen sessionId affects the close behavior or mention any side effects, leaving gaps that annotations or a fuller description could fill.

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 sessionId parameter (100% coverage), so the baseline for parameter semantics is 3. The description adds no parameter-specific meaning beyond the schema.

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 'Close the browser' uses a specific verb and resource, clearly distinguishing it from other browser_* sibling tools. However, it is essentially a restatement of the tool name and adds no extra detail about scope or session targeting.

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 context for when to use this tool, no alternatives, and no exclusions. It simply states the action without guiding the agent on when or why to invoke it.

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

browser_evaluateC

Execute JavaScript code in the browser context

ParametersJSON Schema
NameRequiredDescriptionDefault
scriptYesJavaScript code to execute
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 only says 'execute' without mentioning side effects, return value, execution context, error behavior, or whether script runs asynchronously. For a powerful script-execution tool, this is a significant transparency 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, front-loaded sentence that directly states the tool's action. No wasted words, and the structure is clean and scannable.

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 complex (executing arbitrary JavaScript), but there is no output schema and the description provides no information about return values, result serialization, or context. This one-liner is insufficient for a tool of this capability, especially without annotations to fill 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 already provides 100% parameter descriptions for 'script' and 'sessionId'. The description adds no additional parameter context, so the baseline of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the verb 'Execute' and resource 'JavaScript code in the browser context', which distinguishes it from sibling tools that perform specific browser actions. However, it doesn't explicitly mention the return value or how it differs from dedicated interaction tools.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus the many specialized sibling tools (e.g., browser_click, browser_type). No mention of prerequisites, alternatives, or exclusions, leaving the agent to infer its purpose from the name alone.

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

browser_fillA

Clear and fill a text input field with the specified value

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesText value to fill in (empty string clears the field)
selectorYesSelector or ref for the input element
sessionIdNoBrowser session ID

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the key behavior of clearing the field before filling ('Clear and fill'), which is useful. However, it does not mention potential side effects like event triggering, visibility requirements, or return values, leaving gaps.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no redundant content. Every word adds meaning, 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.

Completeness3/5

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

The tool is relatively simple, and the description covers its core function. However, without any output schema or mention of return behavior, and given the many sibling tools, the lack of guidance on how this differs from browser_type makes the description incomplete for choosing the right tool in all contexts.

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% documentation coverage for all parameters, including 'value' (empty string clears), 'selector' (selector/ref), and 'sessionId'. The description adds no additional parameter information beyond what the schema already states, so the baseline of 3 applies.

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

Purpose5/5

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

The description 'Clear and fill a text input field with the specified value' uses a specific verb ('fill') and a clear resource ('text input field'), and explicitly mentions the clearing behavior. This distinguishes it from sibling tools like browser_click or browser_type by indicating a direct value-setting 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. With siblings like browser_type (likely simulating keystrokes), the absence of any mention of when to prefer 'fill' over 'type' leaves the agent without clear selection criteria.

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 or ref for the element
attributeYesName of the attribute to get
sessionIdNoBrowser session ID

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. The description only states the core function and does not mention read-only behavior, side effects, error handling (e.g., missing attribute), or return format. It is unclear whether the tool manipulates the page state or simply reads it.

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

Conciseness5/5

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

The description is a single, clear sentence without redundant words. It is appropriately sized for the simplicity of the tool, delivering the essential purpose without unnecessary detail.

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 is understandable, but it lacks information about the return value and behavior in edge cases (e.g., attribute absent or element not found). Given the absence of an output schema, the description could have added a brief note about what is returned, making it only partially 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 provides 100% coverage of parameter descriptions (selector, attribute, sessionId), so the baseline is 3. The description does not add extra parameter semantics, but the schema already defines each parameter clearly.

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 an attribute value from an element' clearly states the action (get), the resource (attribute value), and the target (element). It distinguishes itself from sibling tools like browser_get_text or browser_get_html, which retrieve different aspects of an element.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as browser_get_text, browser_get_html, or browser_get_title. There is no mention of appropriate contexts, exclusions, or prerequisites.

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_cookiesA

Get all cookies from the browser

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdNoBrowser session ID

TDQS

A3.6/5.0
Behavior3/5

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

There are no annotations, so the description carries the full burden. It indicates a read-only operation, but does not disclose potential nuances like whether cookies are returned for the current session, any authentication requirements, or the exact response format. As a simple getter, this is acceptable 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 sentence, front-loaded, and contains no redundant or irrelevant information. It is optimally concise.

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 one optional parameter and no output schema, the description is mostly complete. It states the core action and the schema covers the parameter, but it does not specify the return shape or any usage caveats. Given the low complexity, this is sufficient.

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

Parameters3/5

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

The schema describes the only parameter (sessionId) with 'Browser session ID', and the description adds no additional meaning. With 100% schema coverage, the baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Get') and a clear resource ('all cookies from the browser'), which distinguishes it from sibling tools like browser_set_cookie and browser_clear_cookies. 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 Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., browser_get_cookie, browser_set_cookie). It does not mention context such as requiring an active session or that it returns only current-session cookies.

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

browser_get_htmlB

Get HTML content from an element or the entire page

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorNoSelector or ref (gets full page HTML if not provided)
sessionIdNoBrowser session ID

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden. It only restates the core behavior without disclosing error handling, return format, or side effects. For a read tool, the lack of information about what happens when a selector is not found or how HTML is serialized is 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?

Single sentence, front-loaded with the key action and scope. No unnecessary words or redundant details.

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

Completeness3/5

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

For a simple retrieval tool, the description is adequate but thin. It doesn't mention the return format or when to prefer this over browser_get_text, and with no output schema, an agent may not know what to expect from the response.

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 both parameters (selector and sessionId), including the note that selector gets full page HTML if not provided. The description adds no new parameter semantics beyond what the schema states, 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 action (get), the resource (HTML content), and the scope (an element or the entire page). This distinguishes it from sibling tools like browser_get_text (text) and browser_get_attribute (attribute).

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

Usage Guidelines2/5

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

No explicit guidance about when to use this tool versus alternatives like browser_get_text or browser_snapshot. The only usage hint is the optional selector returning full page HTML, which is more of a functional detail than a decision guide.

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 or ref (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?

With no annotations, the description carries full burden but discloses only the basic function. It does not mention behavior such as whether hidden text is included, formatting, or return type, limiting transparency.

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

Conciseness5/5

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

Single sentence with clear, concise wording. No filler or redundancy; effectively front-loaded with the core function.

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

Completeness3/5

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

For a simple getter without output schema or annotations, the description is minimally sufficient but lacks contextual details like return format or when to prefer this over related tools. It is viable but not comprehensive.

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

Parameters3/5

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

Schema description coverage is 100% (both selector and sessionId described). The description adds no new parameter meaning beyond the schema's existing 'gets full page text if not provided' for selector, so baseline 3 applies.

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

Purpose5/5

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

Description clearly states the action ('Get text content') and the resource ('from an element or the entire page'), distinguishing it from sibling tools like browser_get_html (markup) and browser_get_attribute (specific attributes).

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool vs alternatives, but the description implies it for retrieving text, especially when selector is omitted for full-page text. Lacks exclusions or alternative tool naming.

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 or ref 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 available, the description carries the full burden of behavioral disclosure. It only states the action 'hover' with no details about side effects, prerequisites (e.g., visibility), failure behavior, or interaction with tooltips, making it behaviorally opaque.

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

Conciseness4/5

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

The description is a single concise sentence with no wasted words. It is efficient, though extremely sparse; it earns its place by stating the core purpose but omits additional context that could be helpful.

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 low-complexity with two simple parameters and no output schema, but the description is minimal. Without annotations, the description fails to provide context such as element visibility requirements, timing, or how it differs from clicking. This is insufficient for complete understanding in a browser automation 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?

Schema description coverage is 100%, so the baseline is 3. The description itself adds no parameter information beyond the schema, but the schema already describes 'selector' and 'sessionId' adequately. No compensation needed.

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

Purpose5/5

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

The description 'Hover over an element' uses a specific verb ('hover') and resource ('element'), clearly distinguishing it from siblings like browser_click and browser_scroll. It directly states the tool's action without ambiguity.

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 browser_hover versus alternatives such as browser_click or browser_scroll. There is no mention of context, prerequisites, or exclusions, leaving the agent without decision support.

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

browser_is_checkedA

Check if a checkbox/radio is checked

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesSelector or ref 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 must disclose behavioral details. It only states the action but does not explain return type (presumably boolean), error handling for missing selectors, or any side effects. This is a significant gap for a tool with no annotation support.

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

Conciseness5/5

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

The description is a single, clear sentence that is appropriately sized for a simple tool. It contains no fluff or repetition, making it highly concise and easy to parse.

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

Completeness3/5

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

For a simple tool with complete schema coverage, the description is minimally adequate. However, there is no output schema, so the description should at least mention that it returns a boolean or the checked state. The lack of return-value information leaves a completeness gap.

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

Parameters3/5

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

The schema fully describes both parameters (selector and sessionId), so the description adds no extra meaning. Baseline 3 is appropriate because the schema carries the semantic load, and the description does not introduce conflicts or clarifications.

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 'Check if a checkbox/radio is checked' uses a specific verb and resource, clearly distinguishing it from sibling tools like browser_check (which sets the checkbox) and browser_uncheck. It precisely conveys the tool's query-like purpose.

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

Usage Guidelines3/5

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

The intended use is implied by the name and description: to verify checkbox state. However, there is no explicit guidance on when to use this vs. alternatives (e.g., browser_is_visible or browser_is_enabled), nor any exclusions or prerequisites mentioned.

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

browser_is_enabledA

Check if an element is enabled

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesSelector or ref for the 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 present, so the description carries the full burden of disclosing behavioral traits. The description only states the basic action and does not mention return format, error handling, side effects, or whether it waits for the element. This lacks transparency for a tool that has no other metadata.

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 immediately understandable and contains no extraneous information. It is optimally sized for a simple check tool.

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 minimally complete for a simple boolean check, and the phrase 'Check if' implies a boolean result. However, without an output schema, it would be helpful to explicitly state the return value and behavior when the element is not found. The lack of such details leaves some gaps, so a 3 is warranted.

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

Parameters3/5

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

Both parameters (selector and sessionId) have descriptions in the input schema, providing 100% coverage. 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 'Check if an element is enabled' uses a specific verb and resource, clearly indicating the tool's function. It distinguishes itself from sibling tools like browser_is_visible and browser_is_checked by focusing on the 'enabled' state, which is a distinct property.

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

Usage Guidelines3/5

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

No explicit usage guidance or alternative comparison is provided, but the purpose is clear enough that the intended use is implied: when you need to verify whether an element is enabled. This falls under 'implied usage' rather than explicit instructions.

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

browser_is_visibleB

Check if an element is visible

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesSelector or ref for the 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 carries the full burden of behavioral disclosure. It implies a read-only check but does not specify the return type, waiting behavior, or definition of 'visible' (e.g., CSS visibility vs. layout presence).

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, front-loaded with the action and resource. Every word earns its place, making it highly 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?

There is no output schema, so the description should explain the return value (e.g., boolean true/false), but it only states the action. It also lacks usage context or alternative guidance, making it incomplete for an agent despite the tool's simple interface.

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 parameters adequately described ('Selector or ref for the element' and 'Browser session ID'). The description adds no additional parameter meaning beyond what the schema already provides, so the baseline of 3 applies.

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

Purpose5/5

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

The description uses a specific verb 'Check' and clearly identifies the resource 'element visibility'. It distinguishes from sibling tools like browser_is_enabled and browser_is_checked by focusing on visibility rather than other states.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as browser_is_enabled or browser_is_checked. There is no context about element visibility checking or exclusions, leaving the agent without usage direction.

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_pdfB

Generate a PDF of the current page

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path to save the PDF
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 must carry the full burden of behavioral transparency. It only states the action without disclosing side effects (e.g., file overwrite), return value, or whether it waits for rendering. This is insufficient for an agent to anticipate outcomes.

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 extraneous information, making it easy to parse quickly.

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 incomplete for a tool that creates a file. It does not mention what the tool returns, whether it overwrites existing files, or any prerequisites (e.g., an active session). More context is needed for an agent to use it reliably.

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

Parameters3/5

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

Both parameters are fully described in the schema (path and sessionId), giving 100% schema coverage. The description does not add any additional parameter semantics beyond what the schema provides, so the baseline score of 3 applies.

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

Purpose5/5

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

The description uses a specific action verb ('Generate') and clearly identifies the output ('a PDF of the current page'), which distinguishes it from sibling tools like browser_screenshot that capture images rather than PDFs.

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 a use case—converting the current page into a PDF—but it does not explicitly state when to prefer it over alternatives or exclude cases (e.g., pages requiring authentication). The 'current page' scope is clear but no additional guidance is provided.

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', 'Tab', 'Control+a')
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 states the basic action 'press a keyboard key' and does not describe side effects, session requirements, supported key formats, or return behavior. Minimal behavioral info beyond the literal action.

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 short sentence, extremely concise and front-loaded. However, it is under-specified and does not add value beyond restating the tool's name. Still, for conciseness and structure, it is appropriately sized.

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 tool with no output schema and no annotations, the description should at least clarify how it fits with siblings like browser_type, whether it requires a session, and whether keyboard shortcuts like 'Control+a' are fully supported. The current description is too sparse to be contextually complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters 'key' and 'sessionId' are already well-documented with examples. The description adds no parameter meaning beyond the schema, but the schema fully compensates, hence baseline 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 'Press a keyboard key' clearly states the action (press) and the resource (keyboard key). It distinguishes from siblings like browser_type which types text, but it does not explicitly differentiate from related tools like browser_click or mention keyboard combinations.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. It does not mention when to prefer browser_press over browser_type for text entry, or how to handle modifiers. No usage context or exclusions are provided.

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoFile path to save the screenshot
fullPageNoCapture the full scrollable page (-f flag)
sessionIdNoBrowser session ID

TDQS

C2.7/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden. It only states 'Take a screenshot of the page' with no disclosure about file saving behavior, overwriting, session requirements, or full-page handling. This is insufficient.

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 unnecessary words, fitting for a simple tool. It is appropriately structured 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?

The tool has no annotations or output schema, and the description is minimal. While the schema explains the parameters, the description omits behavioral context like whether the screenshot is immediate, how the file path is used, and what happens without a session. This makes it incomplete for a tool with multiple optional parameters.

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 three parameters (path, fullPage, sessionId), achieving 100% coverage. The description itself doesn't add any parameter semantics, so baseline 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 the tool's action ('Take a screenshot') and resource ('the page'), making it distinct from siblings like browser_pdf or browser_get_html. However, it doesn't explicitly differentiate it from those alternatives, so it's clear but lacks explicit sibling differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as browser_pdf or browser_snapshot. It also doesn't mention any conditions like requiring an active session or page load.

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

browser_scrollA

Scroll the page in a direction

ParametersJSON Schema
NameRequiredDescriptionDefault
amountNoScroll amount in pixels
directionYesScroll direction
sessionIdNoBrowser session ID

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description must carry the full burden of behavioral disclosure, but it only states the basic action. It does not mention what happens when 'amount' is omitted, whether scrolling is instant or animated, or whether the tool returns any value.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that directly states the action without waste. Every word contributes to understanding.

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

Completeness3/5

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

The tool is simple, but the description lacks detail on default behavior (e.g., what happens if no 'amount' is provided) and return value, especially given there is no output schema and no annotations. The schema covers parameters but not 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?

Schema description coverage is 100%, so each parameter is already documented. The description adds no extra meaning beyond the schema, so the baseline of 3 applies.

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

Purpose5/5

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

The description uses a specific verb ('scroll') with a clear resource ('page') and the scope ('in a direction'). It distinguishes the tool from all sibling browser tools, none of which perform scrolling.

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

Usage Guidelines3/5

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

The description gives no explicit context on when to use this tool versus alternatives. Since no sibling tool scrolls, usage is implied, but there is no guidance on scenarios (e.g., after navigation, to bring content into view) or exclusions.

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

browser_selectA

Select one or more options from a dropdown

ParametersJSON Schema
NameRequiredDescriptionDefault
valuesYesValue(s) to select - single string or array for multi-select
selectorYesSelector or ref for the select element
sessionIdNoBrowser session ID

TDQS

A3.5/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 mentions that multiple options can be selected ('one or more') but does not disclose whether selection replaces existing values, how multi-select is handled when the dropdown does not support it, or any side effects like triggering change events. This is minimal transparency for a mutating action.

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

Conciseness5/5

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

The description is a single, well-structured sentence that clearly communicates the tool's purpose without redundancy or fluff. It is front-loaded and appropriately concise for a simple browser interaction.

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 high schema coverage, the description is minimally viable: it explains what the tool does and the schema covers parameters. However, it lacks usage guidance and behavioral detail (e.g., multi-select handling), which prevents it from being fully contextual even for a simple 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 input schema has 100% description coverage, including clear definitions for 'values' (single string or array) and 'selector' (selector or ref). The description itself adds no additional parameter details beyond the schema, so the baseline of 3 is appropriate; the schema shoulders 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 clearly states the tool's function: 'Select one or more options from a dropdown.' It uses a specific verb (select) and resource (dropdown), which distinguishes it from sibling tools like browser_click or browser_fill. Even without mentioning <select>, the term 'dropdown' conveys the target element type.

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

Usage Guidelines3/5

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

The description implies usage for interacting with dropdown elements, but it does not explicitly guide when to use this tool over alternatives (e.g., browser_click, browser_type). No exclusion criteria or alternative tools are mentioned, leaving the agent to infer applicability from the term 'dropdown.'

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 with element refs for AI interaction

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNoLimit tree depth (-d flag)
compactNoRemove empty structural elements (-c flag)
selectorNoScope snapshot to a CSS selector (-s flag)
sessionIdNoBrowser session ID
interactiveNoOnly show interactive elements (-i flag)

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 conveying safety and output behavior. It discloses that the output is an accessibility tree with element refs for AI interaction, which implies a read-only snapshot that supports later tool invocations. It does not explicitly state that the tool has no side effects, but the semantics of 'Get' and 'snapshot' strongly convey that.

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

Conciseness5/5

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

The description is a single sentence that directly communicates the core purpose and unique value. No filler words or redundant details are present.

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

Completeness4/5

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

The description adequately covers the tool's purpose and key output characteristics for an AI agent. Given the tool has no output schema, the description's mention of 'accessibility tree' and 'element refs' provides essential context, though it could elaborate on parameter effects like depth or compactness.

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 all five parameters with descriptions covering 100% of them, so the baseline is 3. The tool description adds no additional parameter semantics; it relies entirely on the schema.

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

Purpose5/5

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

The description uses a specific verb ('Get') and identifies a distinct resource ('accessibility tree snapshot with element refs'), clearly differentiating it from sibling tools like browser_screenshot or browser_get_html. It immediately conveys what the tool produces and why it exists (for AI interaction).

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

Usage Guidelines4/5

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

The phrase 'for AI interaction' gives a clear context indicating this tool is meant to provide a page representation for AI reasoning and subsequent actions. However, it does not explicitly mention when not to use it or name alternatives, such as browser_get_html for raw DOM access.

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 or ref for the input element
sessionIdNoBrowser session ID

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses the key behavior of typing character-by-character and triggering key events, which is important. However, it does not mention whether the tool replaces or appends text, focuses the element, or has side effects beyond typing, leaving some behavioral 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, concise sentence that front-loads the main action and adds one important caveat. No wasted words.

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

Completeness4/5

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

For a simple action tool with 3 parameters and no output schema, the description is largely complete. It explains the purpose and the key behavioral nuance. It does not mention session handling or return values, but these are not critical for a typing action and are partially covered by the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description does not add parameter-specific information beyond the schema; it focuses on the action itself. The parenthetical about key events adds context but not semantic details for parameters.

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

Purpose5/5

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

The description clearly states the tool types text character by character, distinguishing it from siblings like browser_fill or browser_press. The parenthetical 'useful for triggering key events' adds specific purpose and differentiates the tool's mechanism.

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

Usage Guidelines4/5

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

The description implies when to use this tool ('useful for triggering key events'), providing clear context. It does not explicitly name alternatives or exclusions, but the context is strong enough to guide selection among sibling tools.

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

browser_uncheckB

Uncheck a checkbox

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesSelector or ref for the checkbox element
sessionIdNoBrowser session ID

TDQS

B3/5.0
Behavior1/5

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

No annotations are provided, so the description carries full behavioral burden. It only restates the intended outcome and offers no details about idempotency, error behavior, or requirements (e.g., element must be a checkbox). This is essentially a tautology of the tool's name.

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

Conciseness5/5

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

The description is one short sentence with no redundant words. It is perfectly concise for what it minimally conveys, and every word earns its place.

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 no annotations, no output schema, and only a four-word description, the tool is insufficiently contextualized. The description omits behavioral details, usage alternatives, and any caveats, making it incomplete even for a simple 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 input schema covers 100% of parameters with descriptions for selector and sessionId. The description adds no extra meaning about parameter usage, 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 'Uncheck a checkbox' clearly states a specific action on a specific resource (checkbox), which distinguishes it from sibling tool browser_check. It is direct 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 about when to use this tool versus alternatives such as browser_check, nor any mention of preconditions (e.g., checkbox currently checked). The usage is only implied by the verb 'uncheck'.

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

browser_waitB

Wait for an element to appear or a specified time

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesSelector/ref to wait for, or milliseconds (e.g., '1000' for 1 second)
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, the description carries the full burden of behavioral disclosure. It states what the tool does but fails to mention critical behavior such as timeout handling (what happens if the element never appears), error conditions, or return values. This is a significant gap for a wait operation, as agents need to know whether to expect a timeout or success signal.

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 that front-loads the core function. It is concise and free of extraneous information, making it easy for an agent to quickly grasp the tool's purpose.

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

Completeness2/5

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

The tool is simple but lacks essential contextual details. No output schema exists, and the description does not explain what happens after the wait (e.g., return value, timeout behavior, errors). For an agent to invoke this reliably, knowing the timeout or failure semantics is crucial, yet this information is absent.

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

Parameters3/5

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

The schema already provides 100% coverage for both parameters: 'target' is described as a selector/ref or milliseconds, and 'sessionId' is described as a browser session ID. The description adds no additional semantic value beyond what the schema already documents, 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 tool's function: waiting for an element to appear or for a specified duration. It uses a specific verb ('wait') and resource ('element'/'time'), distinguishing it from sibling browser tools that perform actions like clicking or navigating. However, 'appear' is slightly ambiguous (presence vs. visibility), so it's not a perfect 5.

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

Usage Guidelines3/5

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

The description implies when to use the tool: when you need to wait for a condition (element appearance) or a delay. It does not explicitly mention alternatives or when not to use it, but the sibling list makes it clear this is the only wait-related tool. There is no exclusionary guidance, so it's adequate but not comprehensive.

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. Dates show when Glama detected each change.

  1. 32 tool updatesv0.1.3
    • First observedbrowser_check
    • First observedbrowser_clear_cookies
    • First observedbrowser_click
    • First observedbrowser_close
    • 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_pdf
    • First observedbrowser_press
    • First observedbrowser_reload
    • First observedbrowser_screenshot
    • First observedbrowser_scroll
    • First observedbrowser_select
    • First observedbrowser_set_cookie
    • First observedbrowser_snapshot
    • First observedbrowser_type
    • First observedbrowser_uncheck
    • First observedbrowser_wait

TDQS

B3.3/5.0
Disambiguation4/5

Most tools have distinct purposes, though browser_fill and browser_type both handle text input and could be confused without careful reading. Overall, actions and queries are clearly separated.

Naming Consistency5/5

All tools share the browser_ prefix and use a consistent verb-based pattern (e.g., browser_navigate, browser_get_text, browser_set_cookie). This makes the tool set predictable and easy to navigate.

Tool Count2/5

At 32 tools, this exceeds the threshold for well-scoped sets. While each tool has a purpose, the sheer number feels heavy and some utilities (e.g., separate is_visible/is_enabled/is_checked) could be consolidated.

Completeness4/5

The tool set covers core browser automation workflows—navigation, interaction, state extraction, cookies, and diagnostics. Missing elements like tab/window management and file uploads are notable but not critical for most tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that enables LLM applications to control web browsers via Browserbase, supporting features like web navigation, screenshots, cookie management, and persistent contexts.
    17
    5,333
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI coding tools to control a browser for automated actions, UI extraction, network interception, and screenshots.
    1
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    A browser automation MCP server with stealth mode, profile management, and multi-browser support, enabling LLMs to control browsers for tasks like navigation, data extraction, and form filling.
    22
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/minhlucvan/agent-browser-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server