Skip to main content
Glama
andytango
by andytango

Puppeteer MCP Server

A Model Context Protocol (MCP) server that provides browser automation capabilities through Puppeteer. This server enables AI agents to interact with web pages, take screenshots, execute JavaScript, and perform various browser operations.

Features

  • Multi-tab Support: Manage multiple browser tabs with unique IDs

  • Comprehensive Tools: 27 tools for navigation, interaction, content extraction, and more

  • Dual Transport: Supports both stdio (for Claude Desktop/Code) and HTTP transports

  • Result Types: Consistent error handling with structured Result types

Related MCP server: Puppeteer Swarm MCP

Installation

npm install
npm run build

Usage

Stdio Mode (Default)

For use with Claude Desktop or Claude Code:

npm start
# or
node dist/index.js

HTTP Mode

For remote or containerized deployments:

npm start -- --http
# or
node dist/index.js --http --port=3000

Claude Desktop Configuration

Add to your Claude Desktop config:

{
  "mcpServers": {
    "puppeteer": {
      "command": "node",
      "args": ["/path/to/puppeteer-mcp/dist/index.js"]
    }
  }
}

Available Tools

Tab Management

Tool

Description

list_tabs

List all open browser tabs

new_tab

Create a new tab (optionally with URL)

close_tab

Close a tab

switch_tab

Switch to a different tab

Navigation

Tool

Description

navigate

Navigate to a URL

reload

Reload the current page

go_back

Navigate back in history

go_forward

Navigate forward in history

Interaction

Tool

Description

click

Click an element

fill

Fill a text input

select

Select dropdown option(s)

hover

Hover over an element

focus

Focus an element

Input

Tool

Description

keyboard

Press keyboard keys

mouse

Perform mouse actions

scroll

Scroll the page or element

Content

Tool

Description

evaluate

Execute JavaScript

get_content

Get page/element HTML or text

query_selector

Get element information

Waiting

Tool

Description

wait_for_selector

Wait for element to appear

wait_for_navigation

Wait for navigation

wait

Wait for specified time

Media

Tool

Description

screenshot

Capture screenshot

pdf

Generate PDF

Cookies

Tool

Description

get_cookies

Get cookies

set_cookies

Set cookies

delete_cookies

Delete cookies

Tool Parameters

All tools that operate on pages accept an optional tabId parameter. If not specified, the active tab is used.

Example: Navigate and Take Screenshot

// Navigate
{ "name": "navigate", "arguments": { "url": "https://example.com" } }

// Take screenshot
{ "name": "screenshot", "arguments": { "fullPage": true, "format": "png" } }

Example: Multi-tab Workflow

// Create new tab
{ "name": "new_tab", "arguments": { "url": "https://site-a.com" } }
// Returns: { "id": "tab_abc123", "url": "https://site-a.com", ... }

// Create another tab
{ "name": "new_tab", "arguments": { "url": "https://site-b.com" } }
// Returns: { "id": "tab_def456", "url": "https://site-b.com", ... }

// List all tabs
{ "name": "list_tabs", "arguments": {} }

// Interact with specific tab
{ "name": "click", "arguments": { "selector": "button", "tabId": "tab_abc123" } }

Environment Variables

Variable

Description

Default

PORT

HTTP server port

3000

HEADLESS

Run browser headless

true

TIMEOUT

Default operation timeout (ms)

30000

Development

# Install dependencies
npm install

# Run in development mode
npm run dev

# Type check
npm run typecheck

# Run tests
npm test

# Build
npm run build

Architecture

src/
├── index.ts          # Entry point, transport setup
├── server.ts         # MCP server configuration
├── browser.ts        # Browser lifecycle management
├── tabs.ts           # Multi-tab state management
├── types.ts          # TypeScript interfaces
├── errors.ts         # Result types and error handling
├── schemas.ts        # Zod validation schemas
└── tools/
    ├── tab-tools.ts      # Tab management tools
    ├── navigation.ts     # Navigation tools
    ├── interaction.ts    # Click, fill, select, etc.
    ├── content.ts        # Evaluate, get content
    ├── waiting.ts        # Wait tools
    ├── media.ts          # Screenshot, PDF
    ├── cookies.ts        # Cookie management
    └── input.ts          # Keyboard, mouse, scroll

License

MIT

puppeteer-mcp

Available Tools

27 tools
clickC

Click an element on the page

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector for the element
buttonNoMouse button to clickleft
clickCountNoNumber of clicks
delayNoDelay between mousedown and mouseup in ms
timeoutNoTimeout in milliseconds
tabIdNoTab ID to operate on (uses active tab if not specified)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action without disclosing behavioral traits. It doesn't mention potential side effects (e.g., page navigation, form submissions), error conditions (e.g., if selector fails), or performance considerations (e.g., waiting for element). This leaves significant gaps for a tool that interacts with dynamic web content.

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 zero wasted words. It's front-loaded with the core action and target, making it immediately understandable without unnecessary elaboration.

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

Completeness2/5

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

For a tool with 6 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what happens after clicking (e.g., returns success/failure, triggers events), error handling, or interaction with page state. Given the complexity of web automation, more context is needed for safe and effective use.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are fully documented in the schema. The description adds no additional meaning beyond implying a 'selector' parameter, which is already covered. This meets the baseline for high schema coverage but doesn't enhance understanding.

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

Purpose4/5

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

