Skip to main content
Glama
Sept-7-Qi

BrowserPilot MCP

by Sept-7-Qi

BrowserPilot MCP

BrowserPilot MCP 是一个通过本地 MCP 服务与原生消息主机连接 AI Agent 和 Chromium 浏览器的自动化工具。

它由浏览器扩展、用户级常驻 daemon、MCP stdio adapter 和 Chrome Native Messaging host 组成,可以让 Claude Desktop / Claude Code 等 MCP 客户端执行网页导航、点击、输入、截图、读取浏览器状态等自动化操作。

BrowserPilot MCP is a local browser automation bridge that connects Claude Code and other MCP clients to Chromium-based browsers through a browser extension and Native Messaging Host.

当前文档对应 BrowserPilot MCP 1.1.2

功能

  • 浏览器自动化:导航、点击、输入、截图、等待元素、执行页面脚本

  • MCP 集成:通过本地 MCP server 暴露浏览器控制工具

  • 原生消息桥接:使用 Chrome Native Messaging 连接浏览器扩展和本地服务

  • Chromium 支持:适用于 Chrome、Edge、Brave、Vivaldi 和 Chromium

  • 本地安装:支持 npm link / npm install -g . 和一键安装脚本

Related MCP server: Cloudflare Playwright MCP

推荐安装流程

1. 安装 CLI

可以从 npm/tarball 安装,也可以在源码目录本地安装:

# npm / tarball 示例
npm install -g browserpilot-mcp-1.1.2.tgz

# 本地源码目录示例
npm install -g .
# 或
npm link

npm install -g . / npm link 只暴露 browserpilot-mcp CLI 并安装运行依赖;不会自动修改 Native Host、LaunchAgent 或 Claude MCP 配置。

2. 一键自动安装

推荐入口:

browserpilot-mcp install --auto

该命令会安装并验证 BrowserPilot daemon 的 macOS 用户级 LaunchAgent,然后配置 Native Messaging host 和 Claude MCP。安装完成后,daemon 会通过 LaunchAgent 自动常驻,用户通常 不需要手动运行 browserpilot-mcp daemon start

安装后检查:

browserpilot-mcp daemon status --json
claude mcp list
  • browserpilot-mcp daemon status --json 用于确认本机 daemon 状态。

  • claude mcp list 用于确认 Claude Code 已看到 browserpilot-mcp MCP server。

daemon + adapter 架构

BrowserPilot MCP 1.1.2 使用 daemon + adapter 架构:

Claude Desktop / Claude Code
      ↓ stdio
MCP stdio adapter (`browserpilot-mcp start`)
      ↓ TCP client + token auth
BrowserPilot daemon (`127.0.0.1:18765`)
      ↑ TCP client + token auth
Native Messaging Host
      ↓ Chrome Native Messaging
Browser Extension
      ↓
Chromium tabs

关键点:

  • daemon 是唯一监听本地 TCP 的进程,地址为 127.0.0.1:18765

  • browserpilot-mcp start 是 Claude MCP stdio adapter,只通过 stdio 和 Claude 通信,并作为 TCP client 连接 daemon;它 不监听 18765

  • 多个 Claude / MCP 客户端实例可以共用同一个 daemon。

  • macOS 推荐通过 browserpilot-mcp install --auto 安装 LaunchAgent,让 daemon 用户级自动常驻。

Chrome 扩展安装

BrowserPilot 扩展需要安装到 Chrome / Chromium 系浏览器:

  1. 打开 chrome://extensions

  2. 打开右上角「开发者模式」。

  3. 点击「加载已解压的扩展程序」。

  4. 选择本地生成或 Release 下载的打包产物 dist/extension-unpacked/

dist/ 不提交到 git。需要本地产物时运行 ./package-extension.sh 生成,或从 GitHub Release 下载已发布产物。也可以安装打包生成的 CRX(如果本机 Chrome/Chromium 打包命令已生成 dist/browserpilot-mcp-extension.crx)。

Extension ID 与 .extension-id

BrowserPilot 支持固定 Extension ID:

  • .extension-id 是本地打包/安装流程生成的状态文件,不提交到 git。

  • 安装脚本会在本地优先读取 .extension-id;如果不存在,可通过本地打包或安装流程重新生成。

  • 固定 ID 由打包使用的 PEM 密钥控制;同一个 PEM 会生成同一个扩展 ID。

  • 如果更换或丢失 PEM,扩展 ID 可能变化,需要重新安装 Native Host allowed origins 和 MCP 配置。

新视觉行为(1.1.2)

BrowserPilot 1.1.2 取消了旧版页面高亮样式:

  • 不再给页面添加橙色页面边界高亮。

  • 改用 Chrome Tab Group 展示连接状态:

    • connected:绿色 Tab Group,标题为「BrowserPilot 已连接」。

    • connecting:蓝色 Tab Group,标题为「BrowserPilot 连接中」。

    • disconnected:取消 BrowserPilot 创建的分组。

这意味着连接状态主要体现在浏览器标签分组上,而不是网页内容区域的边框。

新 tab 生命周期(1.1.2)

BrowserPilot 1.1.2 对 tab 管理做了更安全的区分。

ensure_active_tab

