Playwriter Browser MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Playwriter Browser MCPnavigate to example.com and take a screenshot"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Playwriter Browser MCP
一个独立的 MCP (Model Context Protocol) 服务,通过 Playwriter Chrome 扩展连接用户的真实浏览器,提供 37 个结构化浏览器自动化工具。
对于任意 Agent 来说,只需添加一个 MCP 配置,就能操控用户真实的 Chrome 浏览器(带完整登录态)—— 无需 --remote-debugging-port,不受 Chrome 136+ 安全限制。
为什么需要这个项目
方案 | 能用真实 Profile | 结构化工具 | 不需要调试端口 |
Playwright MCP ( | ❌ | ✅ 38 个工具 | ❌ |
Playwriter | ✅ | ❌ 仅 1 个 | ✅ |
Browser MCP (本项目) | ✅ | ✅ 37 个工具 | ✅ |
Browser MCP = Playwriter 的连接方式 + Playwright MCP 的工具生态。
Related MCP server: Chrome MCP Server
架构
AI Agent (Claude Code / VisionClaw / ...)
│ MCP Protocol (HTTP / SSE)
▼
┌──────────────────────────────────┐
│ Browser MCP Server (port 3280) │
│ │
│ 37 个结构化工具: │
│ ├── browser_navigate │
│ ├── browser_snapshot │
│ ├── browser_click │
│ ├── browser_type │
│ ├── browser_take_screenshot │
│ ├── ... (共 37 个) │
│ │
│ 连接层: │
│ Playwriter API → connectOverCDP │
└──────────────┬───────────────────┘
│ WebSocket
▼
┌──────────────────────────────────┐
│ Playwriter Relay (port 19988) │
│ (已有的 relay 或自动启动) │
└──────────────┬───────────────────┘
│ chrome.debugger API
▼
┌──────────────────────────────────┐
│ Chrome 浏览器 (用户真实 Profile) │
│ ├── 已登录的网站 │
│ ├── Cookies / Sessions │
│ └── Playwriter 扩展 (已安装) │
└──────────────────────────────────┘快速开始
前置条件
Chrome 浏览器 — 安装 Playwriter 扩展
Node.js >= 18
Playwriter CLI —
npm install -g playwriter
启动
# 1. 安装依赖
npm install
# 2. 配置环境变量(可选)
cp .env.example .env
# 3. 启动
npm run dev服务启动后,MCP 端点在 http://localhost:3280/mcp。
多 Profile 场景
如果 Chrome 登录了多个 Google 账号,需要指定连接哪个:
# 查看可用的 Profile
playwriter browser list
# 指定 Profile 启动
PLAYWRITER_EXTENSION_ID="profile:104623951740642372686" npm run devMCP 工具列表 (37 个)
导航
工具 | 说明 |
| 导航到 URL,返回页面快照 |
| 返回上一页 |
快照与截图
工具 | 说明 |
| 获取页面 accessibility tree(带 |
| 截图(支持 png/jpeg、全页、指定元素) |
输入操作
工具 | 说明 |
| 点击元素(通过 ref 定位) |
| 向元素输入文本 |
| 按下键盘按键(Enter、Tab、Escape 等) |
| 鼠标悬停在元素上 |
| 拖拽元素到目标 |
| 在下拉框中选择选项 |
| 批量填写表单(文本框、复选框、单选按钮) |
页面管理
工具 | 说明 |
| 标签页管理(list / new / close / select) |
| 关闭当前页面 |
| 等待文本出现/消失或指定时间 |
| 调整浏览器窗口大小 |
代码执行
工具 | 说明 |
| 在页面中执行 JavaScript |
| 运行 Playwright 代码片段 |
观测
工具 | 说明 |
| 获取控制台日志 |
| 获取网络请求列表 |
文件与对话框
工具 | 说明 |
| 上传文件到 file input |
| 处理 alert/confirm/prompt 弹窗 |
Vision(坐标操作)
工具 | 说明 |
| 移动鼠标到坐标 |
| 在坐标处点击 |
| 从坐标 A 拖拽到坐标 B |
| 按下鼠标按键 |
| 释放鼠标按键 |
| 滚动鼠标滚轮 |
测试验证
工具 | 说明 |
| 生成 Playwright locator(用于编写测试) |
| 验证文本在页面上可见 |
| 验证元素可见 |
| 验证列表包含指定项 |
| 验证元素的值 |
PDF 与追踪
工具 | 说明 |
| 将页面保存为 PDF |
| 开始录制 Playwright trace |
| 停止录制并保存 trace 文件 |
其他
工具 | 说明 |
| 安装 Chromium 浏览器二进制文件 |
| 诊断工具:检查连接状态(无需主动调用,连接是自动的) |
接入方式
作为 HTTP MCP Server
{
"mcpServers": {
"browser": {
"type": "http",
"url": "http://localhost:3280/mcp"
}
}
}接入 VisionClaw
在 VisionClaw 的 mcp-servers.json 中添加上述配置即可。Agent 无需任何额外操作,直接调用 browser_navigate 等工具,连接会自动建立。
工作流程示例
AI 使用这套工具的典型流程:
1. browser_navigate({ url: "https://x.com" })
→ 自动连接浏览器,导航到 X,返回页面快照
2. browser_snapshot()
→ 获取 accessibility tree,包含 [ref] 标记
3. browser_click({ ref: "compose-btn" })
→ 点击发帖按钮
4. browser_type({ ref: "tweet-input", text: "Hello World!" })
→ 输入帖子内容
5. browser_click({ ref: "post-btn" })
→ 发布无需手动连接、创建 session、选择 tab —— 一切自动完成。
环境变量
变量 | 默认值 | 说明 |
|
| MCP HTTP 服务端口 |
|
| Playwriter WebSocket relay 端口 |
|
| Relay 地址 |
| (自动检测) | 多 Profile 时指定连接哪个扩展 |
|
| 截图、PDF、trace 文件输出目录 |
技术原理
传统方案需要 --remote-debugging-port 来让程序操控浏览器,但 Chrome 136+ 禁止在默认 Profile 上使用该参数。
本项目利用 Playwriter 的 Chrome 扩展,通过 chrome.debugger API 从浏览器内部获取 CDP 访问权限,再通过 WebSocket relay 转发给 Playwright。这样:
✅ 不需要
--remote-debugging-port✅ 可以使用用户的真实 Chrome Profile(带登录态)
✅ 暴露 37 个结构化 MCP 工具(与 Playwright MCP 对齐)
✅ 连接自动建立,无需手动操作
开发
npm install # 安装依赖
npm run dev # 开发模式启动
npm run build # 编译 TypeScript
npm run lint # 类型检查
npm test # 运行测试Available Tools
30 toolsbrowser_clickA
Perform click on a web page element identified by its ref from a snapshot
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | Element reference from the page snapshot (e.g., 'e1', 'submit-btn') | |
| button | No | Mouse button, defaults to left | |
| element | No | Human-readable element description | |
| modifiers | No | Modifier keys to hold | |
| doubleClick | No | Whether to double-click |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action 'Perform click', lacking details about side effects (e.g., page navigation), error handling, or whether the tool waits for elements. This is insufficient for a click action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with 14 words. It is succinct and front-loaded, conveying the core purpose without extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and the complexity of click interactions, the description lacks details about return values, error conditions, or behavioral assurances. It is minimally complete but could benefit from additional context about what happens after a click (e.g., navigation, dialog handling).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described in the schema. The tool description adds no additional parameter information beyond what the schema provides. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Perform click') and the resource ('web page element identified by its ref from a snapshot'). It distinguishes from sibling tools such as 'browser_hover' and 'browser_drag' by specifying the click action and the identification method.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but provides no guidance on when to use it versus alternatives like 'browser_hover' or 'browser_press_key'. There is no mention of prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_closeC
Close the current page
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose side effects such as unsaved data loss, dialog confirmation, or whether it closes a tab or the entire browser. Essential behavioral traits are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is very short (one sentence) but adequately sized for a zero-parameter tool. However, it could be more informative without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete; it does not explain what happens after the page is closed (e.g., focus shift, previous page), nor does it mention prerequisites or recovery.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters (schema coverage 100%), so baseline is 4. The description adds no parameter information because none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Close the current page' clearly specifies the verb (close) and resource (current page), distinguishing it from siblings like browser_navigate_back or browser_tabs, though it could explicitly state whether it closes a tab or window.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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; for example, when to close a page versus navigating back or switching tabs. Lacks context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_console_messagesA
Returns console messages captured from the page. Each level includes more severe levels (error < warning < info < debug).
| Name | Required | Description | Default |
|---|---|---|---|
| level | Yes | Minimum level to include (e.g., 'error' returns only errors, 'info' returns errors + warnings + info) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes level inclusion behavior but does not disclose whether console is cleared, if messages are cumulative, or any side effects. No annotations to compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with action and then detail. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with one parameter; description covers purpose and parameter behavior. Could mention if messages are ongoing or from page start, but adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already had description of `level`; tool description adds clarity about inclusive severity ordering, enhancing understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it returns console messages with level filtering. Distinct from sibling tools which are for page interaction, not console retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly for retrieving console logs, but lacks explicit guidance on when to use vs. alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_dragC
Perform drag and drop between two elements
| Name | Required | Description | Default |
|---|---|---|---|
| endRef | Yes | Target element reference | |
| startRef | Yes | Source element reference | |
| endElement | Yes | Human-readable target element description | |
| startElement | Yes | Human-readable source element description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits but only says 'drag and drop'. It does not mention if it simulates mouse events, handles animations, or requires the elements to be in viewport, leaving significant ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one short sentence), but it lacks depth. While not verbose, it fails to provide anything beyond the obvious, making it insufficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is present, and the description does not explain return values, error conditions, or how to interpret results. For a tool with 4 required params, this is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add any meaning beyond the schema's property descriptions. It provides no extra context on how to obtain references or what 'human-readable' descriptions entail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Perform drag and drop between two elements' clearly states the action (drag and drop) and the resource (two elements). It distinguishes this tool from siblings like browser_click, browser_hover, etc., which perform different interactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 prerequisites, such as needing element references, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_evaluateB
Evaluate JavaScript expression on the page or on a specific element
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Element reference — the function receives the element as first argument | |
| element | No | Human-readable element description | |
| function | Yes | JavaScript function to evaluate, e.g. '() => document.title' or '(el) => el.textContent' when ref is provided |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It does not mention execution context, synchronous nature, side effects, or error handling. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the core action. No extraneous words. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks information about return values, which is critical for a JavaScript evaluation tool. Also missing error handling details. Incomplete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds useful context, such as examples for the 'function' parameter and clarifying that the element reference is passed as first argument. This enhances understanding beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it evaluates JavaScript expressions on the page or a specific element. However, it does not differentiate from the sibling tool 'browser_run_code', which also executes JavaScript. This could cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'browser_run_code'. The description provides no context on prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_file_uploadB
Upload one or multiple files to a file input element
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | File input element reference. If omitted, finds the first file input. | |
| paths | Yes | Absolute paths to files to upload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral context. It only states that one or multiple files can be uploaded, but lacks details on side effects, required permissions, file system access, or error behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 12 words, extremely concise and front-loaded with the key action and resource. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters, no output schema, and no annotations, the description is too minimal. It does not explain return values, error handling, or behavioral nuances of file upload (e.g., behavior with non-existent paths).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already describes both parameters ('ref' and 'paths'). The description adds no additional meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('upload') and the target ('files to a file input element'). It is specific and distinguishes this tool from siblings like browser_click or browser_type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. There is no indication of prerequisites (e.g., page must have a file input), when to use vs alternatives, or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_fill_formB
Fill multiple form fields at once
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | Fields to fill in |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavior. It only mentions 'fill', lacking details about validation, event firing, error handling, or constraints (e.g., field types not in enum). The agent is left guessing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence without wasted words. However, it lacks structure (e.g., bullet points) and could benefit from additional context while still being concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (array of objects) and no output schema, the description is incomplete. It does not explain post-fill behavior, supported field types, or how to handle errors, leaving significant gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for parameters, providing clear semantics for ref, name, type, value. The description adds no extra meaning beyond 'multiple fields', so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Fill multiple form fields') and the resource ('form fields'). It distinguishes from sibling tools like 'browser_type' which fills one field at a time, and 'browser_click' which interacts differently.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for filling multiple fields simultaneously, but does not explicitly state when to prefer this over alternatives (e.g., browser_type for single fields). No exclusions or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_generate_locatorA
Generate a Playwright locator for an element (useful for writing tests)
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | Element reference from page snapshot | |
| element | No | Human-readable element description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool generates a locator but does not mention whether it modifies state, requires permissions, or has any side effects. The lack of detail on output format (e.g., the locator string) is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no extraneous information. Every word is necessary, and the key purpose and context are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 lack of output schema, the description is mostly complete for a utility tool. It explains the purpose and when it is useful, but could benefit from mentioning the output format (e.g., 'returns a string') and any prerequisites (e.g., prior snapshot).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('ref' and 'element'). The description adds no additional meaning or context beyond the schema, meeting the baseline but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Generate a Playwright locator') and the resource ('element'). It distinguishes itself from sibling tools like browser_click (action) and browser_snapshot (capture) by focusing on locator generation for test writing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context ('useful for writing tests') but does not explicitly state when to use this tool versus alternatives, such as when to use a snapshot or direct interaction. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_handle_dialogA
Handle a JavaScript dialog (alert, confirm, prompt). Dialogs are queued as they appear. This tool handles the most recent unhandled dialog.
| Name | Required | Description | Default |
|---|---|---|---|
| accept | Yes | Whether to accept the dialog (true) or dismiss it (false) | |
| promptText | No | Text to enter for prompt dialogs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adds queuing context but does not disclose error handling (e.g., no dialog present) or behavior when promptText is used on non-prompt dialogs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences cover purpose, queuing, and which dialog is handled, with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains the tool's behavior for its simple function, though it could mention error states or return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters; the tool description adds minimal extra meaning beyond stating promptText is for prompt dialogs, which is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool handles JavaScript dialogs (alert, confirm, prompt) and specifies queuing behavior, distinguishing it from all other browser tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use (when a dialog appears) and mentions the queuing order, but could be more explicit about when not to use or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_hoverC
Hover over an element on the page
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | Element reference from the page snapshot | |
| element | No | Human-readable element description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description fails to disclose behavioral traits such as whether it triggers events, waits, or has side effects. The agent is left uninformed about the tool's runtime behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, to the point, and front-loaded. However, it is too brief and could benefit from more context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description does not provide enough information about return values or side effects. The tool's simplicity does not compensate for the missing behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The tool description adds no additional meaning beyond the schema, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Hover over an element on the page') and the resource, distinguishing it from siblings like browser_click or browser_type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., browser_click for clicking). The description does not specify prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_network_requestsB
Returns network requests captured since page load
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Regex filter for URLs (e.g., '/api/') | |
| static | No | Include static resources like images, fonts, scripts. Defaults to false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It only states 'captured since page load' but does not disclose that requests are a snapshot, that data may be stale after navigation, or any other behavioral traits like rate limits or data size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and to the point. However, it could be structured better with minimal addition to improve completeness without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and sparse annotations, the description is too minimal. It does not explain the format of returned data, what happens on empty results, or how navigation affects the capture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains both parameters. The description adds no additional meaning beyond the schema, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns network requests captured since page load. It is specific (verb+resource) and distinguishes itself from sibling browser tools, as no other tool deals with network requests.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It does not mention prerequisites, when not to use, or provide any context for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_pdf_saveB
Save the current page as a PDF file
| Name | Required | Description | Default |
|---|---|---|---|
| filename | No | File name to save the PDF to (defaults to auto-generated name) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the burden. It only says 'save' but does not disclose behaviors like whether it triggers a download, overwrites existing files, or requires user interaction. For a write operation, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence with zero wasted words. It is appropriately front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one optional parameter and no output schema, the description is adequately sized but lacks context on file storage location, overwrite behavior, and whether the PDF is generated from the rendered page. Slightly incomplete for a file-saving operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema documents the filename parameter. The description adds no extra meaning beyond what the schema provides (e.g., default naming behavior, file extension). Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('save') and resource ('current page as a PDF file'). It implicitly distinguishes from sibling tools like browser_take_screenshot (image) or browser_snapshot (HTML snapshot). A specific verb+resource is used.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like browser_take_screenshot for saving a document representation. No exclusions or context about prerequisites (e.g., page must be loaded) are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_press_keyB
Press a key on the keyboard. Use key names like 'ArrowLeft', 'Enter', 'Escape', 'a', 'Control+c', etc.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Key to press (e.g., 'Enter', 'Escape', 'ArrowDown', 'Control+a') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden but only states 'Press a key on the keyboard'. It omits details like whether it handles modifier keys, waits for completion, or affects the active element.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (two sentences) and front-loaded with the core purpose. It avoids verbosity, though could be expanded slightly without becoming long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is fairly complete but lacks context on how it differs from similar actions like browser_type and whether it is subject to browser state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'key' parameter, which already provides examples. The description adds slightly different examples but does not add significant new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Press' and resource 'key on the keyboard', with concrete examples of key names, distinguishing it from siblings like browser_type and browser_click.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives key name examples but lacks guidance on when to use this tool vs alternatives (e.g., browser_type, browser_fill_form). No when-not-to-use or context for choosing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_resetA
Reset the browser connection. Use when tools fail with connection errors, page closed errors, or the browser becomes unresponsive.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden for behavioral disclosure. The description states the tool 'resets the browser connection' but does not detail side effects such as whether it closes all tabs, clears state, or loses unsaved work. The agent may need to know the impact before invoking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that front-load the purpose and immediately follow with usage guidance. Every sentence adds value, with no redundant or unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose and usage adequately for a simple reset tool, but lacks behavioral details such as side effects. Given the absence of an output schema and annotations, a more complete description would include what the reset entails (e.g., closing pages, losing state).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters (0 params, 100% schema coverage). With no parameters, the description does not need to add parameter semantics, and a baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Reset the browser connection' with a specific verb and resource. It is distinct from sibling browser tools like browser_navigate or browser_snapshot, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly specifies when to use the tool: 'Use when tools fail with connection errors, page closed errors, or the browser becomes unresponsive.' This provides clear context, though it does not explicitly state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_resizeB
Resize the browser window
| Name | Required | Description | Default |
|---|---|---|---|
| width | Yes | Width of the browser window | |
| height | Yes | Height of the browser window |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits (e.g., units, whether it affects viewport, or any side effects). It carries the full burden but fails to add transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that efficiently communicates the purpose with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no annotations. The description omits critical details like units (pixels) and whether it resizes the window or viewport, making it incomplete for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for width and height. The description adds no additional meaning beyond the schema, resulting in baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Resize' and the resource 'browser window'. It is specific and distinct from sibling tools like browser_navigate 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives, such as when a viewport resize is needed versus other browser actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_run_codeA
Run a Playwright code snippet. The function receives page as its argument. Example: async (page) => { await page.goto('https://example.com'); return await page.title(); }
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | A JavaScript async function string that receives `page` as argument |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must convey all behavioral traits. It correctly states the function receives 'page' as argument and provides an example, but it does not disclose what happens with the return value, error handling, or any side effects. While adequate, it lacks completeness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences plus an example. It could be more front-loaded with the exact purpose, but it is efficient and contains no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a single parameter and no output schema, the description is fairly complete. It explains the function argument and provides a usage example. Missing details about return values and error handling, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of the parameter with a description, so the description adds marginal value. The example format is helpful but not essential beyond the schema's definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'Run' and resource 'Playwright code snippet' are specific and clear. The tool is well-distinguished from sibling tools like browser_click or browser_navigate, which perform specific actions, whereas this tool executes arbitrary code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for executing custom Playwright code, which is a clear use case. It does not explicitly state when not to use it or list alternatives, but the context from sibling tools makes it reasonably clear that for standard actions, other tools should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_select_optionB
Select an option in a dropdown
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | Element reference for the select/dropdown | |
| values | Yes | Values to select in the dropdown | |
| element | No | Human-readable element description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits like event triggering, support for multiple selection, or error handling. It only states the basic operation, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is very concise and front-loaded. However, it could benefit from a brief note on usage or multi-select behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing details about element interaction, waiting behavior, or results. For a browser automation tool, more context is needed for safe and effective invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions, so the description adds no additional value beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Select an option') and the resource ('in a dropdown'), using a specific verb and resource. It effectively distinguishes from sibling tools like browser_click or browser_type, which handle different interactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., clicking dropdown options manually). Lacks context about prerequisites or conditions for effective use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_snapshotA
Capture accessibility snapshot of the current page. Returns a text representation of the page with [ref] markers for interactive elements. Use these refs with other tools like browser_click.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description carries burden. It describes output format but does not disclose whether the snapshot is readonly, has performance impact, or requires specific permissions. Limited behavioral context beyond what is obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, zero wasted words. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with no output schema, description covers purpose, output, and usage integration with siblings. Minor gap: no mention of limitations or edge cases, but acceptable for this simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, baseline is 4. No additional parameter information needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool captures an accessibility snapshot, returns text with ref markers, and differentiates from siblings like browser_take_screenshot by emphasizing interactive elements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly mentions using refs with other tools like browser_click, implying when to use. However, no explicit when-not or alternatives are stated, though context from siblings provides some guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_start_tracingA
Start recording a Playwright trace. Stop with browser_stop_tracing to save the trace file.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states the action without mentioning side effects (e.g., performance impact, file location, or whether it resets previous traces). Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. It front-loads the purpose and immediately references the complementary tool, earning its space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description provides the core purpose and pairing. However, it omits details like default behavior, where the trace is saved, or any performance implications. Adequate but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema is trivially 100% covered. The description adds no parameter-specific information, which is acceptable given no parameters exist. Baseline score 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('start recording') and the resource ('Playwright trace'). It pairs with the sibling `browser_stop_tracing`, which distinguishes it from other browser tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use the tool (start recording) and mentions the complementary stop tool. However, it omits guidance on when not to use it or any prerequisites (e.g., ensure tracing is not already active).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_stop_tracingB
Stop trace recording and save the trace file
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It mentions saving a file, implying mutation, but lacks details on side effects, file location, or whether tracing data is retained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, front-loaded sentence with no wasted words. Perfectly concise for a simple action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description is minimal. It adequately describes the action but omits details about the saved file (e.g., name, location, format) and any return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. The description adds no param info, but none is needed. Baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool stops trace recording and saves the trace file, which is specific and distinguishes it from browser_start_tracing. However, it does not mention where or how the file is saved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. It is implied it should follow browser_start_tracing, but no explicit 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_tabsB
List, create, close, or select a browser tab
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | Tab index for close/select. If omitted for close, current tab is closed. | |
| action | Yes | Operation to perform |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description does not disclose behavioral traits such as return values, side effects of closing tabs, or focus behavior. Minimal disclosure for a multi-action tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single sentence listing operations. Concise and front-loaded, but may be too brief for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no annotations, and description lacks details on return format (e.g., list of tabs) or behavior of each action. Incomplete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with descriptions, and the description adds no additional meaning. Baseline score applies due to high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's actions (list, create, close, select) on browser tabs. It distinguishes from sibling tools which focus on other browser interactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like browser_navigate or browser_click. Lacks context for selecting appropriate action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_take_screenshotC
Take a screenshot of the current page
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Element reference to screenshot (instead of full page) | |
| type | No | Image format, defaults to png | |
| element | No | Human-readable element description | |
| filename | No | Filename to save screenshot. Auto-generated if not provided. | |
| fullPage | No | Capture full scrollable page instead of viewport |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as whether it modifies page state, requires permissions, or returns data. The description is insufficient for a mutation-like tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundancy. Although very short, it efficiently conveys the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters and no annotations or output schema, the description fails to explain important details like output format, side effects, or parameter interactions. It is not complete enough for effective tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add any parameter-specific meaning beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Take a screenshot of the current page') but does not differentiate from sibling tools like browser_snapshot or fully indicate the range of capture modes (viewport, full page, element).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., browser_snapshot, browser_pdf_save) or when not to use it. The description lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_typeB
Type text into an editable element identified by ref
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | Element reference from the page snapshot | |
| text | Yes | Text to type into the element | |
| slowly | No | Type one character at a time (for triggering key handlers) | |
| submit | No | Press Enter after typing | |
| element | No | Human-readable element description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It does not disclose whether typing overwrites or appends, whether events are triggered, or behavior of optional parameters like 'submit' that could cause navigation. Minimal beyond the action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 10 words, front-loads verb and target, no redundant information. Maximally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although concise, the description lacks important context for a 5-parameter tool: e.g., does it clear existing text? How does it handle non-editable elements? With no output schema and many sibling tools, more context is needed for correct tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already well-documented. Description adds no extra meaning or context about parameter relationships or usage, but does not need to repeat schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('type text') and target ('editable element identified by ref'), using a specific verb and resource that distinguishes it from siblings like browser_fill_form or browser_press_key.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., browser_fill_form for fill forms, browser_press_key for key presses). Does not mention prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_verify_element_visibleC
Verify an element is visible on the page
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | ARIA role of the element (e.g., 'button', 'heading') | |
| accessibleName | Yes | Accessible name of the element |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description does not disclose behavioral traits like whether the tool waits for visibility, returns a boolean, or throws an error if not visible. For a verification tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. Could be improved by front-loading key behavioral info, but it is concise and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no annotations, and minimal description. Given the tool's verification nature (likely returns boolean or throws), the description does not specify return value or error conditions, making it incomplete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for 'role' and 'accessibleName'. The description adds no extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Verify an element is visible on the page' clearly states the action (verify) and resource (element visibility). It distinguishes from siblings like 'browser_verify_text_visible' and 'browser_verify_value' by focusing on element visibility, but it does not elaborate on what 'visible' means (e.g., scrolled into view, not hidden).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'browser_verify_text_visible' or when not to use it. Lacks context such as prerequisites (element must exist) or relationship to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_verify_list_visibleB
Verify a list with specific items is visible on the page
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | Element reference pointing to the list | |
| items | Yes | Expected items in the list | |
| element | Yes | Human-readable list description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries full burden for behavioral disclosure. It only states that the tool verifies visibility, but omits details such as whether it scrolls into view, how partial visibility is handled, or error behavior. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 10 words, which is very concise. While it could be more informative, it is appropriately sized for a straightforward verification tool and does not contain extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 clarify success/failure conditions or typical behavior. The current text provides only the basic action, leaving gaps for an agent to understand what 'verify' entails in terms of return value or state changes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 100% of parameters with descriptions, so the baseline is 3. The tool description does not add new meaning beyond what is already in the schema; it merely restates the purpose of the parameters implicitly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Verify' and the resource 'a list with specific items is visible on the page'. This distinguishes it from sibling tools like browser_verify_element_visible and browser_verify_text_visible, which target single elements or text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description does not specify prerequisites, edge cases, or when not to use it, leaving the agent to infer from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_verify_text_visibleC
Verify text is visible on the page
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to verify is visible |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It does not disclose what happens if the text is not visible (error vs false), scope (entire page or viewport), or details like case sensitivity, whitespace handling, or whether it works for partial text matches.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundant words. It is concise, but the extreme brevity may sacrifice necessary detail. Structure is adequate for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required param, no output schema), the description is minimally complete. It conveys the core function but lacks details on behavior (e.g., error handling, visibility criteria) that would help an agent use it correctly. No output schema shifts burden to description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter 'text' is described as 'Text to verify is visible' in both schema and description. The description adds no additional meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Verify text is visible on the page' clearly states the action (verify) and the resource (text visibility). It distinguishes from siblings like browser_verify_element_visible (element by selector) and browser_verify_value (input value), though it could explicitly mention 'given a text string' for precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 prefer this tool over alternatives (e.g., browser_verify_element_visible for element presence, browser_verify_value for input values). There is no mention of context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_verify_valueC
Verify an element's value
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | Element reference | |
| type | Yes | Type of the element | |
| value | Yes | Expected value (for checkbox, use 'true' or 'false') | |
| element | Yes | Human-readable element description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It fails to disclose whether the tool is read-only (likely), what happens on match/mismatch (e.g., throws error or returns boolean), or if it waits for elements. Minimal transparency beyond the action name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence but under-specifies the tool's behavior. It is too terse given the tool has 4 parameters and no output schema. Conciseness should not sacrifice completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and a moderate parameter count, the description should explain return behavior and usage context. It lacks any mention of outcomes or edge cases, making it incomplete for an agent to correctly invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions, so the description adds no extra semantics beyond what the schema already provides. It does not clarify the relationship between 'ref' and 'element' or the expected format for 'value' beyond the schema's hint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it verifies an element's value, which distinguishes it from sibling tools like verify_element_visible that check visibility. However, 'value' is ambiguous—it could refer to attribute, property, or text content. The schema provides type hints, but the description lacks specificity about what constitutes a value for each type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like verify_text_visible or browser_evaluate. It does not mention prerequisites (e.g., element must be visible) or contextual cues for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_wait_forC
Wait for text to appear or disappear, or wait for a specified time
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Text to wait for on the page | |
| time | No | Time to wait in seconds | |
| textGone | No | Text to wait for to disappear |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose important behavioral details such as default timeout, polling behavior, or error handling when the text does not appear/disappear. No annotations are present to compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It is front-loaded and efficient, but could be slightly expanded for completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no output schema and three mutually exclusive parameters (implied), the description covers the main functionalities. However, it leaves ambiguity about combining parameters (e.g., both text and time) and lacks details on return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with descriptions for each parameter, so the baseline is 3. The tool description adds a high-level summary of the three waiting modes but does not provide additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool waits for text to appear, disappear, or waits a specified time. It distinguishes from sibling tools like browser_click and browser_navigate by focusing on waiting behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 waiting via code or other browser actions. No exclusions or conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
30 tool updates
v0.1.4- First observed
browser_click - First observed
browser_close - First observed
browser_console_messages - First observed
browser_drag - First observed
browser_evaluate - First observed
browser_file_upload - First observed
browser_fill_form - First observed
browser_generate_locator - First observed
browser_handle_dialog - First observed
browser_hover - First observed
browser_navigate - First observed
browser_navigate_back - First observed
browser_network_requests - First observed
browser_pdf_save - First observed
browser_press_key - First observed
browser_reset - First observed
browser_resize - First observed
browser_run_code - First observed
browser_select_option - First observed
browser_snapshot - First observed
browser_start_tracing - First observed
browser_stop_tracing - First observed
browser_tabs - First observed
browser_take_screenshot - First observed
browser_type - First observed
browser_verify_element_visible - First observed
browser_verify_list_visible - First observed
browser_verify_text_visible - First observed
browser_verify_value - First observed
browser_wait_for
TDQS
Most tools have clear distinct purposes, but browser_evaluate and browser_run_code overlap in executing JavaScript, and some verification tools could be merged. Descriptions help differentiate.
All tools follow a consistent 'browser_verb_noun' pattern with underscores, making naming predictable and readable.
30 tools is slightly high, but the domain of browser automation justifies the breadth. Some tools could be combined (e.g., verification tools) without loss.
Covers navigation, interaction, form handling, dialogs, screenshots, PDF, tracing, network, console, tabs, JS execution, and verification. Missing cookie/storage management but core workflows are fully covered.
Maintenance
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
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Live browser debugging for AI assistants — DOM, console, network via MCP.
A paid remote MCP for AI agent browser DevTools MCP, built to return verdicts, receipts, usage logs,
A paid remote MCP for AI agent browser approval MCP, built to return verdicts, receipts, usage logs,
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI agents to control a real Google Chrome instance using specific user profiles, cookies, and extensions. It provides 18 tools for browser navigation, element interaction, and page inspection via the Chrome DevTools Protocol.-
- AlicenseNot gradedqualityNot gradedmaintenanceAn extension-based MCP server that enables AI assistants to control your existing Chrome browser, leveraging your active login states and settings for automation. It provides over 20 tools for tasks like semantic tab search, screen capture, network monitoring, and direct element interaction.-
- -licenseNot gradedqualityNot gradedmaintenanceMCP server that connects AI agents to a real Chrome browser via a WebSocket extension bridge, enabling over 40 browser control tools without debug mode or profile isolation.-
- FlicenseNot gradedqualityBmaintenanceA local MCP server that connects to a Chrome extension to enable AI agents to control browser tabs, execute automation, and interact with web pages via tools.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/babelcloud/playwriter-browser-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server