Skip to main content
Glama
hy-2005
by hy-2005

๐Ÿ–ฅ๏ธ Browser Pool MCP

Dynamic browser pool MCP server โ€” every agent gets its own isolated browser.

License: MIT Node.js MCP

English | ไธญๆ–‡ๆ–‡ๆกฃ

A Model Context Protocol server that wraps Microsoft's @playwright/mcp and turns it into a dynamic browser pool: each unique caller gets its own isolated Chrome instance, so multiple Claude Code sessions, subagents, or any MCP clients can run browser automation concurrently without conflicts.

โœจ Features

  • ๐Ÿงฉ Per-agent isolation โ€” each unique _agent_id gets its own browser. No more "Browser is already in use" errors when multiple agents hit the browser at once.

  • ๐Ÿš€ On-demand spawning โ€” browsers are lazily started on first use (local CLI, ~1s), never pre-allocated.

  • ๐Ÿงน Auto-cleanup โ€” idle instances are killed after 30 min; orphaned instances from crashed wrappers are cleaned on startup.

  • ๐Ÿ›ก๏ธ Never kills busy agents โ€” when the pool is full, the wrapper evicts only idle instances; if all are busy it waits, so a running agent's browser is never yanked away.

  • ๐Ÿ” Backward compatible โ€” calling tools without _agent_id shares one "default" browser, preserving original single-session behavior.

  • ๐ŸŒ Full Playwright toolset โ€” all @playwright/mcp tools (navigate, click, type, screenshot, evaluate, tabs, networkโ€ฆ), no feature loss.

Related MCP server: hanzi-browse

๐Ÿง  Architecture

Claude Code main session โ”€โ”€stdioโ”€โ”€> playwright-pool-mcp (this server)
                                        โ”‚
                                        โ”œโ”€โ”€ agent "A" โ”€โ”€SSEโ”€โ”€> @playwright/mcp :9000 โ”€โ”€> Chrome A
                                        โ”œโ”€โ”€ agent "B" โ”€โ”€SSEโ”€โ”€> @playwright/mcp :9001 โ”€โ”€> Chrome B
                                        โ”œโ”€โ”€ agent "C" โ”€โ”€SSEโ”€โ”€> @playwright/mcp :9002 โ”€โ”€> Chrome C
                                        โ””โ”€โ”€ "default" โ”€โ”€SSEโ”€โ”€> @playwright/mcp :9003 โ”€โ”€> Chrome D

The wrapper does not control Chrome directly. It spawns @playwright/mcp instances on demand and proxies MCP tool calls to them, adding per-agent routing.

๐Ÿš€ Quick Start

Prerequisites

  • Node.js โ‰ฅ 18

  • npm

Install

git clone <your-repo-url> playwright-pool-mcp
cd playwright-pool-mcp
npm install
# First-time Chromium download (if needed):
npx playwright install chromium

Configure Claude Code

User-level global config (~/.claude.json):

{
  "mcpServers": {
    "playwright-pool": {
      "type": "stdio",
      "command": "node",
      "args": ["/path/to/playwright-pool-mcp/playwright-pool-script.js"],
      "env": {
        "BROWSER_POOL_BASE_PORT": "9000",
        "BROWSER_POOL_MAX_INSTANCES": "10",
        "BROWSER_POOL_GLOBAL_MAX": "12",
        "BROWSER_POOL_INSTANCE_TIMEOUT_MS": "1800000",
        "BROWSER_POOL_DEBUG": "0"
      }
    }
  }
}

Restart Claude Code. Tools appear as mcp__playwright-pool__*.

๐Ÿ’ก Usage

Mode 1: Shared (backward compatible)

Omit _agent_id โ€” all calls share one "default" browser:

mcp__playwright-pool__browser_navigate(url="https://example.com")
mcp__playwright-pool__browser_snapshot()

Pass _agent_id โ€” each unique value gets its own browser:

subagent A: mcp__playwright-pool__browser_navigate(url="https://news.ycombinator.com", _agent_id="agent-a")
subagent B: mcp__playwright-pool__browser_navigate(url="https://github.com/trending",   _agent_id="agent-b")
subagent C: mcp__playwright-pool__browser_navigate(url="https://www.baidu.com",         _agent_id="agent-c")

โš ๏ธ Important: pass the same _agent_id across all calls from one agent to keep its browser state (cookies, login, navigation). Different agents use different values.

Subagent template

Create .claude/agents/web-worker.md:

---
name: web-worker
description: Run browser tasks (scraping / research / testing / automation)
tools: mcp__playwright-pool__*, Read, Bash
---

Use mcp__playwright-pool__* tools to operate the browser.

**Key rule: pass the `_agent_id` parameter on every browser tool call.**
The main conversation may dispatch multiple web-workers concurrently; different
workers must use different `_agent_id` values so each gets its own isolated browser.

Examples:
- mcp__playwright-pool__browser_navigate(url="...", _agent_id="worker-1")
- mcp__playwright-pool__browser_evaluate(function="...", _agent_id="worker-1")

Use the same `_agent_id` for all calls within one worker.

๐Ÿ› ๏ธ Tools

All tools accept an optional _agent_id parameter. Aligned 1:1 with @playwright/mcp v0.0.78.