推荐在需要可操作页面时使用 ensure_active_tab

  • 如果当前没有 active tab,会打开一个新 tab。

  • 如果浏览器未启动,会按需启动浏览器。

  • 不会关闭浏览器。

close_managed_tabs

推荐使用 close_managed_tabs 清理 BrowserPilot 自动创建/管理的 tab:

  • 只关闭 BrowserPilot 自己创建或管理的 tab。

  • 不关闭用户原本已经打开的 tab。

  • 不关闭 Chrome / Chromium 浏览器本身。

close_page

close_page 仍作为低层兼容工具存在,用于关闭指定 tab。日常清理 BrowserPilot 会话时,推荐优先使用 close_managed_tabs,避免误关用户原有标签页。

BrowserPilot 不提供关闭浏览器的能力。

常用命令

browserpilot-mcp install --auto
browserpilot-mcp daemon status --json
browserpilot-mcp daemon install --dry-run
browserpilot-mcp daemon uninstall --dry-run
browserpilot-mcp doctor --browser Chrome
npm run check:extension
npm run check:daemon-contract

说明:

  • browserpilot-mcp install --auto:推荐安装入口;安装 daemon LaunchAgent、Native Host 和 Claude MCP 配置。

  • browserpilot-mcp daemon status --json:以 JSON 查看 daemon 状态。

  • browserpilot-mcp daemon install --dry-run:只打印 LaunchAgent 安装计划,不写文件、不运行 launchctl。

  • browserpilot-mcp daemon uninstall --dry-run:只打印 LaunchAgent 卸载计划。

  • browserpilot-mcp doctor --browser Chrome:诊断 Chrome 相关安装状态。

  • npm run check:extension:检查扩展相关构建/约束。

  • npm run check:daemon-contract:检查 daemon contract。

验证和排错

安装后建议按顺序验证:

browserpilot-mcp daemon status --json
claude mcp list
browserpilot-mcp doctor --browser Chrome

然后在 chrome://extensions 中找到 BrowserPilot MCP 扩展并点击 reload / 刷新。

排查建议:

  • 确认版本为 1.1.2

  • browserpilot-mcp daemon status --json 应显示 daemon 可访问。

  • claude mcp list 应包含 browserpilot-mcp

  • browserpilot-mcp doctor --browser Chrome 可用于检查 Native Host、扩展 ID 和浏览器配置。

  • 如果扩展刚安装或 Native Host 配置刚变化,请 reload 扩展,必要时完全退出并重新打开 Chrome。

  • 如果 .extension-id 与浏览器显示的 Extension ID 不一致,请确认是否更换过 PEM 或重新打包过扩展。

安全说明

BrowserPilot MCP 的安全边界设计:

  • daemon 只监听 loopback:127.0.0.1:18765,不暴露公网监听端口。

  • daemon client 使用 token auth,adapter 和 native host 都需要通过本机 token 连接 daemon。

  • LaunchAgent 是 macOS 用户级配置,不是系统级 daemon。

  • 不提供关闭浏览器的工具,避免 MCP 工具关闭用户浏览器。

  • URL 输入只允许 http:https:about:blank

  • close_managed_tabs 只清理 BrowserPilot 管理的 tab,不清理用户原有 tab。

清理 / 卸载

如果版本已实现 daemon 卸载命令,可以运行:

browserpilot-mcp daemon uninstall

查看卸载计划但不执行:

browserpilot-mcp daemon uninstall --dry-run

完整清理 Native Messaging manifest 等安装产物:

./uninstall.sh

卸载后也可以在浏览器扩展管理页手动移除 BrowserPilot MCP 扩展。

MCP Tools

常用 MCP 工具包括:

Tool

Description

health_check

返回 daemon、native host、扩展等结构化诊断信息

ensure_active_tab

确保存在可操作 active tab;必要时打开 tab / 启动浏览器

close_managed_tabs

只关闭 BrowserPilot 创建/管理的 tab

list_pages

List all open browser tabs

navigate_page

Navigate to a URL in a tab

take_screenshot

Capture a screenshot of the current page

click

Click an element by selector or coordinates

type_text

Type text into an input field

fill_form

Fill multiple form fields at once

press_key

Press a keyboard key (Enter, Escape, arrows, etc.)

hover

Hover over an element

drag

Drag from one coordinate to another

wait_for

Wait for a visible element matching a CSS selector

evaluate_script

Execute JavaScript on the page

get_console_message

Get a specific console message

list_console_messages

List console messages

get_network_request

Get a network request

list_network_requests

List network requests

handle_dialog

Accept or dismiss JavaScript dialogs

resize_page

Resize the browser window

new_page

Open a new tab

close_page

Low-level compatibility tool for closing a specified tab

Development checks

开发或发布前常用检查:

npm run check:extension
npm run check:daemon-contract

扩展改动后,在 chrome://extensions 中点击 BrowserPilot MCP 的 reload / 刷新按钮,让 service worker 和扩展资源重新加载。

License

MIT

Available Tools

22 tools
clickC

Click an element on the page

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoOptional page/tab ID to use
selectorNoCSS selector of the element to click
coordinatesNoOptional x/y coordinates to click

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden. It merely restates the action and discloses nothing about side effects, return values, waits, or failure behavior.

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?