The description 'Click an element on the page' clearly states the action (click) and target (element on page), which is specific and unambiguous. However, it doesn't differentiate from sibling tools like 'mouse' or 'hover' that also interact with page elements, preventing a perfect score.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'mouse' (which might offer more granular control) or 'hover' (for non-click interactions). The description lacks context about prerequisites (e.g., needing an element to be visible) or exclusions, offering minimal usage direction.

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

close_tabA

Close a browser tab. If no tabId provided, closes the active tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNoTab ID to operate on (uses active tab if not specified)

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the tool's behavior (closing tabs, defaulting to active tab) but lacks details on permissions needed, whether the action is reversible, potential side effects (e.g., losing unsaved data), or error handling. It adds basic context but misses deeper behavioral traits.

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

Conciseness5/5

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

The description is front-loaded with the core purpose in the first sentence and adds conditional behavior in the second. Every sentence earns its place with no wasted words, 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?

Given the tool's moderate complexity (destructive action with one parameter) and no annotations or output schema, the description is minimally adequate. It covers the basic operation but lacks information on return values, error cases, or integration with sibling tools, leaving gaps for an AI agent to infer behavior.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema already documents the 'tabId' parameter. The description adds value by explaining the default behavior (closes active tab if not specified), which clarifies semantics beyond the schema's technical details. However, it does not elaborate on parameter format or constraints.

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

Purpose5/5

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

The description clearly states the specific action ('Close a browser tab') and the resource ('browser tab'), distinguishing it from siblings like 'list_tabs', 'new_tab', or 'switch_tab'. It precisely defines the verb and target, 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 Guidelines4/5

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

The description provides clear context for when to use it (to close a tab) and specifies behavior based on parameter presence (closes active tab if no tabId). However, it does not explicitly state when not to use it or mention alternatives like 'switch_tab' for changing tabs without closing, which could help differentiate usage scenarios.

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

delete_cookiesC

Delete cookies by name

ParametersJSON Schema
NameRequiredDescriptionDefault
namesYesCookie names to delete
tabIdNoTab ID to operate on (uses active tab if not specified)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the action ('Delete') which implies mutation, but doesn't describe side effects (e.g., whether deletion is permanent, if it affects browser state), authentication needs, rate limits, or error conditions. For a destructive operation with zero annotation coverage, this is inadequate.

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, efficient sentence with zero wasted words. It's front-loaded with the core action and immediately communicates the essential functionality. 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?

For a destructive tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after deletion (success/failure indicators), whether multiple cookies can be deleted atomically, or how it interacts with browser state. The agent lacks critical context for safe and effective use.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters ('names' and 'tabId') clearly documented in the schema. The description adds no additional parameter semantics beyond what's already in the schema (e.g., format of cookie names, what happens if tabId is invalid). Baseline 3 is appropriate when schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Delete') and target resource ('cookies by name'), making the purpose immediately understandable. It distinguishes from sibling tools like 'set_cookies' and 'get_cookies' by specifying deletion rather than creation or retrieval. However, it doesn't explicitly mention the browser context or differentiate from other deletion tools, keeping it at 4 rather than 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an active browser session), when not to use it, or how it relates to sibling tools like 'set_cookies' or 'get_cookies'. The agent must infer usage from the name and schema alone.

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

evaluateB

Execute JavaScript code in the browser context and return the result

ParametersJSON Schema
NameRequiredDescriptionDefault
scriptYesJavaScript code to execute
tabIdNoTab ID to operate on (uses active tab if not specified)

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions execution in the browser context and returning a result, but lacks details on error handling, execution timeouts, security implications, or whether it requires specific browser permissions. This is a significant gap for a tool that executes arbitrary code.

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, efficient sentence that front-loads the core action ('Execute JavaScript code') and includes essential context and outcome. There is no wasted verbiage, making it highly concise and well-structured for quick understanding.

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

Completeness2/5

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

Given the complexity of executing JavaScript in a browser, the lack of annotations, and no output schema, the description is incomplete. It does not cover critical aspects like error responses, return value formats, or safety considerations, leaving gaps that could hinder effective tool use by an AI agent.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters ('script' and 'tabId') with clear descriptions. The description does not add any additional meaning beyond what the schema provides, such as examples of valid JavaScript code or details on how 'tabId' interacts with browser tabs.

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

Purpose5/5

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

The description clearly states the specific action ('Execute JavaScript code') and the context ('in the browser context'), distinguishing it from sibling tools that perform different browser automation tasks like clicking, navigating, or taking screenshots. It explicitly mentions the return value ('and return the result'), which is crucial for understanding its 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 executing JavaScript in a browser, but it does not explicitly state when to use this tool versus alternatives like 'query_selector' for DOM queries or 'get_content' for content extraction. No guidance is provided on prerequisites, such as requiring an active browser session or specific permissions.

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

fillC

Fill a text input or textarea with a value

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector for the element
valueYesText value to fill
clearFirstNoClear the field before filling
timeoutNoTimeout in milliseconds
tabIdNoTab ID to operate on (uses active tab if not specified)

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 burden but only states the basic action. It doesn't disclose behavioral traits like whether it waits for the element to be visible, handles errors if the selector fails, or interacts with page state. This leaves significant gaps for a tool that modifies web page content.

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, efficient sentence that front-loads the core action. Every word earns its place with no redundancy or fluff, making it easy to parse quickly while conveying the essential function.

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

Completeness2/5

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

