BrowserTools MCP
浏览器工具 MCP
让你的 AI 工具具备 10 倍的感知能力,并能与浏览器进行交互
该应用程序是一个强大的浏览器监控和交互工具,它使 AI 驱动的应用程序能够通过 Anthropic 的模型上下文协议 (MCP) 通过 Chrome 扩展程序捕获和分析浏览器数据。
阅读我们的文档以获取完整的安装、快速入门和贡献指南。
路线图
在这里查看我们的项目路线图: Github 路线图/项目板
Related MCP server: browser-tools-mcp
更新
v1.2.0 现已发布!以下是更新的简要说明:
您现在可以在 DevTools 面板中启用“允许自动粘贴到 Cursor”功能。屏幕截图将自动粘贴到 Cursor 中(请确保将焦点/点击到 Cursor 中的 Agent 输入字段,否则将无法使用!)
通过 Lighthouse 集成了一套 SEO、性能、可访问性和最佳实践分析工具
实现了 NextJS 特定的提示,用于改善 NextJS 应用程序的 SEO
添加了调试器模式,该模式以特定顺序执行所有调试工具,并提示改进推理
添加审计模式作为按特定顺序执行所有审计工具的工具
解决了 Windows 连接问题
改进了 BrowserTools 服务器、扩展程序和 MCP 服务器之间的网络连接,具有主机/端口自动发现、自动重新连接和正常关机机制
增加了使用 Ctrl+C 更轻松地退出浏览器工具服务器的功能
请确保更新您的 IDE / MCP 客户端中的版本: npx @agentdeskai/browser-tools-mcp@1.2.0
另请确保在此处下载最新版本的 Chrome 扩展程序: v1.2.0 BrowserToolsMCP Chrome 扩展程序
从那里您可以像这样运行本地节点服务器: npx @agentdeskai/browser-tools-server@1.2.0
请务必指定版本 1.2.0,因为 NPX 缓存可能会阻止您获取最新版本!每次更新只需执行一次此操作。执行一次后,您应该已经使用最新版本了。
一旦你打开了 chrome 开发工具,日志就会被发送到你的服务器🦾
如果你有任何疑问或问题,欢迎随时提交问题单!如果你有任何改进建议,欢迎随时联系我们,提交带有增强标签的问题单,或者通过 x 联系我 @tedx_ai
完整更新说明:
像 Cursor 这样的代码代理可以无缝地针对当前页面运行这些审核。通过利用 Puppeteer 和 Lighthouse npm 库,BrowserTools MCP 现在可以:
评估页面是否符合 WCAG 标准
识别性能瓶颈
标记页面 SEO 问题
检查是否遵守 Web 开发最佳实践
审查 NextJS 与 SEO 相关的特定问题
...所有这些都无需离开你的 IDE 🎉
🔑 主要新增内容
审计类型 | 描述 |
可访问性 | 符合 WCAG 标准的检查包括颜色对比度、缺失的替代文本、键盘导航陷阱、ARIA 属性等。 |
表现 | Lighthouse 驱动的渲染阻塞资源、过大的 DOM 大小、未优化的图像以及其他影响页面速度的因素的分析。 |
搜索引擎优化 | 评估页面 SEO 因素(如元数据、标题和链接结构)并提出改进建议以提高搜索可见性。 |
最佳实践 | 检查 Web 开发中的一般最佳实践。 |
NextJS 审计 | 注入用于执行 NextJS 审核的提示。 |
审核模式 | 按顺序运行所有审计工具。 |
调试器模式 | 按顺序运行所有调试工具。 |
🛠️ 使用审计工具
✅开始之前
确保您已:
浏览器中的活动选项卡
已启用 BrowserTools 扩展
▶️运行审计
无头浏览器自动化:
Puppeteer 自动化无头 Chrome 实例来加载页面并收集审计数据,确保即使对于 SPA 或通过 JavaScript 加载的内容也能获得准确的结果。
无头浏览器实例在最后一次审计调用后保持活动状态60 秒,以有效处理连续的审计请求。
结构化结果:
每次审计都会以结构化的 JSON 格式返回结果,包括总体评分和详细问题列表。这使得兼容 MCP 的客户端能够轻松解读审计结果并提供切实可行的见解。
MCP 服务器提供了在当前页面上运行审核的工具。以下是可用于触发审核的示例查询:
无障碍审计( runAccessibilityAudit )
确保页面符合 WCAG 等可访问性标准。
示例查询:
“此页面是否存在任何可访问性问题?”
“运行可访问性审核。”
“检查此页面是否符合 WCAG 标准。”
绩效审计( runPerformanceAudit )
识别性能瓶颈和加载问题。
示例查询:
“为什么这个页面加载这么慢?”
“检查此页面的性能。”
“进行绩效审计。”
SEO 审计( runSEOAudit )
评估页面针对搜索引擎的优化程度。
示例查询:
“我该如何改进这个页面的 SEO?”
“运行 SEO 审核。”
“检查此页面的 SEO。”
最佳实践审计( runBestPracticesAudit )
检查 Web 开发中的一般最佳实践。
示例查询:
“进行最佳实践审核。”
“查看此页面上的最佳实践。”
“此页面上是否存在任何最佳实践问题?”
审核模式( runAuditMode )
按特定顺序运行所有审核。如果检测到框架,则会运行 NextJS 审核。
示例查询:
“运行审核模式。”
“进入审核模式。”
NextJS 审计( runNextJSAudit )
检查 NextJS 应用程序的最佳实践和 SEO 改进
示例查询:
“运行 NextJS 审核。”
“运行 NextJS 审核,我正在使用应用路由器。”
“运行 NextJS 审核,我正在使用页面路由器。”
调试器模式( runDebuggerMode )
按特定顺序运行所有调试工具
示例查询:
“进入调试器模式。”
建筑学
有三个核心组件均用于捕获和分析浏览器数据:
Chrome 扩展程序:捕获屏幕截图、控制台日志、网络活动和 DOM 元素的浏览器扩展程序。
节点服务器:一个中介服务器,用于促进 Chrome 扩展程序和任何 MCP 服务器实例之间的通信。
MCP 服务器:模型上下文协议服务器,为 AI 客户端与浏览器交互提供标准化工具。
┌─────────────┐ ┌──────────────┐ ┌───────────────┐ ┌─────────────┐
│ MCP Client │ ──► │ MCP Server │ ──► │ Node Server │ ──► │ Chrome │
│ (e.g. │ ◄── │ (Protocol │ ◄── │ (Middleware) │ ◄── │ Extension │
│ Cursor) │ │ Handler) │ │ │ │ │
└─────────────┘ └──────────────┘ └───────────────┘ └─────────────┘模型上下文协议 (MCP) 是 Anthropic AI 模型支持的一项功能,允许您为任何兼容的客户端创建自定义工具。Claude Desktop、Cursor、Cline 或 Zed 等 MCP 客户端可以运行 MCP 服务器,该服务器会“教导”这些客户端如何使用新工具。
这些工具可以调用外部 API,但在我们的方案中,所有日志都存储在您的本地计算机上,绝不会发送给任何第三方服务或 API。BrowserTools MCP 运行一个 NodeJS API 服务器的本地实例,该服务器与 BrowserTools Chrome 扩展程序进行通信。
BrowserTools MCP 服务器的所有使用者都使用相同的 NodeJS API 和 Chrome 扩展程序进行交互。
Chrome 扩展程序
监控 XHR 请求/响应和控制台日志
跟踪选定的 DOM 元素
将所有日志和当前元素发送到 BrowserTools 连接器
连接到 Websocket 服务器来捕获/发送屏幕截图
允许用户配置令牌/截断限制+屏幕截图文件夹路径
节点服务器
充当 Chrome 扩展程序和 MCP 服务器之间的中间件
从 Chrome 扩展程序接收日志和当前选定的元素
处理来自 MCP 服务器的请求以捕获日志、屏幕截图或当前元素
向 Chrome 扩展程序发送 Websocket 命令以捕获屏幕截图
智能截断日志中的字符串和重复对象数量以避免令牌限制
删除 cookie 和敏感标头以避免发送到 MCP 客户端中的 LLM
MCP 服务器
实现模型上下文协议
为AI客户提供标准化工具
与各种 MCP 客户端兼容(Cursor、Cline、Zed、Claude Desktop 等)
安装
安装步骤可以在我们的文档中找到:
用法
安装和配置完成后,系统允许任何兼容的 MCP 客户端:
监视浏览器控制台输出
捕获网络流量
截取屏幕截图
分析选定元素
擦除存储在我们的 MCP 服务器中的日志
运行可访问性、性能、SEO 和最佳实践审核
兼容性
适用于任何兼容 MCP 的客户端
主要为 Cursor IDE 集成而设计
支持其他 AI 编辑器和 MCP 客户端
Available Tools
14 toolsgetConsoleErrorsC
Check our browsers console errors
| 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 carries full burden. It states 'Check' which implies a read operation, but doesn't disclose behavioral traits such as whether it returns real-time or historical errors, if it requires specific browser states, or what format the output takes. The description is minimal and lacks critical context for safe invocation.
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 with no wasted words, making it appropriately concise. However, it could be more front-loaded with additional context to improve clarity without sacrificing brevity.
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 (implied by checking browser console errors) and lack of annotations and output schema, the description is incomplete. It doesn't explain what 'Check' entails (e.g., retrieval, analysis), the scope of errors, or the return format, leaving significant gaps for the agent to operate effectively.
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 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description doesn't add parameter details beyond the schema, but this is appropriate given the lack of parameters, meeting the baseline for tools with no parameters.
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 'Check our browsers console errors' states a clear verb ('Check') and resource ('browsers console errors'), but it's somewhat vague about scope and doesn't differentiate from sibling tools like getConsoleLogs or getNetworkErrors. It specifies 'console errors' but doesn't clarify if this includes all browsers or just the current session.
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 explicit guidance is provided on when to use this tool versus alternatives like getConsoleLogs or getNetworkErrors. The description implies it's for checking console errors, but doesn't specify context, prerequisites, or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getConsoleLogsC
Check our browser logs
| 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 carries full burden. It mentions 'Check' which suggests a read operation, but doesn't disclose behavioral traits such as what logs are included, format, permissions needed, or rate limits. This is a significant gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'browser logs' entail, the return format, or how it differs from sibling tools, leaving the agent with insufficient context 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?
The tool has 0 parameters with 100% schema description coverage, so no parameter information is needed. The description doesn't add param details, but this is acceptable given the baseline of 4 for zero parameters, as it doesn't need to compensate for any gaps.
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 'Check our browser logs' states a general purpose (verb+resource) but lacks specificity about what 'browser logs' means in this context. It distinguishes from some siblings like 'takeScreenshot' but not clearly from 'getConsoleErrors' or 'getNetworkLogs', making it somewhat vague.
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 like 'getConsoleErrors' or 'getNetworkLogs'. The description implies a general logging check but doesn't specify context, exclusions, or prerequisites, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getNetworkErrorsC
Check our network ERROR logs
| 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 carries the full burden of behavioral disclosure. It states the tool checks logs, implying a read-only operation, but doesn't clarify if it requires authentication, has rate limits, returns structured or raw data, or handles errors. For a tool with zero annotation coverage, this leaves significant gaps in understanding its 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, efficient sentence: 'Check our network ERROR logs'. It's front-loaded with the core action and resource, with zero wasted words. Every part of the sentence contributes to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 0 parameters, the description is minimal. It states what the tool does but lacks context on behavior (e.g., format of returned logs, error handling) or usage relative to siblings. For a tool in a set with multiple logging-related options, more guidance would improve completeness.
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 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate. Baseline is 4 for zero parameters, as the schema fully covers the absence of inputs.
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 'Check our network ERROR logs' specifies the action ('Check') and resource ('network ERROR logs'), making the purpose clear. However, it doesn't distinguish this tool from its sibling 'getNetworkLogs' (which likely retrieves all network logs, not just errors), leaving room for ambiguity. The description is not tautological but lacks sibling differentiation.
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 no guidance on when to use this tool versus alternatives. It doesn't mention siblings like 'getNetworkLogs' (for all network logs) or 'getConsoleErrors' (for console errors), nor does it specify contexts or exclusions. Usage is implied only by the tool name and description, with no explicit instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getNetworkLogsC
Check ALL our network logs
| 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 but only states the action without behavioral details. It doesn't disclose if this is read-only, destructive, requires auth, has rate limits, or what the output entails (e.g., format, pagination). This is a significant gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and the tool's potential complexity (network logs could involve large data), the description is incomplete. It lacks details on behavior, output format, or how it fits with siblings, making it inadequate for informed 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?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add param info, but that's acceptable here; baseline is 4 for zero parameters as it doesn't mislead or omit required details.
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 'Check ALL our network logs' states a clear verb ('Check') and resource ('network logs'), but it's vague about what 'Check' means (e.g., list, retrieve, inspect) and doesn't distinguish it from siblings like 'getNetworkErrors' or 'wipeLogs'. It's not tautological but lacks specificity.
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. It doesn't mention siblings like 'getNetworkErrors' for error-specific logs or 'wipeLogs' for deletion, leaving usage context implied at best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getSelectedElementB
Get the selected element from the browser
| 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 carries the full burden of behavioral disclosure. It states the action but doesn't explain what 'selected element' means (e.g., UI context, browser state), whether it's read-only or has side effects, or what the output format might be, leaving significant gaps for a tool with no structured safety hints.
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, clear sentence with no wasted words, front-loading the core action. It's appropriately sized for a simple tool with no parameters, making it efficient and easy to parse.
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 (0 params, no output schema) and lack of annotations, the description is minimal. It states what the tool does but doesn't provide enough context about behavior, output, or differentiation from siblings, making it incomplete for effective agent use despite the low 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?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add param info, but that's acceptable here; it implies no inputs are required, which aligns with the schema, earning a baseline high score for this context.
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 ('Get') and resource ('selected element from the browser'), making the tool's purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'takeScreenshot' or 'runAccessibilityAudit', which might also involve element selection, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'runAccessibilityAudit' that might audit selected elements, there's no indication of when 'getSelectedElement' is preferred or what context it's intended for, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runAccessibilityAuditB
Run an accessibility audit on 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 are provided, so the description carries the full burden of behavioral disclosure. While 'Run an accessibility audit' implies a read-only analysis operation, it doesn't specify what the audit entails, what standards it checks against, whether it modifies the page, how long it takes, what permissions are needed, or what happens to the results. For a tool with zero annotation coverage, this leaves significant behavioral questions unanswered.
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 that gets straight to the point with no wasted words. It's appropriately sized for a zero-parameter tool and front-loads the essential information about what the tool does.
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 complexity of accessibility auditing (which could involve multiple standards, detailed reporting, and specific runtime requirements), the description is insufficient. With no annotations, no output schema, and a sparse description, there's inadequate information about what the audit checks, what format results are returned in, or how comprehensive the audit is. The description doesn't compensate for the lack of structured metadata.
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 zero parameters, and schema description coverage is 100% (though trivial since there are no parameters). The description appropriately doesn't discuss parameters since none exist. With 0 parameters, the baseline score is 4, as there's nothing to document beyond what the empty schema already indicates.
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 ('Run an accessibility audit') and the target ('on the current page'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'runAuditMode', 'runBestPracticesAudit', or 'runSEOAudit', which all follow a similar 'run...audit' pattern without explaining how this accessibility audit differs from those other audit types.
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 no guidance on when to use this tool versus alternatives. With multiple audit-related siblings (accessibility, best practices, SEO, performance, NextJS), there's no indication of what makes this accessibility audit distinct or when it should be preferred over other audit tools. No prerequisites, timing considerations, or exclusion criteria are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runAuditModeB
Run audit mode to optimize our application for SEO, accessibility and performance
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 'optimizes' the application, implying a mutation or action, but doesn't clarify what this entails—whether it makes changes, generates reports, requires specific permissions, has side effects, or produces output. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's action and scope without unnecessary words. It is appropriately sized and front-loaded, with every part contributing essential 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 tool's complexity (implied by 'optimize' and multiple audit domains), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'optimize' means in practice, what the tool outputs, or how it differs from sibling tools, leaving the agent with insufficient context 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?
The tool has zero parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it appropriately doesn't mention any. A baseline of 4 is applied as per the rules for zero-parameter tools.
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 purpose with a specific verb ('run') and target ('audit mode'), and specifies the optimization domains (SEO, accessibility, performance). However, it doesn't explicitly distinguish this from sibling audit tools like runAccessibilityAudit, runPerformanceAudit, and runSEOAudit, which appear to handle individual domains separately.
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 no guidance on when to use this tool versus alternatives. It doesn't mention when this comprehensive audit should be preferred over the individual domain-specific audit tools (e.g., runAccessibilityAudit), nor does it specify prerequisites, timing, or exclusions for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runBestPracticesAuditB
Run a best practices audit on the current page
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 action but reveals nothing about what the audit entails (e.g., what standards it checks, whether it's destructive, permission requirements, output format, or execution time). For a tool with zero annotation coverage, this is a significant gap in 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, efficient sentence with zero wasted words. It's front-loaded with the core action and target, making it easy to parse. Every word earns its place by conveying essential information without redundancy.
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 complexity of an audit tool (which likely produces detailed results), the absence of annotations, no output schema, and a vague description, the description is incomplete. It doesn't explain what 'best practices' means, what the output looks like, or how it differs from other audit tools, leaving the agent with insufficient context 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?
The tool has 0 parameters, and schema description coverage is 100% (as there are no parameters to describe). The description doesn't need to add parameter information, so it appropriately avoids discussing parameters. A baseline of 4 is applied since no parameters exist, and the description doesn't introduce unnecessary parameter details.
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 ('run a best practices audit') and target ('on the current page'), providing a specific verb+resource combination. However, it doesn't differentiate this audit tool from sibling audit tools like runAccessibilityAudit, runPerformanceAudit, or runSEOAudit, which would require specifying what type of best practices it covers.
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 minimal context by specifying 'on the current page,' but offers no guidance on when to use this tool versus alternative audit tools (e.g., runAccessibilityAudit), when not to use it, or any prerequisites. This leaves the agent with insufficient information to choose between similar sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runDebuggerModeC
Run debugger mode to debug an issue in our application
| 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 carries the full burden of behavioral disclosure. It states the tool runs debugger mode but doesn't explain what this entails—e.g., whether it's interactive, what data it collects, if it requires specific permissions, or how it affects the application state. For a tool with zero annotation coverage, this is a significant gap in 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, efficient sentence: 'Run debugger mode to debug an issue in our application'. It's front-loaded with the core action and purpose, with no wasted words. However, it could be slightly more structured by explicitly stating the outcome or scope.
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 complexity implied by 'debugger mode' and the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns, how it behaves, or its interaction with the application. For a diagnostic tool with no structured support, more detail is needed to guide 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?
The input schema has 0 parameters with 100% coverage, so no parameters need documentation. The description doesn't add parameter details, which is appropriate here. Baseline is 4 for zero parameters, as there's nothing to compensate for, and the description doesn't mislead about inputs.
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 the tool's purpose as 'Run debugger mode to debug an issue in our application', which provides a general verb ('Run debugger mode') and goal ('debug an issue'). However, it's vague about what 'debugger mode' specifically entails and doesn't differentiate from siblings like 'runAuditMode' or 'runPerformanceAudit', which also involve running diagnostic modes. It avoids tautology but lacks specificity.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context (e.g., when debugging is needed), or exclusions, and fails to reference sibling tools like 'getConsoleErrors' or 'runAuditMode' that might be related. This leaves the agent with minimal direction for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runNextJSAuditD
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
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?
Tool has no description.
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?
Tool has no 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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runPerformanceAuditB
Run a performance audit on 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 are provided, so the description carries the full burden. It states the action but doesn't disclose behavioral traits such as what the audit entails, whether it's destructive, if it requires specific permissions, or what the output looks like. For a tool with zero annotation coverage, this leaves significant gaps in understanding its operation.
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, clear sentence with zero waste. It's front-loaded and efficiently conveys the core purpose without extra verbiage, making it easy to parse and understand immediately.
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 annotations and output schema, the description is incomplete. It doesn't explain what a 'performance audit' entails, what results to expect, or how it differs from other audit tools. For a tool with no structured data to fall back on, more context is needed to make it actionable for an 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 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here. A baseline of 4 is applied since there are no parameters to document, and the description doesn't introduce unnecessary complexity.
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 ('run a performance audit') and target ('on the current page'), which is specific and unambiguous. However, it doesn't differentiate from sibling audit tools like 'runAccessibilityAudit' or 'runSEOAudit'—it merely states what it does without explaining how it differs from other audit types.
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 lacks context about prerequisites (e.g., whether a page must be loaded), exclusions, or comparisons to siblings like 'runBestPracticesAudit' or 'runAuditMode'. It's a standalone statement with no usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runSEOAuditB
Run an SEO audit on the current page
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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. While 'run an SEO audit' implies a read-only analysis operation, the description doesn't specify what the audit actually does, what metrics it examines, whether it requires page load completion, what format results come in, or any performance implications. Significant behavioral details 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?
The description is a single, efficient sentence that communicates the essential action and target. There's no wasted language, repetition, or unnecessary elaboration. It's appropriately sized for a zero-parameter 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?
For a zero-parameter audit tool with no output schema, the description provides the minimum viable information about what the tool does. However, it lacks details about what the audit examines, what results to expect, or how it differs from other audit tools. Given the complexity of SEO auditing and the absence of output schema, more context would be helpful.
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 zero parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't discuss parameters since none exist, and it correctly implies the audit runs on the 'current page' without needing additional inputs.
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 ('run an SEO audit') and target ('on the current page'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from sibling audit tools like 'runAccessibilityAudit' or 'runPerformanceAudit' beyond the SEO focus, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'runAccessibilityAudit' or 'runPerformanceAudit'. It doesn't specify prerequisites, timing considerations, or when this audit would be most appropriate versus other audit types available on the server.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
takeScreenshotB
Take a screenshot of the current browser tab
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral context. It states what the tool does but doesn't disclose important traits like whether it requires specific permissions, how it handles errors, what format the screenshot returns, or if it affects browser state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple tool and front-loads the essential information without unnecessary elaboration.
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 no annotations and no output schema, the description is insufficiently complete. It doesn't explain what the tool returns (image format, size, encoding) or important behavioral aspects like error conditions, making it inadequate for an agent to use confidently.
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 0 parameters with 100% schema description coverage, so the schema already fully documents the lack of inputs. The description doesn't need to add parameter information, and it correctly implies no parameters are required for this operation.
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 ('take a screenshot') and target ('current browser tab'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'getSelectedElement' or 'runAuditMode' which might also capture visual elements in different contexts.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., browser must be open), exclusions, or how it differs from sibling tools that might capture visual data in other ways.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wipeLogsB
Wipe all browser logs from memory
| 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 carries the full burden of behavioral disclosure. It states the action ('wipe') and target ('all browser logs from memory'), implying a destructive operation, but doesn't clarify if this is reversible, requires specific permissions, affects performance, or has side effects. For a mutation tool with zero annotation coverage, 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?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core action and resource, making it easy to parse. Every word earns its place, and there's 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 the tool's destructive nature, lack of annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like irreversibility, error handling, or what happens after wiping (e.g., confirmation, side effects). For a mutation tool in this context, more detail is needed to guide safe usage.
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 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here. A baseline of 4 is applied since no parameters exist, and the description doesn't introduce unnecessary complexity.
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 ('wipe') and resource ('all browser logs from memory'), making the purpose specific and understandable. It doesn't explicitly distinguish from siblings like 'getConsoleLogs' or 'getNetworkLogs', but the destructive nature of 'wipe' versus the read-only 'get' operations provides implicit differentiation.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, consequences, or suggest when to use read-only sibling tools like 'getConsoleLogs' instead. The agent must infer usage from the tool name and context alone.
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.
5 tool updates
v1.0.0- Changed
runAccessibilityAudit1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
runBestPracticesAudit1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
runNextJSAudit1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
runPerformanceAudit1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
runSEOAudit1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
14 tool updates
- First observed
getConsoleErrors - First observed
getConsoleLogs - First observed
getNetworkErrors - First observed
getNetworkLogs - First observed
getSelectedElement - First observed
runAccessibilityAudit - First observed
runAuditMode - First observed
runBestPracticesAudit - First observed
runDebuggerMode - First observed
runNextJSAudit - First observed
runPerformanceAudit - First observed
runSEOAudit - First observed
takeScreenshot - First observed
wipeLogs
TDQS
There is significant overlap between tools like getConsoleErrors/getConsoleLogs and getNetworkErrors/getNetworkLogs, which could cause confusion about which to use for specific error-checking tasks. Additionally, the various audit tools (runAccessibilityAudit, runBestPracticesAudit, runPerformanceAudit, runSEOAudit) have clear distinctions in purpose but share similar naming patterns that might lead to misselection if the agent doesn't carefully read descriptions. The tool descriptions help differentiate them, but the boundaries between console/network tools and between different audit types aren't perfectly clear.
Most tools follow a consistent verb_noun pattern (getConsoleErrors, getNetworkLogs, runAccessibilityAudit, takeScreenshot), which makes them predictable and readable. The main deviation is runAuditMode and runDebuggerMode, which use 'Mode' suffix instead of a specific noun, but they still fit the overall verb-first convention. All tools use camelCase consistently, with no mixing of naming styles.
14 tools is reasonable for a browser testing/auditing server, covering console inspection, network monitoring, element selection, various audits, and screenshot capabilities. While slightly on the higher side, each tool appears to serve a distinct function in the browser testing domain. The count feels comprehensive without being overwhelming for the apparent scope of browser automation and auditing.
The toolset covers many browser inspection and auditing functions but has notable gaps. There's no navigation or interaction tools (like clickElement, navigateToUrl, fillForm), which are fundamental for browser automation. The audit tools are comprehensive but the lack of basic browser control operations means agents would need to work around significant limitations. The surface feels specialized for auditing and logging rather than complete browser automation.
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
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Hosted browser for AI agents: screenshots, post-JS DOM, console, WCAG. No install, no API key.
Live browser debugging for AI assistants — DOM, console, network via MCP.
AI-powered web automation. Navigate websites using AI agents for one page or a thousand
Related MCP Servers
- AlicenseCqualityDmaintenanceA browser monitoring and interaction tool that enables AI applications to capture and analyze browser data through a Chrome extension via Anthropic's Model Context Protocol.14101MIT
- AlicenseNot gradedqualityAmaintenanceThis application is a powerful browser monitoring and interaction tool that enables AI-powered applications via Anthropic's Model Context Protocol (MCP) to capture and analyze browser data through a Chrome extension.7,304MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to control and inspect a live Chrome browser for automated web debugging, performance analysis, and Lighthouse audits. It allows agents to capture screenshots, monitor network requests, and measure Core Web Vitals using plain-English prompts.1,465,302Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to inspect web pages, monitor network requests, extract HTML, analyze console output, and examine DOM elements in real-time through a Playwright-powered browser.197MIT
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/oenius/browser-tools-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server