A single, front-loaded sentence with no wasted words. However, it is arguably under-specified, which slightly reduces the score from a perfect 5.

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 three optional parameters and no output schema, yet the description does not clarify whether at least one of 'selector' or 'coordinates' must be provided, nor what happens when neither is given. This ambiguity leaves the invocation unclear.

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%, so the parameters are already documented. The description adds no additional meaning, but the schema itself includes descriptions for 'page', 'selector', and 'coordinates', providing baseline clarity.

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

Purpose4/5

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

The description clearly states a specific action ('Click') performed on a resource ('an element on the page'). It is unambiguous but does not distinguish itself from sibling actions like 'hover' or '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?

No guidance is provided on when to use this tool over alternatives, nor any exclusions such as requiring a selector versus coordinates. The description only states the action without context.

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

close_managed_tabsA

关闭 BrowserPilot MCP 自身打开/使用过的 tab。默认只关参数里给定的 tabId(如果属于受管集合);传 allManaged=true 时关闭所有受管 tab。永远不关 Chrome 浏览器本身;如果关闭全部受管 tab 会导致最后一个窗口被清空,工具会改为仅从受管集合移除而不调用 chrome.tabs.remove。

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNo可选:要关闭的 tab id(必须此前被 BrowserPilot 注册为受管)
allManagedNo可选:true 时关闭所有受管 tab;缺省 false 只关 tabId

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations provided, the description carries full burden. It richly discloses behaviors: only closes managed tabs, never the browser itself, the default vs allManaged behavior, and the crucial edge case where it avoids closing the last window by only removing from the managed set without calling chrome.tabs.remove. This goes far beyond a basic mutation description.

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 concise and front-loaded: a single opening sentence states the core purpose, followed by a compact explanation of the two modes and the safety edge case. Every sentence adds value with no redundancy or fluff.

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

Completeness5/5

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

Despite having no annotations and no output schema, the description is complete for this tool's complexity. It covers the two parameter behaviors, the safety guarantee, and the critical fallback behavior when closing all managed tabs would empty the last window. There are no 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 coverage is 100% and the description largely restates what the schema already says (tabId must be managed, allManaged defaults to false, allManaged=true closes all). It does add the context of never closing the browser and the last-window edge case, but those are behavioral rather than parameter-semantic enhancements. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool closes tabs that BrowserPilot MCP itself opened/used, with a specific verb (close) and resource (managed tabs). It distinguishes from sibling close_page by limiting scope to managed tabs, and explicitly describes the default and allManaged behaviors.

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

Usage Guidelines4/5

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

Provides clear context: only closes managed tabs, defaults to the specified tabId, and allManaged=true closes all managed tabs. It also states when not to use it (never closes the Chrome browser itself) and the edge case of the last window being emptied. However, it does not explicitly name an alternative tool like close_page for unmanaged tabs, so it stops short of full when/not-and-alternatives guidance.

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

close_pageA

Low-level tab close tool kept for compatibility; refuses to close the last browser window. Prefer close_managed_tabs for BrowserPilot-managed lifecycle cleanup.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoOptional page/tab ID to close

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description must disclose behavioral traits, and it does so by stating 'refuses to close the last browser window.' This is a crucial safety/limitation behavior. However, it doesn't detail what happens if that occurs (e.g., error message) or mention other side effects, but the key behavioral constraint is transparent.

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 compact and front-loaded, stating the core purpose in the first phrase ('Low-level tab close tool'), then providing a key behavioral note, and finally an alternative. Every sentence adds value with no redundancy.

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

Completeness4/5

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

For a simple tool with one optional parameter and no output schema, the description covers purpose, a critical behavioral limitation, and guidance on alternatives. It does not explicitly explain behavior when no page ID is provided (e.g., default current tab), but the overall context is sufficient for most cases.

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

Parameters3/5

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

The input schema has 100% coverage for the single parameter 'page' with description 'Optional page/tab ID to close'. The tool description does not add additional parameter semantics, so the baseline of 3 is appropriate since the schema already provides sufficient meaning.

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 is a 'low-level tab close tool' with a specific scope: closing tabs. It also distinguishes itself from the sibling tool close_managed_tabs by positioning itself as a low-level compatibility tool, which differentiates its purpose.

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

Usage Guidelines5/5

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

The description explicitly says 'Prefer close_managed_tabs for BrowserPilot-managed lifecycle cleanup', providing clear guidance on when to use this tool versus an alternative. It also implies this tool is for direct, unmanaged closing, giving context for appropriate usage.

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

dragC

Drag from one point to another

ParametersJSON Schema
NameRequiredDescriptionDefault
endYesEnding coordinates
pageNoOptional page/tab ID to use
startYesStarting coordinates

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 disclosing behavior, but it only states the basic gesture. It does not mention whether the drag involves pressing and releasing, any dwell time, coordinates relative to viewport, or possible side effects such as scrolling or selecting.

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 brief, consisting of a single phrase with no fluff, but it under-specifies key details. It is concise yet not sufficiently informative, balancing between efficiency and completeness.

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

Completeness2/5

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

Given the tool has three parameters, nested objects, and no output schema, the description is too thin to provide complete context. It omits information about coordinate systems, coordinate origin, and the effect of the drag, making it insufficient for an AI agent to use safely.

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 describes each parameter with 100% coverage, so the baseline is 3. The description adds no extra meaning beyond the schema, simply restating the start and end points.

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