For a tool with 5 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain return values, error conditions, or interaction with page state, leaving the agent with incomplete context for safe and effective use in a browser automation scenario.

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 parameters are well-documented in the schema itself. The description adds no additional meaning beyond implying 'value' is for text input, which is already clear from schema descriptions. Baseline 3 is appropriate as the schema handles the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('fill') and target ('text input or textarea'), making the purpose immediately understandable. It doesn't differentiate from siblings like 'select' or 'keyboard' that might also input text, but it's specific enough to convey the core function without being tautological.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'keyboard' for typing or 'select' for dropdowns. The description only states what it does, not when it's appropriate, leaving the agent to infer usage from context without explicit direction.

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

focusC

Focus an element on the page

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector for the element
timeoutNoTimeout in milliseconds
tabIdNoTab ID to operate on (uses active tab if not specified)

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 full burden. While 'focus an element' implies a non-destructive UI interaction, it doesn't disclose behavioral traits like what happens if the element isn't focusable, whether it waits for the element to appear, what visual feedback occurs, or error conditions. The description is too minimal for a tool that interacts with browser elements.

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

Conciseness5/5

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

The description is a single, clear sentence with zero wasted words. It's front-loaded with the core action and target. Every word earns its place, making it highly efficient for quick understanding.

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

Completeness2/5

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

Given the complexity of browser automation (interacting with dynamic pages) and lack of annotations or output schema, the description is insufficient. It doesn't explain what 'focus' means in this context (e.g., UI focus vs. programmatic focus), what happens on success/failure, or how it relates to other browser tools. For a tool with 3 parameters and no structured safety hints, more context is needed.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already fully documents all three parameters (selector, timeout, tabId). The description adds no additional parameter semantics beyond what's in the schema. This meets the baseline of 3 since the schema does the heavy lifting, but the description doesn't compensate or provide extra context.

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

Purpose4/5

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

The description clearly states the action ('focus') and target ('an element on the page'), making the purpose immediately understandable. It distinguishes itself from siblings like 'click' or 'hover' by specifying a different interaction type. However, it doesn't explicitly differentiate from similar tools like 'select' or 'query_selector' which might also involve element 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 guidance on when to use this tool versus alternatives. With many sibling tools available (e.g., 'click', 'hover', 'select'), there's no indication of when focusing an element is appropriate versus other interactions. No prerequisites, exclusions, or complementary tools are mentioned.

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

get_contentC

Get the HTML or text content of the page or a specific element

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorNoElement selector (returns full page content if not specified)
typeNoContent type to returntext
tabIdNoTab ID to operate on (uses active tab if not specified)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions what the tool does but lacks behavioral details such as permissions needed, rate limits, error handling, or what happens if the selector doesn't exist. This is inadequate for a tool that interacts with web content.

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, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized and front-loaded, making it easy to understand 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 complexity of interacting with web content, no annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like return format, error cases, or dependencies on other tools (e.g., requiring a page to be loaded), leaving significant gaps for an AI agent.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters well. The description adds minimal value by implying the tool can retrieve full page content or specific elements, but doesn't provide additional semantics beyond what the schema specifies.

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 'Get' and the resource 'HTML or text content of the page or a specific element', making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'query_selector' or 'evaluate', which might also retrieve content, so it lacks sibling distinction.

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 'query_selector' and 'evaluate' that might overlap in functionality, there's no explicit context or exclusions mentioned, leaving usage unclear.

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

get_cookiesC

Get cookies for the current page or specified URLs

ParametersJSON Schema
NameRequiredDescriptionDefault
urlsNoURLs to get cookies for (uses current page URL if not specified)
tabIdNoTab ID to operate on (uses active tab if not specified)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but lacks details on permissions needed, rate limits, whether it returns all cookies or specific types, or how errors are handled. This is insufficient for a tool that interacts with browser data.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose and scope without any unnecessary words. It's front-loaded and appropriately sized for its function.

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

Completeness2/5

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

Given the complexity of browser cookie retrieval, no annotations, and no output schema, the description is incomplete. It doesn't explain what the output looks like (e.g., cookie objects with attributes), potential security considerations, or error cases, leaving significant gaps for an AI agent.

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

Parameters3/5

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

The input schema has 100% description coverage, clearly documenting both parameters ('urls' and 'tabId') with their purposes and default behaviors. The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline score of 3.

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

Purpose4/5

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

The description clearly states the action ('Get') and resource ('cookies'), specifying it can target the current page or specified URLs. However, it doesn't explicitly differentiate from sibling tools like 'delete_cookies' or 'set_cookies' beyond the verb difference, which is why it doesn't reach a 5.

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

Usage Guidelines2/5

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

The description provides minimal guidance by mentioning the default behavior (current page if no URLs specified), but it doesn't explain when to use this tool versus alternatives like 'delete_cookies' or 'set_cookies', nor does it outline any prerequisites or exclusions for usage.

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

go_backB

Navigate back in browser history

ParametersJSON Schema
NameRequiredDescriptionDefault
waitUntilNo
timeoutNoTimeout in milliseconds
tabIdNoTab ID to operate on (uses active tab if not specified)

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 full burden for behavioral disclosure. While 'Navigate back' implies a navigation action, it doesn't specify what happens on success/failure, whether it waits for page load, or if it requires specific browser state. The description lacks crucial behavioral context beyond the basic 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, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it immediately understandable. Every word earns its place in conveying the essential function.

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

Completeness2/5

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

For a navigation tool with 3 parameters, no annotations, and no output schema, the description is insufficient. It doesn't address behavioral aspects like error conditions, success indicators, or interaction with browser state. The minimal description leaves too many contextual gaps for effective tool use.

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