โ„น๏ธ Element targeting: interaction tools use target (snapshot ref or CSS selector). The ref parameter is accepted as an alias for target (Claude Code's client maps it).

Tool

Description

browser_navigate

Navigate to a URL

browser_navigate_back

Go back

browser_snapshot

Accessibility tree (LLM-friendly)

browser_take_screenshot

Screenshot (PNG/JPEG)

browser_click

Click element

browser_type

Type text into element

browser_press_key

Press keyboard key

browser_hover

Hover element

browser_select_option

Select dropdown option

browser_drag / browser_drop

Drag & drop

browser_evaluate

Run JavaScript

browser_wait_for

Wait for condition

browser_find

Find text in page snapshot

browser_fill_form

Fill multiple form fields (JSON array of {name, target, type, value})

browser_tabs

Manage tabs

browser_resize

Resize window

browser_handle_dialog

Handle alert/confirm

browser_file_upload

Upload files

browser_console_messages

Get console logs

browser_network_requests / browser_network_request

Network activity

browser_mouse_move_xy / browser_mouse_click_xy / browser_mouse_drag_xy / browser_mouse_down / browser_mouse_up / browser_mouse_wheel

Mouse control (screen coordinates)

browser_run_code_unsafe

Run arbitrary code (dangerous)

browser_close

Close browser for this agent

pool_status

Pool status (per agent)

โš™๏ธ Configuration

All config via environment variables in ~/.claude.json โ€” no code changes needed:

Variable

Default

Description

BROWSER_POOL_BASE_PORT

9000

Starting port for browser instances

BROWSER_POOL_MAX_INSTANCES

10

Max concurrent browsers per wrapper (โ‰ˆ300MB RAM each)

BROWSER_POOL_GLOBAL_MAX

0 (disabled)

Global max browsers across ALL wrapper sessions (multiple Claude Code windows). File-lock based counter in ~/.browser-pool/. Set e.g. 12 to cap total instances across every session.

BROWSER_POOL_INSTANCE_TIMEOUT_MS

1800000

Idle timeout (30 min)

BROWSER_POOL_DEBUG

0

Set 1 for debug logging to debug.log

Changes take effect after restarting Claude Code.

๐Ÿ’ก Global limit (BROWSER_POOL_GLOBAL_MAX): each Claude Code window runs its own wrapper, and BROWSER_POOL_MAX_INSTANCES limits only that wrapper. To cap browser instances across ALL sessions (e.g. two windows must share a total of 12), set BROWSER_POOL_GLOBAL_MAX to the same value in every session's config. Slots are counted via a lock-protected counter file (~/.browser-pool/global-count) and are released when instances close or the wrapper exits gracefully.

๐Ÿ” How It Works

  1. Any browser tool call arrives โ†’ wrapper extracts _agent_id (defaults to "default")

  2. Looks up the per-agent assignment map โ†’ reuse existing browser if alive

  3. If none: check the global limit (BROWSER_POOL_GLOBAL_MAX) โ†’ find a free port โ†’ spawn local @playwright/mcp CLI (node cli.js --port X --isolated)

  4. Mark the instance busy during the call, so eviction never kills an in-flight call

  5. Pool full? Evict only idle instances (oldest first); if all busy, wait up to 60s

  6. Idle > 30 min โ†’ auto-killed; wrapper startup scans for orphaned instances and cleans them (PPID-guarded, never kills another live session's browsers)

  7. Global slot accounting: acquired before spawn, released when the instance closes or the wrapper exits gracefully

๐Ÿ“ฆ Dependencies

๐Ÿ“„ License

MIT

Available Tools

25 tools
browser_clickC

็‚นๅ‡ปๅ…ƒ็ด ๏ผˆelement = a11y ๅผ•็”จ๏ผŒref = CSS ้€‰ๆ‹ฉๅ™จ๏ผ‰

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesCSS ้€‰ๆ‹ฉๅ™จๅ…œๅบ•
elementYesๅฏ่ฎฟ้—ฎๆ€งๆ ‘ไธญ็š„ๅ…ƒ็ด  id
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚

TDQS

C2.7/5.0
Behavior1/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states the click action and parameter meanings, omitting side effects, navigation waits, or error conditions. This leaves the agent without critical safety information for a potentially mutating action.

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

Conciseness5/5

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

The description is a single, front-loaded sentence. Every word carries meaning, with no filler or redundancy.

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

Completeness2/5

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

For a simple click tool, the description is incomplete; it lacks behavioral context, usage alternatives, and return value expectations. Without annotations or output schema, the agent cannot anticipate side effects like navigation or form submission. However, the parameter clarification is somewhat helpful.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description restates the schema's parameter meanings ('element = a11y ๅผ•็”จ, ref = CSS ้€‰ๆ‹ฉๅ™จ') but adds no new semantics beyond what the schema already provides.

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

Purpose4/5

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

The description clearly states the tool clicks an element ('็‚นๅ‡ปๅ…ƒ็ด ') and distinguishes the two reference types (a11y reference vs CSS selector). This is a specific verb+resource combination that differentiates it from sibling interaction tools like browser_hover or browser_drag.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or scenarios where browser_type or browser_hover would be more appropriate.

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

browser_closeB

ๅ…ณ้—ญ่ฏฅ agent ็š„ๆต่งˆๅ™จ

ParametersJSON Schema
NameRequiredDescriptionDefault
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden. It only states the action 'close' without disclosing whether it is destructive, irreversible, or how it affects tabs, session state, or other agent activities.

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

Conciseness5/5

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

The description is a single short sentence that is direct and front-loaded. Every word earns its place, with no fluff or redundancy.

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

Completeness2/5

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

Although the tool is simple and the parameter is documented in the schema, the description lacks behavioral context such as side effects, return behavior, or relationship to sibling tools. It provides barely more than the tool name itself.

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

Parameters3/5

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

Schema description coverage is 100% for the sole parameter _agent_id, which already explains its purpose and default behavior. The description adds no additional parameter semantics beyond the schema.

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

Purpose5/5

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

The description clearly states the action ('ๅ…ณ้—ญ' = close) and the resource ('่ฏฅ agent ็š„ๆต่งˆๅ™จ' = this agent's browser), distinguishing it from navigation, inspection, and other sibling tools.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as browser_drop or pool_test. The description does not mention prerequisites, typical scenarios, or exclusions.

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

browser_console_messagesC

่Žทๅ–ๆŽงๅˆถๅฐๆถˆๆฏ

ParametersJSON Schema
NameRequiredDescriptionDefault
levelYesๆ—ฅๅฟ—็บงๅˆซ่ฟ‡ๆปค
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚

TDQS

C2.6/5.0
Behavior1/5

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

With no annotations, the description must disclose behavioral traits but says nothing about how the tool behaves. It does not mention whether messages are read from the current page, whether the console is cleared, what output format is expected, or any side effects. This is a critical transparency gap.

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

Conciseness4/5

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

The description is extremely concise, consisting of a single short phrase. It is front-loaded and to the point, but this brevity sacrifices essential detail, making it somewhat under-specified rather than efficiently concise.

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

Completeness1/5

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

For a tool with no annotations and no output schema, this description is grossly incomplete. It fails to explain return value structure, filtering semantics, or how the tool interacts with the browser state, leaving the agent without enough information to use it reliably.

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

Parameters3/5

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

The schema fully documents both parameters (level and _agent_id) with descriptions, so the tool description does not need to repeat them. However, it also does not add any contextual information about the level filter, such as acceptable values, allowed combinations, or the default behavior when omitted.

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 (่Žทๅ–/retrieve) and resource (ๆŽงๅˆถๅฐๆถˆๆฏ/console messages), which effectively differentiates it from sibling tools like browser_network_requests. However, it lacks specificity about the exact scope (e.g., current page vs. all tabs) and what types of console messages are included.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool instead of alternatives such as browser_network_requests or browser_snapshot. The description simply states what it does without any context about use cases, prerequisites, or exclusions.

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

browser_dragC

ๆŠŠๅ…ƒ็ด  A ๆ‹–ๅˆฐๅ…ƒ็ด  B

ParametersJSON Schema
NameRequiredDescriptionDefault
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚
end_selectorYes็ปˆ็‚น CSS ้€‰ๆ‹ฉๅ™จ
start_selectorYes่ตท็‚น CSS ้€‰ๆ‹ฉๅ™จ

TDQS

C2.6/5.0
Behavior1/5

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

No annotations are provided, so the description must disclose behavioral traits. It does not state whether the tool waits for the drop, simulates drag events, works with iframes or shadow DOM, or what happens on failure. This is a serious gap for a complex browser interaction.

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

Conciseness3/5

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

The description is a single short sentence with no redundancy, but it is under-specified rather than concisely rich. While it is not verbose, the extreme brevity leaves out essential information, making it acceptable but not exemplary.

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

Completeness2/5

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

With no annotations and no output schema, the description is responsible for explaining the tool's complete behavior. It fails to mention return values, side effects, waiting behavior, or error cases. For a moderate-complexity tool, this is inadequate.

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 fully describes start_selector and end_selector, including _agent_id. The description's 'element A' and 'element B' merely restates the schema's start/end relationship without adding new semantic value, so the baseline of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action (drag) and the targets (element A to element B). It distinguishes itself from siblings like browser_drop through the verb 'drag', but it does not elaborate on whether this is a standard HTML5 drag-and-drop or a mouse event sequence.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives such as browser_click or browser_drop. There is no mention of prerequisites, supported element types, or scenarios where drag is appropriate, leaving the agent without usage context.

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

browser_dropB

ๆ”พไธ‹่ขซๆ‹–ๆ‹ฝ็š„ๅ…ƒ็ด 

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS ้€‰ๆ‹ฉๅ™จ
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It names the action but does not describe side effects, what the 'selector' targets (drop point vs. element), whether DOM changes occur, or what happens on completion. This is too opaque for a browser automation 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 concise sentence that is front-loaded with the action and resource. No filler or redundant content.

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 no annotations and no output schema, the description is under-specified. The required 'selector' is ambiguousโ€”does it identify the element to drop or the drop target? There is no mention of pairing with browser_drag or post-condition behavior, making it incomplete for reliable invocation.

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

Parameters3/5

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

The schema covers 100% of parameters with descriptions for 'selector' and '_agent_id'. The tool description itself adds no parameter-level meaning beyond the schema, so the baseline of 3 is appropriate.

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

Purpose4/5

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

The description 'ๆ”พไธ‹่ขซๆ‹–ๆ‹ฝ็š„ๅ…ƒ็ด ' clearly states the action ('drop') and the resource ('the dragged element'), and it contrasts with sibling tool browser_drag. However, it lacks explicit scope or context about the drop target, so it stops short of a fully specified purpose.

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

Usage Guidelines3/5

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

The use case is implied: '่ขซๆ‹–ๆ‹ฝ็š„ๅ…ƒ็ด ' (the dragged element) presupposes a prior drag operation, likely with browser_drag. However, there is no explicit guidance on when to use this tool vs. alternatives, nor any exclusions or prerequisites.

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

browser_evaluateC

ๅœจ้กต้ขไธญๆ‰ง่กŒ JavaScript๏ผˆๅ‡ฝๆ•ฐๅญ—็ฌฆไธฒ๏ผ‰

ParametersJSON Schema
NameRequiredDescriptionDefault
functionYes่ฆๆ‰ง่กŒ็š„ JS ๅ‡ฝๆ•ฐ/่กจ่พพๅผ
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚

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 bears full responsibility for disclosing safety and side effects. It fails to mention that executing JavaScript can modify the page, trigger network requests, cause navigation, or otherwise disrupt the browser state. The _agent_id isolation mechanism is also not mentioned in the description, leaving agents unaware of potential cross-agent contamination.

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

Conciseness4/5

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

The description is a single, concise sentence containing no wasted words. It is appropriately sized for a tool with a straightforward action, though the brevity comes at the cost of explanatory depth. Structure is fine; it's just minimal.

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

Completeness2/5

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

With only two parameters, no output schema, and no annotations, the description must compensate by explaining return values, side effects, and the impact of _agent_id. It does none of this. For a JavaScript execution tool that can arbitrarily affect the page, the lack of behavioral context makes it incomplete 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?

The schema covers both parameters with descriptions (100% coverage), including the function string and _agent_id. The description adds no extra meaning beyond what the schema already provides; it merely repeats 'ๅ‡ฝๆ•ฐๅญ—็ฌฆไธฒ' from the function parameter. With full schema coverage, the baseline of 3 applies, and no additional semantic enrichment is present.

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

Purpose4/5

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

The description uses the verb 'ๆ‰ง่กŒ' (execute) with a clear resource 'JavaScript๏ผˆๅ‡ฝๆ•ฐๅญ—็ฌฆไธฒ๏ผ‰' in the page, which unambiguously states the tool's function. It distinguishes itself from sibling tools like browser_navigate or browser_click, but does not explicitly name alternatives or contrast with them, so it stops short of a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as browser_click or browser_snapshot. It simply states what it does without any context for selection, making it a bare functionality disclosure with no implicit or explicit usage direction.

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

browser_file_uploadD

ไธŠไผ ๆ–‡ไปถ

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYes่ฆไธŠไผ ็š„ๆ–‡ไปถ่ทฏๅพ„
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚

TDQS

D1.7/5.0
Behavior1/5

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

No annotations are present, and the description offers no behavioral details. It does not disclose whether the upload is synchronous, whether it waits for completion, supports multiple files (though the schema implies an array), or any side effects on the browser state.

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

Conciseness2/5

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

The description is a single short phrase, but it is under-specified rather than concisely informative. It fails to convey anything beyond the tool's name, making the brevity a deficiency rather than a quality.

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

Completeness1/5

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

With no output schema and no annotations, the description must carry the full burden of explaining the tool's behavior. It does not mention return values, error conditions, or the role of the '_agent_id' isolation key, leaving the agent without enough context to use the tool reliably.

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

Parameters3/5

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

Schema description coverage is 100%, with both 'paths' and '_agent_id' having descriptive text. The tool description adds no value beyond the schema, so the baseline score of 3 applies.

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

Purpose2/5

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

The description 'ไธŠไผ ๆ–‡ไปถ' translates to 'upload file', which is a direct restatement of the tool name 'browser_file_upload'. It provides no differentiation from other browser actions like browser_drop or browser_navigate, and lacks any detail about the browser context.

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

Usage Guidelines1/5

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

The description gives no guidance on when to use this tool versus alternatives such as browser_drop. There is no mention of prerequisites like an active file input, page state, or how it fits into a browser automation flow.

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

browser_get_urlC

่Žทๅ–ๅฝ“ๅ‰้กต้ข URL

ParametersJSON Schema
NameRequiredDescriptionDefault
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚

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 responsibility for behavioral disclosure. It only states the primary action and does not mention what happens if no page is open, whether the operation has side effects, or what the return format is. This leaves important behavioral aspects undisclosed.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no unnecessary words. For a simple getter tool, this level of conciseness is appropriate and efficient. It earns full credit for clarity without being verbose.

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

Completeness3/5

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

Given the tool's simplicity and the rich schema description for the only parameter, the description is somewhat adequate. However, since there is no output schema, the description could have mentioned return values or edge-case behavior (e.g., empty string if no page). This missing context prevents a higher score.

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

Parameters3/5

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

The input schema covers 100% of the parameters, with the single _agent_id parameter having a clear description about isolation behavior. The tool description adds no additional parameter details, but per the baseline for high schema coverage, a score of 3 is appropriate.

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

Purpose4/5

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

The description '่Žทๅ–ๅฝ“ๅ‰้กต้ข URL' clearly states the specific action (get) and resource (current page URL). It is unambiguous and effectively communicates the tool's purpose, though it does not explicitly distinguish it from sibling tools. Since the tool name itself is already explicit, this description is sufficient.

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. There is no mention of edge cases, prerequisites (like having a page loaded), or exclusions. The usage context is only implied by the tool's obvious purpose.

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

browser_handle_dialogC

ๅค„็† alert/confirm ๅผน็ช—

ParametersJSON Schema
NameRequiredDescriptionDefault
acceptYesๆŽฅๅ—ๆˆ–ๆ‹’็ป
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚
promptTextYesprompt ๅผน็ช—็š„่พ“ๅ…ฅๆ–‡ๆœฌ

TDQS

C2.4/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure, but it offers none. It does not explain that 'accept' determines acceptance/dismissal, that promptText supplies input to prompt dialogs, or that a dialog must be open. The single generic verb 'handle' reveals nothing about side effects or requirements.

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

Conciseness3/5

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

The description is a single short phrase, which is certainly concise and front-loaded. However, its brevity borders on under-specification rather than efficiency. The phrase contains no waste but also lacks substance needed for a standalone understanding.

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

Completeness1/5

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

The tool has 3 parameters, no annotations, and no output schema. The description is minimal and fails to convey essential context such as what happens when a dialog is handled, whether it dismisses the dialog, or what the return behavior is. It is inadequate for an agent to invoke correctly without additional assumptions.

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 each parameter having a description (accept: accept or reject; promptText: input text for prompt dialog; _agent_id: isolation key). The tool description adds no parameter meaning beyond schema, so the baseline of 3 is appropriate.

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

Purpose4/5

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

The description 'ๅค„็† alert/confirm ๅผน็ช—' uses a specific verb (handle) and resource (alert/confirm dialogs), clearly distinguishing it from sibling browser tools like click, type, and navigate. While 'handle' is somewhat generic, the resource is unambiguous and it is the only dialog-handling 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. It does not mention that it should be invoked when a dialog is present, nor does it specify any prerequisites or exclusions. The description is purely a purpose statement with no usage context.

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

browser_hoverC

ๆ‚ฌๅœๅœจๅ…ƒ็ด ไธŠ

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesCSS ้€‰ๆ‹ฉๅ™จ
elementYesๅ…ƒ็ด 
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only states 'hover' without detailing effects, whether it waits for actionability, failure behavior, or any side effects. This is insufficient for a tool with no prior context.

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

Conciseness3/5

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

The description is extremely short and free of fluff, which is efficient, but it does not provide any structured information or elaboration. It is concise to the point of being sparse, rather than optimally packaged.

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 simple action but the presence of many sibling tools and no output schema, the description is too minimal to be complete. It lacks guidance on usage context, behavioral expectations, and how it differs from similar actions, making it inadequate for fully informed tool selection.

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

Parameters3/5

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

The schema provides descriptions for all three parameters (ref, element, _agent_id), including a detailed explanation for _agent_id. The tool description adds no extra meaning beyond this, so a baseline score of 3 is appropriate given high schema coverage.

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

Purpose4/5

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

The description 'ๆ‚ฌๅœๅœจๅ…ƒ็ด ไธŠ' clearly states the action (hover) and the target (element), making the tool's purpose immediately understandable. It distinguishes from siblings like browser_click by the specific verb, though it lacks additional scope or context.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as browser_click or browser_drag. There is no mention of prerequisites, typical scenarios, or exclusions, leaving the agent without decision-making support.

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

browser_navigateC

ๅฏผ่ˆชๅˆฐ URL

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes็›ฎๆ ‡ URL
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚

TDQS

C2.9/5.0
Behavior2/5

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

ๆ— ๆณจ้‡Š๏ผŒๆ่ฟฐไป…่ฏดๆ˜Ž'ๅฏผ่ˆชๅˆฐ URL'๏ผŒๆœชๆŠซ้œฒไปปไฝ•ๅ‰ฏไฝœ็”จใ€ๆ˜ฏๅฆ้œ€่ฆ็ญ‰ๅพ…้กต้ขๅŠ ่ฝฝใ€ๆ˜ฏๅฆๅฝฑๅ“ๅฝ“ๅ‰ๆต่งˆๅ™จ็Šถๆ€็ญ‰ใ€‚

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?

ๅ•ไธ€็Ÿญๅฅ๏ผŒๆ— ๅ†—ไฝ™๏ผŒไฟกๆฏๅฏ†ๅบฆ้ซ˜ไฝ†่ฟ‡ไบŽ็ฎ€ๆดใ€‚

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?

ๅทฅๅ…ท็ฎ€ๅ•ไฝ†็ผบๅฐ‘ๅฏน่ฟ”ๅ›žๅ€ผใ€ไฝฟ็”จๅœบๆ™ฏใ€ไธŽๅ…„ๅผŸๅทฅๅ…ทๅ…ณ็ณป็ญ‰่ฏดๆ˜Ž๏ผ›ๆ— ่พ“ๅ‡บ schema๏ผŒ้œ€ๆ่ฟฐ่กฅๅ……ใ€‚

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

Parameters3/5

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

schema ่ฆ†็›–็އ 100%๏ผŒไธคไธชๅ‚ๆ•ฐ้ƒฝๆœ‰ๆ่ฟฐ๏ผ›ๆ่ฟฐๆœฌ่บซๆœช้ขๅค–่งฃ้‡Šๅ‚ๆ•ฐไฟกๆฏใ€‚

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?

ๆ่ฟฐไธบ 'ๅฏผ่ˆชๅˆฐ URL'๏ผŒๆ˜Ž็กฎไบ†ๅŠจ่ฏๅ’Œ่ต„ๆบ๏ผŒไฝ†ไธŽๅ…„ๅผŸๅทฅๅ…ท๏ผˆๅฆ‚ navigate_back/forward๏ผ‰ๆฒกๆœ‰ๆ˜Ž็กฎๅŒบๅˆ†๏ผŒๅชๆ˜ฏ้€š่ฟ‡ URL ๆš—็คบ็”จไบŽไปปๆ„ๅœฐๅ€ใ€‚

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?

ๆฒกๆœ‰ไปปไฝ•ๅ…ณไบŽไฝ•ๆ—ถไฝฟ็”จๆญคๅทฅๅ…ทใ€ไฝ•ๆ—ถไฝฟ็”จๆ›ฟไปฃๅทฅๅ…ท็š„่ฏดๆ˜Ž๏ผ›ๆฒกๆœ‰ๆๅŠๅƒ browser_navigate_back ็ญ‰ๅ…„ๅผŸๅทฅๅ…ทใ€‚

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

browser_navigate_backD

ๅŽ้€€

ParametersJSON Schema
NameRequiredDescriptionDefault
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚

TDQS

D1.6/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. 'ๅŽ้€€' gives no information about what happens when invoked, such as navigating to the previous page, whether it requires a loaded page, or any side effects.

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

Conciseness1/5

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

The description is under-specified: a single word 'ๅŽ้€€' is not an appropriately sized description. It lacks the minimal phrase 'navigate back in browser history' that would make it useful. This is not concise; it is incomplete.

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

Completeness1/5

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

Given the tool's simplicity, a minimal description like 'Navigate to the previous page in browser history' would suffice. The actual description provides no context about the action, making it inadequate even for a straightforward navigation tool.

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

Parameters3/5

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

The single parameter _agent_id is fully documented in the input schema with a clear Chinese description about isolation keys. Since schema coverage is 100%, the description adds no additional meaning but the baseline of 3 is appropriate because the schema already handles the semantics.

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

Purpose2/5

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

The description 'ๅŽ้€€' ('go back') essentially restates the tool name 'browser_navigate_back'. It does not specify a verb+resource beyond what the name already implies, and it fails to distinguish itself from siblings like browser_navigate_forward.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool versus alternatives such as browser_navigate_forward or browser_navigate. No context is provided about browsing history or applicable scenarios.

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

browser_navigate_forwardD

ๅ‰่ฟ›

ParametersJSON Schema
NameRequiredDescriptionDefault
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚

TDQS

D1.4/5.0
Behavior1/5

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

With no annotations, the description carries the full burden, but it reveals nothing about behavior: it does not mention that it moves forward in browser history, what happens when there is no forward history, or any side effects. The description is practically empty.

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

Conciseness2/5

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

The description is extremely shortโ€”just one wordโ€”which may seem concise, but it is under-specified rather than appropriately concise. It fails to convey any useful meaning beyond the tool name.

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

Completeness1/5

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

Despite the simple tool and one well-documented parameter, the description is insufficient. An agent cannot reliably determine that this tool navigates forward in history, what prerequisites exist, or how it behaves when no forward entry is available.

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 adds no parameter information, but the input schema fully covers the only parameter (_agent_id) with a clear explanation. According to rubric, high schema coverage yields a baseline of 3, and the description does not detract.

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

Purpose1/5

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

The description "ๅ‰่ฟ›" simply means "forward" and is essentially a translation of the tool name. It does not state the verb/resource (e.g., navigate browser history forward) nor does it distinguish from siblings like browser_navigate_back or browser_navigate.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool versus alternatives such as browser_navigate_back or browser_navigate. No context or exclusions are provided.

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

browser_network_requestsC

่Žทๅ–็ฝ‘็ปœ่ฏทๆฑ‚ๆดปๅŠจ

ParametersJSON Schema
NameRequiredDescriptionDefault
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚

TDQS

C2/5.0
Behavior1/5

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

With no annotations, the description must disclose behavioral traits, but it does not. It fails to state whether network requests are returned in a list, cleared after retrieval, or how the isolation key (via _agent_id) affects behavior. No side effects or return structure are mentioned.

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

Conciseness2/5

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

The description is extremely short, but this is under-specification rather than effective conciseness. It omits essential details, making it insufficiently informative even though it is brief.

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

Completeness2/5

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

The tool has no output schema, and the description does not explain what the tool returns or how network request activity is presented. For a simple tool, it still leaves major gaps in agent understanding.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter _agent_id, which is fully documented in the schema. The description itself adds no additional parameter context, so the baseline of 3 applies.

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

Purpose3/5

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

The description '่Žทๅ–็ฝ‘็ปœ่ฏทๆฑ‚ๆดปๅŠจ' (get network request activity) provides a verb and resource, clearly indicating the tool fetches network request-related data. However, it lacks specificity about scope (e.g., all requests, filtered) and does not differentiate from sibling tools like browser_console_messages or browser_snapshot.

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

Usage Guidelines1/5

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

No guidance is given on when to use this tool versus alternatives. The description does not mention prerequisites, context, or exclusions, leaving the agent without direction on selecting it among the many browser inspection tools.

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

browser_press_keyC

ๆŒ‰ไธ‹้”ฎ็›˜ๆŒ‰้”ฎ

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes้”ฎๅ๏ผŒๅฆ‚ Enter
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚

TDQS

C2.7/5.0
Behavior1/5

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

No annotations are present, so the description carries the full burden of disclosing behavior. It only states 'press keyboard key' with no information about focus requirements, key combinations, side effects, or what happens after the key is pressed.

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

Conciseness5/5

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

The description is a single, concise phrase with no redundancy or filler. It is appropriately sized for a simple tool, front-loading the core action.

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

Completeness2/5

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

With no annotations, no output schema, and only 2 parameters, the description is incomplete. It lacks behavioral context, usage conditions, and any explanation of the effect of pressing a key, which an agent would need to invoke the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, with both 'key' and '_agent_id' described in the input schema. The description adds no parameter-level meaning beyond the schema, so the baseline of 3 applies.

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

Purpose4/5

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

The description 'ๆŒ‰ไธ‹้”ฎ็›˜ๆŒ‰้”ฎ' (press keyboard key) clearly states the tool's action with a specific verb and resource. It is distinct from mouse-based siblings like browser_click, though it does not explicitly differentiate from browser_type (which types text).

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 usage guidance is provided. The description does not indicate when to use this tool versus alternatives like browser_type or browser_click, nor any prerequisites or conditions.

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

browser_resizeC

่ฐƒๆ•ดๆต่งˆๅ™จ็ช—ๅฃๅคงๅฐ

ParametersJSON Schema
NameRequiredDescriptionDefault
widthYesๅฎฝๅบฆ
heightYes้ซ˜ๅบฆ
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only states 'resize browser window size' with no information about side effects (e.g., affecting subsequent screenshots or responsive layout), prerequisites (e.g., browser must be open), or error handling. The description adds no behavioral context beyond the operation itself.

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

Conciseness5/5

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

The description is a single, concise sentence with no redundant or unnecessary information. It is appropriately sized for a straightforward resize operation, front-loaded with the essential meaning.

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 no annotations and no output schema, the description should provide more context about how resizing affects the browser session, when to use it, and any limitations. It currently only states the action, leaving the agent without enough information to fully understand the tool's role in the browser workflow. The schema descriptions help for parameters but not for the tool's broader 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 coverage is 100%, with each parameter having a Chinese description (width, height, and a detailed explanation of _agent_id). The description itself does not add any additional meaning beyond what the schema already provides, so it meets the baseline but does not exceed it.

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 (resize) and resource (browser window size). It distinguishes from sibling browser tools like navigate, click, and type, which perform different actions. However, it is essentially a restatement of the tool name with minimal additional detail, so it lacks the specificity of higher-scoring descriptions.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. The description does not mention any context such as resizing before taking a screenshot or how it interacts with other browser tools. No exclusions or alternative tool recommendations are provided.

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

browser_screenshotC

ๆˆชๅ›พ๏ผˆๅˆซๅ๏ผ‰

ParametersJSON Schema
NameRequiredDescriptionDefault
fullPageYesๆ˜ฏๅฆๆ•ด้กตๆˆชๅ›พ๏ผˆ้ป˜่ฎค false๏ผ‰
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚

TDQS

C2.1/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of disclosure. It only says 'alias' and gives no information about what the tool does beyond the name, any side effects, return values, or limitations. This is essentially no behavioral transparency.

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

Conciseness2/5

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

The description is extremely short, which could be considered concise, but it is under-specified rather than efficient. It leaves out essential information about the tool's purpose and usage, so it does not earn its place as a useful description.

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

Completeness1/5

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

Despite the tool's relative simplicity, the description is inadequate. It fails to clarify the alias relationship, specify return behavior, or provide any context about when to use it relative to the many sibling browser tools. The name and schema alone are not enough for reliable invocation.

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

Parameters3/5

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

Schema description coverage is 100%, and both parameters (fullPage and _agent_id) have meaningful descriptions in the schema. The description adds no additional parameter semantics, but per the baseline for high schema coverage, a score of 3 is appropriate.

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

Purpose3/5

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

The description 'ๆˆชๅ›พ๏ผˆๅˆซๅ๏ผ‰' means 'Screenshot (alias)', which identifies the tool's basic function (taking a screenshot) but adds only an ambiguous alias qualifier. It does not distinguish this tool from sibling tools like browser_take_screenshot or browser_snapshot, and the alias target is unnamed, leaving the purpose somewhat vague.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. The 'alias' label hints that it may be an alternative name for another screenshot tool, but it never explicitly states which tool it aliases or when to prefer it, so the agent receives no actionable usage direction.

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

browser_select_optionC

ๅœจไธ‹ๆ‹‰ๆก†ไธญ้€‰ๆ‹ฉ้€‰้กน

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesCSS ้€‰ๆ‹ฉๅ™จ
valuesYes่ฆ้€‰ไธญ็š„ๅ€ผ
elementYesๅ…ƒ็ด 
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚

TDQS

C2.6/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'select an option in a dropdown,' which conveys the purpose but reveals nothing about side effects, return values, error handling, or whether the selection triggers events. There is zero additional behavioral context beyond the tool's name.

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

Conciseness4/5

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

The description is a single, straightforward sentence with no redundant words. It is front-loaded with the core action and resource. However, it is under-specified in content, which slightly detracts from its value, but from a pure conciseness standpoint, it earns a high score for avoiding fluff.

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

Completeness1/5

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

This tool has no output schema and no annotations, and the description is extremely sparse. It fails to explain how to identify which dropdown to use, how the 'values' array works, whether multi-select is supported, or what happens after selection. Given the tool's complexity (4 parameters, browser-side effects), the description is grossly inadequate for an agent to use it correctly without additional inference.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (element, ref, values, _agent_id) are documented in the input schema. The description adds no parameter-specific meaning, but per the rubric, high schema coverage warrants a baseline of 3. The description does not compensate or enhance parameter understanding beyond the schema.

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

Purpose4/5

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

The description 'ๅœจไธ‹ๆ‹‰ๆก†ไธญ้€‰ๆ‹ฉ้€‰้กน' clearly states the action (select) and the target resource (dropdown box). It is specific enough to understand the tool's basic purpose and distinguishes itself from siblings like browser_click or browser_type by focusing on dropdown selection. However, it doesn't explicitly contrast with sibling tools or mention alternative approaches, 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 doesn't mention conditions for use, prerequisites, or situations where this tool is preferred over other browser interaction tools. There is no explicit or implicit usage guidance beyond the bare action itself.

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

browser_snapshotB

่Žทๅ–้กต้ขๅฏ่ฎฟ้—ฎๆ€งๅฟซ็…ง๏ผˆ็ป“ๆž„ๅŒ–๏ผŒ้€‚ๅˆ LLM ้˜…่ฏป๏ผ‰

ParametersJSON Schema
NameRequiredDescriptionDefault
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the snapshot is structured and LLM-friendly, without covering potential side effects, permissions, or the exact return format.

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

Conciseness5/5

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

The description is a single, concise sentence that immediately conveys the tool's purpose and output nature. It is front-loaded and contains no filler.

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 no annotations and no output schema, the description is too minimal. It does not explain what 'accessibility snapshot' precisely includes, when it should be used, or any behavioral details, leaving the agent under-informed.

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

Parameters3/5

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

The schema already provides 100% coverage for the single optional _agent_id parameter, so the baseline is 3. The description adds no additional semantic detail beyond what the schema documents.

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

Purpose5/5

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

The description clearly states the tool retrieves a page accessibility snapshot and emphasizes it is structured and suitable for LLM reading. This distinguishes it from sibling tools like screenshots or console messages.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives like browser_take_screenshot or browser_console_messages. It lacks any when-to-use or exclusion criteria.

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

browser_tabsC

็ฎก็†ๆ ‡็ญพ้กต๏ผˆaction: list|new|close|select๏ผ‰

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYesๆ ‡็ญพ้กต็ดขๅผ•
actionYeslist|new|close|select
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚

TDQS

C2.8/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden. It only repeats the action enum from the schema and does not disclose side effects (e.g., what closing a tab does, whether selecting is required before interacting, or how _agent_id isolates browser sessions).

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

Conciseness3/5

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

The description is short and front-loaded, but it is under-specified rather than efficiently complete. It is concise but sacrifices essential behavioral context for a multi-action tool.

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

Completeness2/5

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

With no annotations, no output schema, and three parameters involving multiple action modes and a session isolation key, the description is insufficient. It does not explain return values, per-action index requirements, or the effect of _agent_id.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters action, index, and _agent_id are already documented in the schema. The description adds no additional meaning; it merely restates the action values already present in the schema.

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

Purpose4/5

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

The description clearly identifies the resource (tabs) and the operation (manage) while enumerating the four actions list/new/close/select. This distinguishes it from sibling tools like browser_navigate or browser_click, though the verb 'manage' is somewhat generic.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives such as browser_navigate, browser_close, or browser_get_url. The action list implies basic usage, but there is no explicit context, prerequisites, or exclusions.

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

browser_take_screenshotC

ๆˆชๅ›พ๏ผˆ้ป˜่ฎค fullPage=false๏ผ‰

ParametersJSON Schema
NameRequiredDescriptionDefault
fullPageYesๆ˜ฏๅฆๆ•ด้กตๆˆชๅ›พ๏ผˆ้ป˜่ฎค false๏ผ‰
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚

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 weight for disclosing behaviors. It only mentions the default of fullPage, which is already in the schema. It does not disclose output format, whether it saves a file, return value, or any side effects, leaving significant behavioral ambiguity.

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

Conciseness4/5

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

The description is extremely concise with zero wasted words. It is front-loaded and appropriately brief for a simple tool, though it repeats schema information rather than adding new value.

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

Completeness2/5

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

Given no output schema and no annotations, the description should explain the tool's return value and context of use. It only states the default fullPage setting, leaving critical information missing for a screenshot tool that likely returns an image or path. It also fails to clarify distinction from sibling 'browser_screenshot'.

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 full parameter details. The description's mention of '้ป˜่ฎค fullPage=false' just repeats the schema's own description, adding no additional meaning. Baseline 3 applies.

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

Purpose4/5

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

The description clearly states the tool performs a screenshot ('ๆˆชๅ›พ') and notes the default fullPage behavior. However, it does not differentiate from the sibling tool 'browser_screenshot', so it lacks explicit 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 like 'browser_screenshot' or other browser tools. There is no mention of context, prerequisites, or exclusions.

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

browser_typeC

ๅ‘ๅ…ƒ็ด ่พ“ๅ…ฅๆ–‡ๆœฌ

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesCSS ้€‰ๆ‹ฉๅ™จ
textYes่ฆ่พ“ๅ…ฅ็š„ๆ–‡ๆœฌ
submitYes่พ“ๅ…ฅๅŽๆŒ‰ๅ›ž่ฝฆ
elementYesๅ…ƒ็ด 
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the behavioral disclosure burden. It only says 'input text' and does not mention whether the field is cleared first, whether it focuses the element, how the submit parameter behaves, or any other side effects.

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

Conciseness4/5

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

The description is a single short sentence with no filler or repetition. It is efficient, though it lacks structured detail beyond the bare action statement.

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 and no output schema or annotations, the one-line description is insufficient. It does not clarify behavior, return values, or how the two element-related parameters are intended to be used, leaving significant gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-level meaning and notably leaves the relationship between 'element' and 'ref' unexplained, but the schema already documents each parameter's basic purpose.

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 ('่พ“ๅ…ฅๆ–‡ๆœฌ' / input text) and the target ('ๅ…ƒ็ด ' / element), giving a specific verb+resource pair. However, it does not distinguish itself from sibling tools like browser_press_key or browser_click, so it misses some differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as browser_press_key, browser_file_upload, or browser_click. There are no exclusions or context clues about the preferred use case.

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

browser_wait_forD

็ญ‰ๅพ…ๆกไปถ

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes็ญ‰ๅพ…ๆ–‡ๆœฌๅ‡บ็Žฐ
timeYes็ญ‰ๅพ…ๆฏซ็ง’ๆ•ฐ
textGoneYes็ญ‰ๅพ…ๆ–‡ๆœฌๆถˆๅคฑ
_agent_idNo้š”็ฆป้”ฎ๏ผšๅŒไธ€ agent ็š„ๆ‰€ๆœ‰่ฐƒ็”จไผ ็›ธๅŒ็š„ๅ€ผไปฅไฟๆŒๅ…ถๆต่งˆๅ™จ๏ผ›ไธๅŒ agent ไผ ไธๅŒ็š„ๅ€ผไปฅ่Žทๅ–็‹ฌ็ซ‹ๆต่งˆๅ™จใ€‚็œ็•ฅๅˆ™ๅ…ฑไบซ้ป˜่ฎคๆต่งˆๅ™จใ€‚

TDQS

D1.4/5.0
Behavior1/5

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

With no annotations provided, the description carries full burden for behavior disclosure. It offers no information about waiting semantics, timeouts, polling behavior, or what happens when conditions are not met. The schema parameter descriptions hint at 'wait for text to appear/disappear' but the description itself adds nothing.

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

Conciseness2/5

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

The description is under-specified rather than concise. '็ญ‰ๅพ…ๆกไปถ' is two characters that convey no actionable information, and the structure is a bare phrase rather than a clear explanatory sentence.

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

Completeness1/5

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

The tool has 4 parameters, no output schema, and no annotations. The description fails to explain return values, error handling, or the waiting mechanism. It is inadequate for an agent to select and invoke this tool correctly, especially given sibling tools that require similar context.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description itself provides no parameter information, but the schema descriptions for 'text', 'textGone', and 'time' are present. However, the relationship between these parameters (e.g., time as a timeout vs. fixed wait) is not clarified by the description.

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

Purpose1/5

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

The description '็ญ‰ๅพ…ๆกไปถ' is a vague noun phrase meaning 'wait condition' and does not state the tool's action or resource. It is essentially a restatement of the tool name 'browser_wait_for', providing no distinction from sibling browser tools.

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

Usage Guidelines1/5

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

No usage guidance is provided. The description does not indicate when to use this tool versus alternatives like browser_click or browser_navigate, nor does it mention prerequisites or exclusions.

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

pool_statusA

ๆŸฅ็œ‹ๆต่งˆๅ™จๆฑ ็Šถๆ€๏ผˆๆŒ‰ agent๏ผ‰

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

The description indicates a read-only operation via the verb 'view', but beyond that, it provides no additional behavioral contextโ€”no mention of output contents, side effects, or limitations. Since there are no annotations, the description carries the full burden but only delivers the bare minimum.

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

Conciseness5/5

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

The description is a single short phrase that is entirely front-loaded and contains no filler words, scoring high on conciseness.

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

Completeness3/5

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

For a simple status tool with no parameters and no output schema, the description is minimal but adequate for basic understanding; however, it doesn't specify what status information is returned or how it is presented, leaving some ambiguity.

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

Parameters4/5

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

The input schema has zero parameters, giving a baseline score of 4. The description adds context about 'by agent' which hints at the scope of the result, but since there are no parameters, there is nothing more to explain.

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

Purpose5/5

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

The description uses the specific verb 'ๆŸฅ็œ‹' (view) with clear resource 'ๆต่งˆๅ™จๆฑ ็Šถๆ€' (browser pool status) and scope 'ๆŒ‰ agent' (by agent), which clearly distinguishes it from the sibling pool_test 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 on when to use this tool versus alternatives; there is no mention of specific scenarios, prerequisites, or comparisons with pool_test or other browser tools.

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

pool_testD

ๆต‹่ฏ•ๅผ‚ๆญฅๅ“ๅบ”

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYes

TDQS

D1.8/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It merely says 'test async response' with no information about side effects, return value, errors, or whether it is safe. This is essentially no transparency.

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

Conciseness2/5

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

The description is extremely short and front-loaded, but it is under-specified rather than concise. It contains only a vague phrase with no structured information, so it does not earn its place as a useful specification.

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

Completeness1/5

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

Given this tool has one parameter, no output schema, no annotations, and sits among complex browser automation tools, the description is completely inadequate. It provides almost no contextual information about what the tool does, when to use it, or what to expect.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not mention or explain the 'message' parameter. Although the param is named intuitively, the tool description offers no guidance on what to pass or expected format, so it fails to compensate for the schema gap.

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

Purpose3/5

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

The description 'ๆต‹่ฏ•ๅผ‚ๆญฅๅ“ๅบ”' translates to 'test asynchronous response,' which names a verb and object but remains vague about what the tool actually does. It does not clearly distinguish itself from the sibling browser automation tools, though its purpose is not a tautology.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There is no context about typical scenarios, prerequisites, or exclusions, leaving the agent without useful selection criteria.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 25 tool updatesv1.1.0
    • First observedbrowser_click
    • First observedbrowser_close
    • First observedbrowser_console_messages
    • First observedbrowser_drag
    • First observedbrowser_drop
    • First observedbrowser_evaluate
    • First observedbrowser_file_upload
    • First observedbrowser_get_url
    • First observedbrowser_handle_dialog
    • First observedbrowser_hover
    • First observedbrowser_navigate
    • First observedbrowser_navigate_back
    • First observedbrowser_navigate_forward
    • First observedbrowser_network_requests
    • First observedbrowser_press_key
    • First observedbrowser_resize
    • First observedbrowser_screenshot
    • First observedbrowser_select_option
    • First observedbrowser_snapshot
    • First observedbrowser_tabs
    • First observedbrowser_take_screenshot
    • First observedbrowser_type
    • First observedbrowser_wait_for
    • First observedpool_status
    • First observedpool_test

TDQS

C2.5/5.0

Scored across 25 tools

Disambiguation3/5

Most tools have distinct purposes, but browser_take_screenshot and browser_screenshot are explicit aliases, causing ambiguity. Additionally, browser_drag and browser_drop could be confused as both relate to drag-and-drop operations.

Naming Consistency3/5

The majority of tools follow a browser_verb pattern (e.g., browser_navigate, browser_click), but there are exceptions like browser_snapshot, browser_console_messages, and browser_network_requests which use nouns. The pair browser_take_screenshot and browser_screenshot also breaks consistency.

Tool Count3/5

At 25 tools, the server is on the heavy side but still plausible for a comprehensive browser automation tool. However, the presence of a duplicate screenshot tool and a test tool (pool_test) suggests some redundancy.

Completeness4/5

The tool set covers a wide range of browser actions: navigation, interaction, screenshots, snapshots, tab management, dialog handling, file upload, and more. Minor gaps exist (e.g., no explicit cookie management or scrolling) but core workflows are well covered.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    C
    quality
    D
    maintenance
    A dynamic browser pool MCP server that enables multiple concurrent, isolated Playwright sessions for Claude Code and other MCP clients. It manages on-demand instances on dynamic ports to resolve session conflicts and includes automatic cleanup of idle browsers.
    20
    1
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server providing browser automation for AI agents with context-aware playbooks and skills for complex websites.
    7 npm
    176
    PolyForm Noncommercial 1.0.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for Meshbrow that gives AI agents full browser automation capabilities with stealth anti-detection, enabling natural language control of browser sessions, data extraction, and multi-browser fleets.
    MIT