Purpose4/5

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

The description clearly identifies the action as 'drag' and specifies the target as moving from one point to another, distinguishing it from sibling actions like click and hover. However, it does not clarify whether this is a mouse drag, touch drag, or drag-and-drop, leaving some ambiguity.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as click, hover, or key presses. There is no mention of prerequisites, use cases, or exclusions.

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

ensure_active_tabA

确保存在一个可用且激活的浏览器 tab。如果当前窗口已有 active tab 则直接复用;如果没有任何 tab 但浏览器进程仍在,则新建 tab;如果连窗口都没有,会按 platform 启动 Chrome(macOS: open -a Google Chrome;Linux: xdg-open;Windows: rundll32.exe url.dll,FileProtocolHandler)。本工具不会关 Chrome,不会结束浏览器进程;启动浏览器仅在显式调用本工具时发生。

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo可选:新建 tab 时要打开的 URL,缺省 about:blank
browserNo缺省 chrome;auto 由系统决定,chrome/edge/brave 显式指定浏览器应用名(仅用于启动命令)

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations provided, the description fully discloses behavioral traits: it reuses, creates, or launches a browser; it explicitly states it will not close Chrome or terminate the browser process; and it lists platform-specific launch commands. This goes far beyond basic expectations.

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 well-structured and front-loaded with the core purpose. While slightly long due to platform launch details, every sentence earns its place by conveying necessary behavioral guarantees and conditions without redundancy.

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

Completeness4/5

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

For a side-effect-oriented tool with two optional parameters, the description covers all relevant states (active tab, no tabs, no window) and side effects (browser launch, no termination). It lacks explicit return value details, but no output schema exists and the tool's success is largely implied by the conditional logic.

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 'url' and 'browser' parameters already well-documented. The description adds minimal extra meaning beyond the schema, so a baseline score of 3 is appropriate as the schema carries the heavy lifting.

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

Purpose5/5

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

The description clearly states the tool's purpose: ensure an active browser tab exists. It specifies the exact verb (ensure) and resource (active tab), and the conditional behavior (reuse existing tab, create new tab, launch browser) distinguishes it from siblings like new_page or navigate_page.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool by detailing the three scenarios (active tab present, no tabs but browser running, no window) and explicitly notes when the browser will be launched. It does not name alternatives explicitly, but the conditional logic implies when this is the appropriate fallback.

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

evaluate_scriptA

Evaluate JavaScript on the page via chrome.scripting.executeScript. The script runs with extension execution semantics and must return a JSON-serializable value; returnByValue is accepted for API compatibility but the extension always returns the serialized result value.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoOptional page/tab ID to use
scriptYesThe JavaScript to evaluate
returnByValueNoAccepted for compatibility only. The extension currently always returns the serialized result value.

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden. It discloses important behaviors: runs with extension execution semantics, requires a JSON-serializable return value, and explains that returnByValue is accepted but ignored. This provides meaningful context beyond a simple operation statement.

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

Conciseness5/5

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

The description is concise, with two sentences covering purpose, execution semantics, and return constraints. It is front-loaded with the primary action and contains no fluff.

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

Completeness4/5

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

The description is adequate for a script execution tool: it explains the action, execution context, and return value expectations. While error handling isn't mentioned, the core behavior is covered, especially given the limited schema and no output schema.

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

Parameters3/5

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

Schema description coverage is 100%, and the description does not add new parameter semantics. The note about returnByValue in the description duplicates the schema's text. No extra value is provided beyond the structured fields.

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

Purpose5/5

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

The description clearly states the tool's action: 'Evaluate JavaScript on the page via chrome.scripting.executeScript.' It specifies the resource (page JavaScript) and the mechanism, making it distinct from sibling tools like click, type, or navigate.

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

Usage Guidelines3/5

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

The description implies use when needing to run custom JavaScript, but it does not explicitly state when to use this tool over alternatives or provide exclusions. With sibling tools like click and type_text, no direct comparison is offered.

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

fill_formB

Fill multiple form fields at once

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoOptional page/tab ID to use
fieldsYesArray of field selectors and values

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, and the description gives no behavioral details such as whether it simulates typing, sets values directly, clears existing content, triggers events, or handles errors. It simply restates the basic action without revealing important execution traits.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no redundant words. It efficiently conveys the core action, making it appropriately concise.

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

Completeness2/5

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

Given the tool has two parameters, one being an array of nested objects, and no annotations or output schema, the description is insufficient. It does not explain selector syntax, behavior on invalid selectors, whether events are triggered, or any return value, leaving many gaps.

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

Parameters3/5

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

The input schema already covers both parameters with descriptions (page and fields). The tool description adds no additional parameter semantics beyond the word 'fill', so it meets the baseline for high schema coverage without adding extra meaning.

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 fills multiple form fields at once, using the verb 'fill' and scope 'multiple form fields at once'. This distinguishes it from sibling tools like type_text, which is for single fields, and click.

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

Usage Guidelines3/5

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

The phrase 'at once' implies use when needing to fill several fields in a single operation, but the description does not explicitly state when to use this tool over alternatives like type_text, 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.

get_console_messageA