Parameters4/5

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

With 67% schema description coverage (2 of 3 parameters documented) and 0 required parameters, the description adds value by implying the core navigation behavior. However, it doesn't explain parameter purposes like 'waitUntil' options or 'tabId' usage, leaving some semantic gaps despite decent 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 specific action ('Navigate back') and resource ('browser history'), distinguishing it from sibling tools like 'go_forward' (forward navigation) and 'reload' (page refresh). It uses precise terminology that directly communicates 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 guidance on when to use this tool versus alternatives like 'go_forward', 'reload', or 'navigate'. It doesn't mention prerequisites (e.g., requiring browser context or existing history) or typical use cases (e.g., after clicking links).

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

go_forwardB

Navigate forward in browser history

ParametersJSON Schema
NameRequiredDescriptionDefault
waitUntilNo
timeoutNoTimeout in milliseconds
tabIdNoTab ID to operate on (uses active tab if not specified)

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 full burden for behavioral disclosure. It states the action but doesn't mention what happens if no forward history exists, whether it waits for page load, or what the expected outcome is. The description lacks crucial behavioral context for a navigation 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, efficient sentence that directly states the tool's purpose with zero wasted words. It's appropriately sized for a simple navigation operation and front-loads the essential information.

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

Completeness2/5

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

Given this is a browser navigation tool with no annotations, no output schema, and 3 parameters (even if optional), the description is insufficient. It doesn't explain what happens on success/failure, what the return value might be, or important behavioral constraints. The description leaves too many contextual gaps for proper agent understanding.

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

Parameters4/5

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

Schema description coverage is 67% (2 of 3 parameters have descriptions). The description adds no parameter-specific information beyond what the schema provides. However, with 0 required parameters and relatively complete schema documentation, the baseline is high. The description doesn't compensate for the 33% gap but doesn't need to heavily given the optional nature of 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 'Navigate forward in browser history' clearly states the specific action (navigate forward) and resource (browser history). It distinguishes from sibling tools like 'go_back' (backward navigation) and 'navigate' (new URL navigation), providing precise 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. It doesn't mention prerequisites (e.g., having forward history available), exclusions, or compare with similar tools like 'go_back' or 'reload'. Usage is implied but not explicitly defined.

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

hoverC

Hover over an element on the page

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector for the element
timeoutNoTimeout in milliseconds
tabIdNoTab ID to operate on (uses active tab if not specified)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the action but lacks details on side effects (e.g., if it triggers events), error handling, or performance implications. This is a significant gap for a tool that interacts with web elements.

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

Conciseness5/5

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

The description is a single, clear sentence with zero waste, front-loading the core action. It's appropriately sized for a simple tool, making it highly efficient and easy to understand.

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

Completeness2/5

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

Given the tool's complexity (interacting with web elements) and lack of annotations and output schema, the description is incomplete. It doesn't cover what happens on hover (e.g., tooltips, state changes), success/failure indicators, or integration with sibling tools, leaving gaps for an AI agent.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no additional meaning beyond what's in the schema, such as examples or edge cases, resulting in the baseline score of 3.

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

Purpose4/5

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

The description clearly states the action ('hover over') and target ('an element on the page'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'mouse' or 'click', which might have overlapping functionality, so it doesn't reach the highest score.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives like 'mouse' or 'click' from the sibling list, nor does it mention any prerequisites or exclusions. It's a basic statement of function without contextual usage advice.

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

keyboardC

Press a key or key combination

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesKey to press (e.g., "Enter", "Tab", "a")
modifiersNoModifier keys to hold
tabIdNoTab ID to operate on (uses active tab if not specified)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does ('Press') but doesn't describe important behavioral aspects: whether this simulates physical key presses, how it interacts with browser focus, what happens if the target isn't keyboard-focusable, or any side effects. The description is minimal and lacks operational context.

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

Conciseness5/5

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

The description is extremely concise - a single, clear sentence that communicates the core functionality without any wasted words. It's front-loaded with the essential action and doesn't include unnecessary elaboration or examples.

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

Completeness2/5

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

For a tool with 3 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what 'pressing' means in this context (simulation vs. actual input), what happens after key press, error conditions, or typical use cases. The description leaves too many operational questions unanswered.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all three parameters. The description adds no parameter-specific information beyond what's in the schema. The baseline score of 3 reflects adequate parameter documentation through the schema alone, with no additional value from the description.

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

Purpose4/5

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

The description clearly states the action ('Press') and target ('a key or key combination'), making the purpose immediately understandable. It distinguishes from siblings like 'click' or 'mouse' by focusing on keyboard input rather than mouse actions. However, it doesn't explicitly differentiate from all possible keyboard-related tools that might exist.

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 doesn't mention when keyboard input is preferred over other input methods (like 'fill' for text entry or 'click' for button activation), nor does it specify prerequisites or context for effective use.

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

list_tabsA

List all open browser tabs with their IDs, URLs, and titles

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states what the tool returns (IDs, URLs, titles) without disclosing behavioral traits like whether it lists tabs across all windows, if it requires specific permissions, how it handles private/incognito tabs, or what format the output takes. This leaves significant gaps for a tool with zero annotation coverage.

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, efficient sentence that front-loads the core action ('List all open browser tabs') followed by the return details. Every word earns its place with zero redundancy or unnecessary elaboration.

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 zero-parameter tool with no output schema, the description adequately covers the basic purpose but lacks completeness regarding behavioral context (e.g., scope, permissions, output format). Given the sibling tools involve browser interactions, more context about tab enumeration behavior would be helpful.

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

Parameters4/5

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

The tool has zero parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't waste space discussing non-existent parameters, maintaining focus on the tool's purpose.

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

Purpose5/5

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

The description clearly states the specific action ('List all open browser tabs') and resources involved ('with their IDs, URLs, and titles'). It distinguishes itself from siblings like 'get_content' or 'query_selector' by focusing on tab enumeration rather than content extraction or DOM querying.

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

Usage Guidelines3/5

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

The description implies usage when needing to enumerate tabs, but provides no explicit guidance on when to use this versus alternatives like 'switch_tab' (for navigation) or 'new_tab' (for creation). It lacks explicit when-not-to-use statements or prerequisite context.

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

mouseC

Perform mouse actions at specific coordinates

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesX coordinate
yYesY coordinate
buttonNoleft
actionNoMouse action to performclick
tabIdNoTab ID to operate on (uses active tab if not specified)

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. While 'Perform mouse actions' implies interaction with the UI, it doesn't specify whether this requires focus on a specific window/tab, potential side effects (e.g., triggering events), or error conditions. The description is too vague for a tool that manipulates user interface elements.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core purpose, making it easy to parse quickly, though its brevity contributes to gaps in other dimensions.

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

Completeness2/5

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

Given the complexity of a mouse interaction tool with 5 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain return values, error handling, coordinate systems, or how it integrates with sibling tools (e.g., 'click' vs. 'mouse' with action='click'), leaving critical gaps for an AI agent to use it effectively.

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 80%, providing a solid baseline. The description adds minimal value beyond the schema—it mentions 'specific coordinates' (implied by x and y parameters) and 'mouse actions' (implied by the action parameter), but doesn't clarify coordinate systems (e.g., screen vs. viewport), action sequences, or tab context. This meets the baseline for high schema coverage.

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

Purpose4/5

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

The description 'Perform mouse actions at specific coordinates' clearly states the verb ('perform mouse actions') and resource ('at specific coordinates'), making the purpose understandable. However, it doesn't distinguish this tool from sibling tools like 'click' or 'hover', which also involve mouse interactions, leaving some ambiguity about its specific role.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'click' or 'hover'. It lacks context about scenarios where this tool is preferred, prerequisites, or exclusions, leaving the agent to infer usage from the tool name and parameters alone.

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

new_tabA

Open a new browser tab, optionally navigating to a URL. The new tab becomes active.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoURL to navigate to in the new tab

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and adds valuable behavioral context beyond the basic action: it specifies that the new tab becomes active (important UI state information) and that URL navigation is optional. However, it doesn't mention potential side effects like browser focus changes or tab management implications.

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

Conciseness5/5

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

Two concise sentences with zero waste: first states core functionality with optional parameter, second adds crucial behavioral detail. Every word earns its place, and the most important information (opening new tab) is front-loaded.

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

Completeness4/5

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

For a simple single-parameter tool with no annotations and no output schema, the description is reasonably complete: it explains what the tool does, the optional parameter, and key behavioral outcome. However, it could mention what happens if no URL is provided (opens blank tab) for full completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already fully documents the single optional 'url' parameter. The description adds marginal value by mentioning 'optionally navigating to a URL' but doesn't provide additional semantic context beyond what the schema provides. Baseline 3 is appropriate when schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the verb ('Open') and resource ('a new browser tab'), with specific scope ('optionally navigating to a URL') and behavioral detail ('The new tab becomes active'). It distinguishes from siblings like 'navigate' (which changes current tab) and 'switch_tab' (which activates existing tab).

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool (to open new tabs, optionally with URL navigation), but doesn't explicitly state when not to use it or name specific alternatives. It implies differentiation from 'navigate' (changes current tab) and 'switch_tab' (activates existing tab), but lacks explicit exclusion guidance.

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

pdfC

Generate a PDF of the current page

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoA4
landscapeNo
printBackgroundNo
marginNo
tabIdNoTab ID to operate on (uses active tab if not specified)

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the action ('Generate a PDF') but doesn't describe what 'current page' means, whether this requires specific page states, what happens if generation fails, or any performance characteristics. The description provides minimal behavioral context beyond the basic 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, clear sentence that states the core functionality without unnecessary words. It's perfectly front-loaded with the essential information. Every word earns its place, making this an excellent example of 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?

For a tool with 5 parameters, nested objects, no annotations, and no output schema, the description is inadequate. It doesn't explain what 'current page' means in context of browser automation, doesn't describe the PDF generation process or output format, and provides no guidance on parameter usage. The description leaves too many open questions for effective tool invocation.

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

Parameters2/5

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

With only 20% schema description coverage (only 'tabId' has a description), the description provides no information about any parameters. It doesn't mention format options, layout settings, or margin configurations that the schema reveals. The description fails to compensate for the low schema coverage, leaving most parameters undocumented.

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

Purpose4/5

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

The description clearly states the action ('Generate') and resource ('PDF of the current page'), making the purpose immediately understandable. It distinguishes from sibling tools like 'screenshot' by specifying PDF generation rather than image capture. However, it doesn't explicitly differentiate from all possible document generation tools, keeping it at a 4 rather than 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'screenshot' for visual captures or other document generation methods. It doesn't mention prerequisites (e.g., requires an active page/tab) or contextual constraints, leaving the agent to infer usage from the tool name alone.

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

query_selectorC

Get information about an element matching a CSS selector

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector for the element
tabIdNoTab ID to operate on (uses active tab if not specified)

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 mentions 'Get information' but does not specify what type of information (e.g., text, attributes, position), whether it's read-only, potential errors (e.g., if selector not found), or interaction effects. This leaves significant gaps in understanding the tool's behavior.

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

Conciseness5/5

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

The description is a single, clear sentence that efficiently conveys the core purpose without unnecessary words. It is front-loaded and appropriately sized, making it easy to parse and understand 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 complexity of interacting with web elements, the lack of annotations and output schema means the description should do more to explain behavior, return values, and error handling. It fails to provide sufficient context for effective use, especially compared to sibling tools 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%, with both parameters ('selector' and 'tabId') well-documented in the schema. The description adds no additional meaning beyond the schema, such as examples or constraints, so it meets the baseline for adequate but not enhanced parameter semantics.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('Get information') and resource ('an element matching a CSS selector'), making it easy to understand what the tool does. However, it does not explicitly differentiate from sibling tools like 'get_content' or 'select', which might have overlapping functionality, preventing a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as 'get_content' for broader content retrieval or 'select' for element interaction. It lacks context about prerequisites, exclusions, or specific scenarios where this tool is preferred, leaving usage unclear.

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

reloadC

Reload the current page

ParametersJSON Schema
NameRequiredDescriptionDefault
waitUntilNo
timeoutNoTimeout in milliseconds
tabIdNoTab ID to operate on (uses active tab if not specified)

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 full burden. 'Reload' implies a page refresh, but it doesn't disclose behavioral traits like whether it waits for page load, handles authentication persistence, affects browser state, or has side effects. The description is minimal and lacks operational context.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste. It's front-loaded and appropriately sized for a simple action, avoiding unnecessary elaboration. 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 3 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what 'reload' entails operationally, success/failure conditions, or interaction with browser state. For a tool with parameters and no structured safety hints, more context is needed.

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 67% (2 of 3 parameters have descriptions). The description adds no parameter semantics beyond the schema. With moderate coverage, the baseline is 3, as the schema documents 'waitUntil' enum values, 'timeout' range/meaning, and 'tabId' default behavior, but the description doesn't enhance this.

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 'Reload the current page' clearly states the action (reload) and target (current page) with a specific verb+resource. It distinguishes from siblings like 'navigate' (loads a new URL) or 'go_back' (navigates back), but doesn't explicitly contrast with them. The purpose is unambiguous but could be more differentiated.

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 doesn't mention scenarios like refreshing content after dynamic updates, handling stale pages, or when to prefer 'navigate' to the same URL. With many browser interaction siblings, explicit usage context is missing.

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

screenshotB

Capture a screenshot of the page or a specific element

ParametersJSON Schema
NameRequiredDescriptionDefault
fullPageNoCapture full scrollable page
selectorNoElement to screenshot (screenshots viewport if not specified)
formatNopng
qualityNoImage quality (jpeg/webp only)
widthNoViewport width in pixels (default 1024)
heightNoViewport height in pixels (default 768)
scaleNoDevice scale factor (default 1, use 2 for retina)
tabIdNoTab ID to operate on (uses active tab if not specified)

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 full burden but offers minimal behavioral disclosure. It mentions capturing 'page or a specific element' but doesn't describe what happens (e.g., returns image data, saves to file, requires permissions, has visual rendering delays, or affects browser state). For a tool with 8 parameters and no annotation coverage, this leaves significant behavioral unknowns.

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, efficient sentence that immediately communicates the core function. Every word earns its place with no redundancy or unnecessary elaboration. It's perfectly front-loaded with the essential information.

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

Completeness2/5

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

For a complex screenshot tool with 8 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what the tool returns (image data format, file location, etc.), performance characteristics, error conditions, or how it interacts with the browser context. The agent lacks crucial information to use this tool effectively.

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 high at 88%, providing good documentation for most parameters. The description adds minimal value beyond the schema - it hints at the 'selector' parameter's behavior ('screenshots viewport if not specified') but this is already covered in the schema. With high schema coverage, the baseline of 3 is appropriate as the description doesn't significantly enhance parameter understanding.

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

Purpose5/5

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

The description clearly states the specific action ('capture a screenshot') and the target ('page or a specific element'), distinguishing it from all sibling tools which perform different browser automation functions like navigation, interaction, or content extraction. It uses precise language that immediately communicates 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 Guidelines3/5

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

The description implies usage context (when you need visual capture of a webpage or element) but provides no explicit guidance on when to choose this over alternatives like 'pdf' (which captures as PDF) or 'get_content' (which extracts text/HTML). There's no mention of prerequisites or limitations, leaving the agent to infer appropriate usage scenarios.

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

scrollC

Scroll the page or a specific element

ParametersJSON Schema
NameRequiredDescriptionDefault
directionNodown
amountNoScroll amount in pixels
selectorNoElement to scroll (scrolls page if not specified)
smoothNoUse smooth scrolling
tabIdNoTab ID to operate on (uses active tab if not specified)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't describe important behavioral aspects like whether scrolling is immediate or animated, what happens if the selector doesn't exist, whether it waits for page load, or what the return value is. The description is minimal and lacks operational context.

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

Conciseness5/5

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

The description is extremely concise at just 6 words, front-loaded with the core functionality. Every word serves a purpose: 'scroll' defines the action, 'the page or a specific element' defines the scope. There's zero wasted verbiage.

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

Completeness2/5

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

For a tool with 5 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain the tool's behavior in different scenarios, error conditions, or what constitutes successful execution. The minimal description leaves too many operational questions unanswered.

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

Parameters3/5

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

The description mentions scrolling 'the page or a specific element' which hints at the 'selector' parameter's purpose, but doesn't add meaningful semantics beyond what the 80% schema coverage already provides. The schema descriptions adequately explain each parameter's function, so the description doesn't significantly enhance parameter understanding.

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

Purpose4/5

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

The description clearly states the action ('scroll') and specifies what can be scrolled ('the page or a specific element'), which provides a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'navigate' or 'go_back' which involve page movement but not scrolling.

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 doesn't mention when scrolling is appropriate compared to navigation tools, nor does it specify prerequisites like needing an active page or tab context.

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

selectC

Select option(s) from a dropdown/select element

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector for the element
valuesYesOption values to select
timeoutNoTimeout in milliseconds
tabIdNoTab ID to operate on (uses active tab if not specified)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions the action but doesn't disclose whether this requires the element to be in a particular state (visible, enabled), what happens with invalid selectors/values, or if it waits for page updates. This leaves significant gaps for a mutation tool interacting with web elements.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized for a straightforward tool and front-loads the essential 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?

For a tool with 4 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain return values, error conditions, or behavioral nuances (like multi-select support implied by 'option(s)'). Given the complexity of web automation and lack of structured data, more context is needed for reliable use.

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

Parameters3/5

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

Schema description coverage is 100%, providing complete parameter documentation. The description adds no additional parameter semantics beyond what's in the schema (e.g., explaining what 'values' represents or selector syntax). This meets the baseline for high schema coverage but doesn't enhance understanding.

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

Purpose4/5

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

The description clearly states the action ('Select option(s)') and target ('from a dropdown/select element'), providing a specific verb+resource combination. However, it doesn't explicitly distinguish this tool from similar siblings like 'click' or 'fill' that might also interact with form elements, which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'click' for buttons or 'fill' for text inputs. It doesn't mention prerequisites (e.g., needing the element to be visible) or exclusions (e.g., not working on non-select elements), leaving the agent with minimal context for tool selection.

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

set_cookiesC

Set cookies in the browser

ParametersJSON Schema
NameRequiredDescriptionDefault
cookiesYes
tabIdNoTab ID to operate on (uses active tab if not specified)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure but offers minimal information. It states the action is 'set' (implying mutation) but doesn't cover permission requirements, side effects (e.g., whether cookies persist across sessions), error conditions, or what happens if cookies already exist. This leaves significant behavioral gaps 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, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it immediately scannable. Every word earns its place by conveying essential purpose 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?

For a mutation tool with no annotations, no output schema, and moderate schema coverage, the description is inadequate. It doesn't address behavioral aspects like side effects, error handling, or success indicators. Given the complexity of cookie management (multiple attributes, browser context), more context is needed to help an agent use this tool correctly.

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

Parameters3/5

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

Schema description coverage is 50% (only 'expires' and 'tabId' have descriptions). The description adds no parameter-specific information beyond implying cookies are set. It doesn't explain the structure of the cookies array, required vs optional fields, or the meaning of cookie attributes like 'sameSite' or 'httpOnly'. The baseline 3 reflects that schema coverage is moderate but description adds little compensatory value.

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

Purpose4/5

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

The description 'Set cookies in the browser' clearly states the action (set) and target resource (cookies in browser), making the purpose immediately understandable. However, it doesn't differentiate from the sibling tool 'delete_cookies' beyond the verb, missing explicit contrast between setting and deleting operations.

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 about when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing an active browser session), contrast with 'get_cookies' for reading cookies, or specify scenarios where setting cookies is appropriate versus other browser automation tools.

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