Get a captured console message by ID. Console events are captured from CDP Runtime.consoleAPICalled, Log.entryAdded, and content-script interception.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe message ID
pageNoOptional page/tab ID to use

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It reveals the capture sources but does not state whether the operation is read-only, what the return object looks like, or what happens when an ID is not found. The 'get' verb implies a safe read, but this is not explicit.

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

Conciseness5/5

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

Two sentences, front-loaded with the primary action. The second sentence adds relevant context about the message sources without unnecessary verbosity. Every word contributes to understanding.

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

Completeness4/5

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

For a simple get-by-ID tool, the description is fairly complete. It explains what the tool does, how messages are captured, and has no output schema to worry about. However, without annotations or output schema, a bit more detail on the return value or error behavior would be beneficial, but it is not critical given the simplicity.

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

Parameters3/5

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

Schema description coverage is 100%—both 'id' and 'page' are described. The description text adds no extra meaning about the parameters beyond the capture source context, which is not directly param-specific. The baseline for high schema coverage is 3, and no additional value is provided.

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

Purpose5/5

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

The description clearly states the action ('Get'), the resource ('a captured console message'), and the method ('by ID'). It also specifies the sources of the messages (CDP Runtime.consoleAPICalled, Log.entryAdded, content-script interception), which helps distinguish it from sibling tools like list_console_messages or get_network_request.

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?

Usage is implied: you need a message ID, presumably from a previous list_console_messages call. However, there is no explicit statement about when to use this vs alternatives, no mention of prerequisites, and no exclusion like 'instead of listing all messages.'

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

get_network_requestA

Get captured network request metadata by ID. Captures CDP Network request/response lifecycle metadata only; response bodies are not included.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe request ID
pageNoOptional page/tab ID to use

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the burden. It discloses the key limitation ('response bodies are not included') and clarifies the data source ('CDP Network request/response lifecycle metadata only'). It doesn't mention error behavior or require capture state, but the main limitation is transparently stated.

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

Conciseness5/5

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

Two sentences, front-loaded with the core action, and no unnecessary words. Every clause adds value, including the explicit limitation on response bodies.

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

Completeness3/5

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

The description is sufficient for a simple getter, but it leaves gaps: it doesn't specify what fields the metadata includes (e.g., status, headers, timings) or how to obtain the ID (e.g., via list_network_requests). Since there is no output schema, a bit more detail on the return shape would improve completeness.

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

Parameters3/5

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

Schema covers both parameters (id and page) with clear descriptions. The description adds little beyond 'by ID', which is already evident from the schema. Baseline 3 applies since schema_description_coverage is 100% and no extra nuance is needed.

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

Purpose5/5

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

Clear and specific: 'Get captured network request metadata by ID.' Distinguishes from sibling list_network_requests by emphasizing retrieval by ID, and the scope is explicit (network request metadata).

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

Usage Guidelines4/5

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

Provides context: it retrieves previously captured metadata, and explicitly notes what it does not include (response bodies). This implies when to use it (when you need lifecycle metadata) and when not to (when you need response bodies), though it does not name alternative tools or explicitly state prerequisites like first listing requests to obtain an ID.

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

handle_dialogC

Handle a JavaScript dialog (alert, confirm, prompt)

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoOptional page/tab ID to use
acceptYesWhether to accept (true) or dismiss (false) the dialog
promptTextNoOptional text to enter for prompt dialogs

TDQS

C2.9/5.0
Behavior2/5

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

The description discloses only the basic action of handling a dialog. It omits critical behavioral details such as what happens if no dialog is present, whether the tool waits for a dialog, how dismissal differs from acceptance, or any return values. With no annotations to provide safety or behavioral context, the description fails to convey these important traits.

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 that is front-loaded with the main purpose. No word is wasted, but the verb 'handle' could be more precise (e.g., 'accept or dismiss'). Overall, it is appropriately sized and easy to parse.

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 three simple parameters and no output schema, the description is minimal but still incomplete. It lacks any context about dialog interaction flow, error conditions, or how the tool integrates with page navigation. An agent would have to infer behavior from the parameter names alone, which 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?

Schema description coverage is 100%, so the baseline is 3. The description does not add any parameter semantics beyond what the schema already explains; the accept/promptText semantics are clearly documented in the schema. The description only adds a generic mention of dialog types, which is redundant.

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 it handles JavaScript dialogs (alert, confirm, prompt), which is a specific resource. Although the verb 'handle' is somewhat generic, the parenthetical list of dialog types makes the purpose unambiguous. It distinguishes from sibling tools by being 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?

The description does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention exclusions or prerequisites. Usage is only implied by the dialog types, with no context about dialog blocking, timing, or fallback behavior. This is minimal guidance at best.

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

health_checkA

返回 MCP 服务、浏览器扩展、原生主机、浏览器访问状态和下一步操作的结构化诊断信息。Use this to check whether the browser automation bridge is ready.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description details what the tool returns (diagnostic info and next steps), which informs the agent about the tool's non-destructive, read-only nature. It adds behavioral context beyond the name, though it could explicitly state it makes no changes to the environment.

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 concise, with two sentences that each earn their place: the first details the returned content, the second provides usage guidance. No redundant or filler text is present.

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

Completeness5/5

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