switch_tabB

Switch to a different tab, making it the active tab for subsequent operations.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID to switch to

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. It states the tool changes the active tab but does not disclose behavioral traits such as whether it requires specific permissions, if it affects browser state irreversibly, potential errors (e.g., invalid tab ID), or side effects. This is a significant gap for a mutation tool with zero annotation coverage.

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, efficient sentence that is front-loaded with the core action and outcome. Every word earns its place, with no redundant or vague phrasing, making it highly concise and well-structured.

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

Completeness2/5

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

Given the tool's complexity (a mutation with no annotations and no output schema), the description is incomplete. It lacks details on behavioral transparency, usage guidelines, and error handling, which are crucial for an agent to invoke it correctly in a browser automation context with many sibling tools.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the 'tabId' parameter. The description does not add any meaning beyond what the schema provides (e.g., format examples, source of tab IDs, or constraints), resulting in the baseline score of 3.

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

Purpose5/5

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

The description clearly states the specific action ('Switch to a different tab') and the resource ('tab'), distinguishing it from siblings like 'list_tabs' (which lists tabs) and 'new_tab' (which creates tabs). It also specifies the outcome ('making it the active tab for subsequent operations'), which adds clarity beyond just the verb.

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 prerequisites (e.g., needing an existing tab ID from 'list_tabs'), exclusions, or comparisons to similar tools like 'focus' or 'navigate', leaving usage context unclear.

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