For a zero-parameter diagnostic tool with no output schema, the description provides complete context: what it checks, what it returns, and when to use it. It is fully sufficient for an agent to select and invoke this tool correctly.

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

Parameters4/5

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

The tool has zero parameters and the schema is empty, so there is no need for parameter explanation. The baseline score for zero-parameter tools is 4, and the description adequately covers the tool's purpose.

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

Purpose5/5

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

The description clearly states the tool returns structured diagnostic information about specific components (MCP service, browser extension, native host, browser access status) and next steps. It uniquely identifies this as a health check tool, distinguishing it from sibling tools that perform actions like navigation or clicking.

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

Usage Guidelines4/5

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

The description explicitly says to use this tool to check whether the browser automation bridge is ready, providing clear usage context. It does not mention when not to use it or alternatives, but given the tool's unique diagnostic role, this is sufficient guidance.

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

hoverC

Hover over an element

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoOptional page/tab ID to use
selectorYesCSS selector of the element to hover over

TDQS

C2.7/5.0
Behavior1/5

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

With no annotations, the description carries the full burden for behavioral disclosure. It only states the basic action without revealing side effects, such as whether it triggers mouseover events, waits for a response, or affects page state. This is a significant gap for a user-interaction tool.

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 wordiness. It is direct and easy to read, though it could be slightly more informative without becoming verbose. Overall, it is appropriately concise for its simplicity.

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 description is too minimal to provide adequate context. Given the lack of annotations and output schema, the description should compensate by explaining when to use the tool, potential side effects, or how it interacts with the page. None of this is present, making it incomplete.

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

Parameters3/5

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

The input schema provides descriptions for all parameters (page and selector), giving 100% coverage. The tool description adds no additional meaning to these parameters, so it stays at the baseline for schema-covered tools.

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

Purpose4/5

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

The description clearly identifies the action (hover) and the target (an element), which distinguishes it from sibling tools like click or type_text. However, it does not add additional scope such as 'in the current page' or 'using a CSS selector', so it falls short of a full 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 hover versus alternatives like click or drag. There are no stated prerequisites, exclusions, or context for when this tool is appropriate, leaving the agent without decision-making information.

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

list_console_messagesA

List captured console messages from CDP Runtime.consoleAPICalled, Log.entryAdded, and content-script interception.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoOptional page/tab ID to use
typeNoOptional message type filter (log, error, warn, etc.)

TDQS

A3.5/5.0
Behavior2/5

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

There are no annotations, so the description must carry the full burden of behavioral disclosure. It mentions the action and sources but does not disclose whether messages are cleared, return order, pagination, or any side effects. This leaves the agent with an incomplete behavioral picture.

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, precise sentence that front-loads the action and resource, followed by relevant source details. Every word contributes meaning, and there is no redundancy or wasted space.

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

Completeness3/5

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

The description covers the core purpose and sources but does not explain the return format, default behavior, or filtering nuances. Since there is no output schema, the description should ideally describe what the returned messages look like, which is a notable gap.

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

Parameters3/5

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

Both parameters have full descriptions in the schema (100% coverage), so the schema provides the necessary semantic meaning. The description adds no additional parameter context, but this is acceptable given the schema's completeness.

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

Purpose5/5

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

The description clearly states the action ('List') and the resource ('captured console messages'), and specifies the exact data sources (CDP Runtime.consoleAPICalled, Log.entryAdded, content-script interception). This distinguishes it from sibling tools like list_network_requests or get_console_message.

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

Usage Guidelines3/5

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

The description implies usage for retrieving console messages but does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites. Sibling tool names suggest context, but the description itself lacks explicit guidance.

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

list_network_requestsA

List captured network request metadata from CDP Network events. Returns metadata such as URL, method, headers, status, mime type, timing/status fields, and encoded data length; response bodies are not included.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoOptional page/tab ID to use
typeNoOptional CDP resource type filter, such as Document, Fetch, XHR, Script, Stylesheet, Image, Media, Font, WebSocket, or Other.
statusNoOptional request lifecycle status filter.
urlContainsNoOptional substring filter applied to request URLs.

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It discloses the key limitation that response bodies are not included and lists the metadata fields returned. While it does not explicitly state read-only behavior, 'List' strongly implies it, and the description adds context about CDP Network events. It does not contradict structured data.

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

Conciseness5/5

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

Two sentences, front-loaded with action and resource, no filler. The second sentence adds a meaningful limitation without wasting words.

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

Completeness4/5

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

Given the tool's simplicity (4 optional filters, no output schema), the description provides essential purpose and return metadata. It doesn't detail ordering or pagination, but for a list operation with optional filters, it is adequately complete.

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

Parameters3/5

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

The input schema covers 100% of parameters with descriptions, so baseline is 3. The description does not add meaning beyond the schema parameters themselves; it only mentions 'timing/status fields' and 'encoded data length' which are return fields, not parameter semantics.

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

Purpose5/5

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

The description uses a specific verb ('List') and resource ('captured network request metadata from CDP Network events'). It clearly identifies what the tool does and distinguishes it from sibling tools like get_network_request, which retrieves a single request. The scope ('network request metadata') and exclusion of response bodies further clarify its role.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives like get_network_request, nor does it mention when not to use it. It implies context (used for listing metadata, not bodies) but provides no direct guidance or alternative references.

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

list_pagesA

List all open browser tabs/pages

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only states the basic action. It does not mention side effects, return format, or how tabs/pages are identified.

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

Conciseness5/5

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

The description is a single sentence of six words, perfectly front-loaded and free of unnecessary detail.

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

Completeness3/5

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

For a simple parameterless list operation, the description is mostly adequate, but it does not specify what information is returned for each tab/page (e.g., title, URL, ID), leaving a gap in expected output.

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 schema has zero parameters, so the baseline is 4. The description adds the qualifier 'all', which clarifies the unconditional scope of the operation, but no further parameter semantics are needed.

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

Purpose5/5

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

The description uses a specific verb ('List') and a clear resource ('all open browser tabs/pages'), making its function unambiguous and naturally distinct from sibling tools like 'list_network_requests' or 'take_screenshot'.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives; there is no mention of prerequisites, exclusions, or complementary tools.

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

new_pageB

Open a new browser tab

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoOptional URL to navigate to in the new tab

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It simply states 'Open a new browser tab' and does not disclose whether the new tab becomes the active tab, whether a page reference is returned, or any side effects such as focus changes.

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

Conciseness5/5

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

The description is a single sentence that is concise and front-loaded with the core action. There is no wasted text.

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

Completeness3/5

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

The tool is simple with one optional parameter and no output schema, but the description lacks behavioral details like active-tab semantics. For a browser automation tool, this missing context is a notable gap, though the core purpose is adequately conveyed.

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

Parameters3/5

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

The input schema already provides 100% coverage for the single optional 'url' parameter with a clear description. The tool description adds no additional meaning beyond what the schema provides, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description 'Open a new browser tab' clearly states the tool's action and resource with a specific verb. It distinguishes itself from sibling tools like navigate_page (which navigates an existing tab) and close_page (which closes a tab).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs alternatives such as navigate_page or ensure_active_tab. The description does not mention whether the new tab becomes active or whether it should be used before other actions.

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

press_keyC

Press a keyboard key

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesThe key to press (e.g., Enter, Escape, ArrowUp)
pageNoOptional page/tab ID to use

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 must carry the behavioral burden. It merely restates the tool name and offers no details about side effects, whether it requires an active page, how it handles focus, or what happens if 'page' is omitted. This is a tautological description that adds no behavioral insight.

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

Conciseness5/5

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