waitA

Wait for a specified number of milliseconds

ParametersJSON Schema
NameRequiredDescriptionDefault
msYesTime to wait in milliseconds

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the behavioral trait of waiting for a specified time, but it does not mention potential side effects like blocking execution, thread behavior, or error handling. It adds basic context but lacks depth for a tool with no annotation coverage.

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, efficient sentence that directly states the tool's function without any unnecessary words. It is appropriately sized and front-loaded, making it easy to understand at a glance.

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 low complexity (one parameter, no output schema, no annotations), the description is minimally complete. It explains what the tool does but does not address potential issues like maximum wait times or interaction with other tools, leaving some contextual 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 description coverage is 100%, with the parameter 'ms' fully documented in the schema. The description adds no additional meaning beyond what the schema provides, such as usage examples or edge cases, so it meets the baseline of 3 for high schema coverage.

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

Purpose5/5

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

The description clearly states the tool's purpose with a specific verb ('wait') and resource ('milliseconds'), and it distinguishes itself from siblings like 'wait_for_navigation' and 'wait_for_selector' by focusing on a simple time delay rather than event-based waiting.

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

Usage Guidelines4/5

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

The description implies usage for timing delays, but it does not explicitly state when to use this tool versus alternatives like 'wait_for_navigation' or 'wait_for_selector'. It provides clear context for a basic wait but lacks explicit exclusions or comparisons.

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

wait_for_navigationC

Wait for the page to navigate to a new URL

ParametersJSON Schema
NameRequiredDescriptionDefault
waitUntilNo
timeoutNoTimeout in milliseconds
tabIdNoTab ID to operate on (uses active tab if not specified)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions waiting for navigation but does not disclose behavioral traits such as what happens on timeout (e.g., error thrown), whether it blocks until navigation completes, or if it works with page loads versus single-page app transitions. This leaves significant gaps in understanding the tool's behavior.

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

Conciseness5/5

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

The description is a single, clear sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and efficient, making it easy for an agent 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 no annotations, no output schema, and incomplete parameter coverage (67%), the description is inadequate. It lacks details on return values, error handling, and behavioral nuances, making it insufficient for an agent to fully understand how to invoke and interpret results from this tool.

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

Parameters3/5

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

Schema description coverage is 67% (2 out of 3 parameters have descriptions), and the description adds no additional parameter semantics beyond what the schema provides. It does not explain the meaning of 'waitUntil' options or when to use 'tabId', so it meets the baseline for moderate schema coverage without compensating for gaps.

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

Purpose4/5

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

The description clearly states the action ('Wait for the page to navigate') and the target ('to a new URL'), which is specific and unambiguous. However, it does not explicitly differentiate from sibling tools like 'wait' or 'wait_for_selector', which handle different waiting scenarios, so it falls short of a perfect score.

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 scenarios like after clicking a link or submitting a form, nor does it reference sibling tools such as 'wait' (general wait) or 'wait_for_selector' (wait for an element), 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.

wait_for_selectorC

Wait for an element matching the selector to appear in the page

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector for the element
visibleNoWait for element to be visible
hiddenNoWait for element to be hidden
timeoutNoTimeout in milliseconds
tabIdNoTab ID to operate on (uses active tab if not specified)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but lacks behavioral details. It doesn't mention what happens on timeout, whether it blocks execution, error conditions, or interaction with page state. This is inadequate for a tool that likely involves asynchronous operations.

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

Conciseness5/5

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

The description is a single, clear sentence with no wasted words. It's front-loaded and efficiently communicates the core functionality without unnecessary elaboration.

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

Completeness2/5

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

For a tool with 5 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain return values, error behavior, or interaction with other tools like 'query_selector'. The agent lacks context about what 'appear in the page' means operationally.

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 parameters are well-documented in the schema. The description adds no additional semantic context beyond implying the tool operates on a page, which is minimal value. Baseline 3 is appropriate as the schema handles parameter documentation.

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

Purpose4/5

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

The description clearly states the action ('wait for') and resource ('element matching the selector'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'wait' or 'wait_for_navigation', which could cause confusion about when to choose this specific waiting tool.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'wait' or 'wait_for_navigation'. The description only states what it does without context about appropriate scenarios or prerequisites, leaving the agent to infer usage.

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

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have distinct purposes, such as navigation (navigate, go_back), interaction (click, fill, hover), and waiting (wait, wait_for_selector). However, some overlap exists between mouse actions: 'mouse' (perform actions at coordinates) and 'click' (click an element) could be confused for similar tasks, though descriptions clarify their differences.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with clear verb_noun or verb_preposition_noun structures, such as 'click', 'close_tab', 'get_content', and 'wait_for_selector'. There are no deviations in naming conventions, making the set predictable and readable.

Tool Count3/5

With 27 tools, the count is borderline high for a Puppeteer server, as it includes many specific actions like 'hover' and 'keyboard' that might be consolidated. While comprehensive, it risks feeling heavy compared to typical well-scoped sets of 3-15 tools, but it's reasonable for browser automation.

Completeness5/5

The tool set provides complete coverage for browser automation, including navigation, interaction, content retrieval, tab management, cookies, and waiting mechanisms. There are no obvious gaps; agents can perform full CRUD-like operations (e.g., get/set cookies, open/close tabs) and handle common workflows without dead ends.

Maintenance

ActivityInactive
ResponsivenessSyncing

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
    Enables browser automation with concurrent tab pool management using Puppeteer. Supports navigation, content extraction, screenshots, element interaction, and JavaScript execution across multiple browser tabs with auto-recovery and idle timeout features.
    11
    16
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables LLMs to perform browser automation including web navigation, element interaction, and screenshot capture using Puppeteer. It provides capabilities for executing JavaScript in the browser and monitoring console logs for debugging and data extraction.
    28,366
    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/andytango/puppeteer-mcp'

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