The description is a single, concise sentence with no redundant words. It is front-loaded and directly communicates the core action, earning a high score for conciseness even though it lacks depth.

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

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 thin. It does not explain key press behavior (e.g., whether it's a transient press or long press), how the optional 'page' parameter affects execution, or any return value. The schema describes parameters but not runtime context, leaving significant ambiguity.

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

Parameters3/5

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

The input schema already provides full coverage (100%) with descriptive parameter details: 'key' includes examples and 'page' is explained. The description adds no additional meaning beyond the schema, so a 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 ('press') and the resource ('keyboard key'), making it easy to understand. It is distinct from sibling tools like 'click' and 'type_text', though it could be more specific about what kind of key (e.g., modifier keys, key combinations).

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

Usage Guidelines2/5

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

No guidance is provided on when to use press_key versus alternatives like 'click' or 'type_text'. The description does not mention suitable scenarios or exclusions, leaving the agent to infer that it is for simple key presses.

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

resize_pageB

Resize the browser window

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoOptional page/tab ID to use
widthYesThe window width in pixels
heightYesThe window height in pixels

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Resize the browser window' without explaining side effects, whether it affects the current page or all pages, or if the resize is persistent. The optional 'page' parameter is not mentioned, leaving 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.

Conciseness5/5

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

The description is a single, concise sentence with zero waste. It is front-loaded with the key action and target, making it easy to parse quickly.

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 resize operation with a well-covered schema, the description is minimally viable. However, it lacks contextual details such as whether the resize applies to the viewport or the OS window, and what happens when the optional 'page' parameter is omitted. Given the tool's simplicity, this is a clear but not critical gap.

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

Parameters3/5

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

Schema coverage is 100% with descriptive parameter names and units (pixels) already provided. The description adds no additional meaning beyond what the schema states, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description 'Resize the browser window' clearly states the action (resize) and the target (browser window), with a specific verb and resource. It distinguishes itself from sibling tools, none of which perform resizing, though the tool name 'resize_page' vs 'browser window' creates minor ambiguity.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description simply states the action without context such as 'use to adjust viewport before taking a screenshot.' Usage is only implied by the nature of the operation.

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

take_screenshotA

Take a PNG screenshot of the current page. By default captures the visible viewport; with fullPage=true, uses CDP Page.getLayoutMetrics and Page.captureScreenshot to capture the full page.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoOptional page/tab ID to use
fullPageNoWhen true, capture the full page using CDP Page.captureScreenshot; when false or omitted, capture the visible viewport.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of disclosing behavior. It mentions the use of CDP Page.getLayoutMetrics and Page.captureScreenshot for full-page capture, and explains the default viewport behavior. It could also state the return format (e.g., base64) but the core behaviors are disclosed.

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

Conciseness5/5

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

The description is extremely concise: two sentences, front-loaded with the primary purpose. It avoids redundancy and every clause adds value, explaining the default and full-page modes efficiently.

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

Completeness4/5

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

For a simple screenshot tool, the description covers the main actions and behavioral nuances. It does not mention the return value format or whether the page must be active, but given the low complexity and helpful sibling context (e.g., ensure_active_tab), it is reasonably complete. A 4 reflects the minor gap around output specifics.

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

Parameters3/5

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

The input schema already provides complete descriptions for both parameters (page and fullPage), including the key distinction for fullPage. The description essentially repeats the fullPage behavior but adds no new meaning beyond what the schema already specifies, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Take a PNG screenshot of the current page.' It specifies the output format (PNG) and the resource (current page). It also distinguishes between default viewport capture and full-page capture, which differentiates it from any potential siblings.

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

Usage Guidelines4/5

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

The description provides clear usage context by explaining the default behavior (visible viewport) and when to use fullPage=true. It does not explicitly mention alternatives or when not to use the tool, but the context is sufficient for straightforward usage.

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

type_textC

Type text into an input field

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoOptional page/tab ID to use
textYesThe text to type
selectorNoCSS selector of the input field

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the basic action of typing text, but fails to mention important behavior such as whether it replaces existing content, fires events, or requires a focused element. This is insufficient for an agent to predict side effects.

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

Conciseness5/5

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

The description is a single, concise sentence that conveys the core action without any filler. It is appropriately sized and front-loaded, making it easy to parse quickly.

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

Completeness2/5

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

Given the tool's simplicity (3 parameters, no output schema), the description is still too sparse. It lacks any behavioral context, such as how the selector optional is handled or what happens if no selector is provided, and does not differentiate from sibling tools. This leaves the agent with uncertainty about correct 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 description coverage is 100%, meaning every parameter has a meaningful description in the schema. The tool's description adds no extra parameter information, but the schema itself is sufficient, so the baseline score of 3 applies.

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

Purpose4/5

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

The description 'Type text into an input field' clearly states the verb (type) and resource (input field), giving a specific action. However, it does not differentiate from sibling tools like fill_form or press_key, so it does not fully meet the top 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?

There is no guidance on when to use this tool versus alternatives such as fill_form or press_key. The description provides no context about prerequisites, selection of the target element, or when other tools 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.

wait_forA

Wait for a visible element matching a CSS selector. JavaScript conditions are not supported; use evaluate_script explicitly when script execution is intended.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoOptional page/tab ID to use
timeoutNoTimeout in milliseconds (default: 30000)
selectorYesCSS selector to wait for; required because condition-based waiting is not supported.
conditionNoUnsupported. Passing a condition will make the extension reject the request; use evaluate_script explicitly instead.

TDQS

A4.2/5.0
Behavior3/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 burden. It discloses that condition-based waiting is unsupported and rejects requests, but does not describe timeout behavior, return values, or side effects beyond waiting.

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

Conciseness5/5

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

Two focused sentences front-load the core action, immediately state the key restriction, and point to the alternative without redundancy.

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

Completeness4/5

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

For a wait tool with fully described parameters, the description covers the essential behavior and constraint. It lacks explicit timeout outcome details but is otherwise sufficient given schema richness.

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

Parameters3/5

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

Schema descriptions already cover all parameters (100% coverage), including the condition constraint. The description reinforces the unsupported condition but adds little 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 identifies the tool's action: waiting for a visible element matching a CSS selector. It also distinguishes itself from evaluate_script by stating JS conditions are not supported, which differentiates it from 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 Guidelines5/5

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

Explicitly states when not to use it (for JavaScript conditions) and provides the alternative (evaluate_script), giving clear guidance on tool selection.

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

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, but close_page and close_managed_tabs overlap in function, and new_page vs ensure_active_tab could cause selection ambiguity. Descriptions help mitigate confusion.

Naming Consistency4/5

The majority follow a clear verb_noun pattern (list_pages, navigate_page, type_text). However, a few single-word verbs (click, hover, drag) and health_check break the pattern, creating minor inconsistency.

Tool Count3/5

At 22 tools, the surface is on the heavy side and includes some redundancy (close_page vs close_managed_tabs). The browser automation domain is broad, so most tools are justified, but a few could be consolidated.

Completeness4/5

Core browser automation operations are covered: navigation, tab management, interaction, screenshots, network/console inspection, and dialog handling. Minor gaps like direct content extraction exist but can be addressed via evaluate_script.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A browser automation agent that enables Claude to interact with web browsers through the Model Context Protocol, allowing for actions like navigating websites, manipulating elements, and managing browser state.
    2
    9
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to control a browser through Playwright automation tools, allowing them to perform web tasks like navigation, typing, clicking, and taking screenshots. Deployed on Cloudflare Workers and compatible with various AI platforms including Claude Desktop and VS Code.
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to control a web browser via Playwright on Cloudflare Workers for automated tasks like navigation, clicking, typing, and taking screenshots. It integrates with platforms like Claude Desktop and GitHub Copilot to perform web automation through a standardized toolset.
  • A
    license
    Not graded
    quality
    A
    maintenance
    Browser automation for AI agents via the Model Context Protocol, enabling web navigation, form filling, screenshots, and more using Chromium.
    MIT

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Sept-7-Qi/BrowserPilot-MCP'

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