DrissionPageMCPServer_Modified
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., "@DrissionPageMCPServer_Modifiednavigate to github.com and take a screenshot of the trending page"
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.
DrissionPageMCPServer_Modified
基于 DrissionPage-MCP-Server 二次开发的 MCP 服务,为 AI 助手提供强大的浏览器自动化能力。
✨ 核心特性
🌐 浏览器自动化 - 页面导航、元素操作、截图等完整功能
🔧 MCP协议支持 - 与AI助手无缝集成的标准化接口
📸 截图与DOM - 页面分析、元素定位、结构获取
🚀 异步高性能 - 基于FastMCP框架的高效服务
🛠️ 17工具集 - 涵盖浏览器管理到文件处理的全方位功能
Related MCP server: Browser MCP
🚀 快速开始
安装
# 克隆项目
git clone https://github.com/YourUsername/DrissionPageMCPServer_Modified.git
cd DrissionPageMCPServer_Modified/
# 使用 uv 同步环境
uv sync启动服务
# 启动MCP服务(STDIO模式)
drissionpage-mcp在AI助手中配置
在 Trae AI IDE 中添加 MCP 服务配置:
{
"mcpServers": {
"drissionpage-mcp": {
"command": "<YOUR_PATH>\\DrissionPageMCPServer_Modified\\.venv\\Scripts\\python.exe",
"args": ["-m", "drissionpage_mcp.main"],
"env": {
"PYTHONPATH": "<YOUR_PATH>\\DrissionPageMCPServer_Modified\\src"
}
}
}
}
📱 使用案例
网页自动化操作
复杂页面交互
基本使用示例
# 连接浏览器
result = await connect_browser(port=9222, headless=False)
# 导航并截图
result = await navigate("https://example.com")
result = await take_screenshot("page.png")
# 元素操作
result = await click_element("#submit-button")
result = await input_text("#username", "your_username")🛠️ MCP 工具列表
分类 | 工具 | 功能描述 |
🌐 浏览器管理 | 1. | 连接/启动浏览器 |
2. | 创建新标签页 | |
3. | 页面导航 | |
🎯 元素操作 | 4. | 点击元素 |
5. | 输入文本 | |
6. | 获取元素文本内容 | |
7. | 获取页面完整文本内容 | |
📸 截图功能 | 8. | 页面/元素截图 |
9. | 获取截图数据 | |
🌳 DOM操作 | 10. | 获取DOM树结构 |
11. | 查找页面元素 | |
🔍 网络监控 | 12. | 启用网络监控 |
13. | 获取网络日志 | |
📁 文件操作 | 14. | 保存页面源码 |
15. | 获取Cookies | |
⚡ 高级功能 | 16. | 执行JavaScript |
17. | 执行CDP命令 |
🌐 浏览器支持
支持所有 Chromium 内核浏览器:
Chrome(推荐)- 自动检测系统安装
Edge - 作为备选自动检测
其他 Chromium 浏览器 - 通过环境变量指定路径
项目会自动检测并使用系统中的 Chrome,如果未安装则使用 Edge。
⚙️ 环境配置
# 基本配置
export DRISSIONPAGE_MCP_LOG_LEVEL=INFO
export DRISSIONPAGE_MCP_HEADLESS=false
export DRISSIONPAGE_MCP_TIMEOUT=30
# 指定浏览器路径(可选,支持Chrome/Edge/其他Chromium浏览器)
export DRISSIONPAGE_MCP_BROWSER_PATH=/path/to/chrome
# 其他路径配置(可选)
export DRISSIONPAGE_MCP_DOWNLOAD_PATH=/path/to/downloads
export DRISSIONPAGE_MCP_SCREENSHOT_PATH=/path/to/screenshots🏗️ 项目架构
DrissionPageMCPServer_Modified/
├── .github/ # GitHub 配置
├── docs/ # VitePress 文档站点
├── src/drissionpage_mcp/ # 源代码
│ ├── config/ # 配置模块
│ ├── core/ # 核心功能(浏览器、元素、网络)
│ ├── services/ # 服务层(CDP、DOM、截图)
│ ├── utils/ # 工具模块
│ └── main.py # MCP 服务入口
├── tests/ # 测试
├── pyproject.toml # 项目配置
├── requirements.txt # 依赖
└── uv.lock # 依赖锁定📚 文档
📖 原项目文档 - 完整的项目文档
🔧 故障排除
问题 | 解决方案 |
🌐 浏览器连接失败 | 确保Chrome已安装,检查调试端口配置 |
🎯 元素找不到 | 检查选择器,等待页面加载,使用更具体选择器 |
📸 截图失败 | 检查磁盘空间、文件权限、截图目录 |
🔍 网络监控无数据 | 确保已启用监控,检查过滤条件 |
# 启用调试日志
drissionpage-mcp --log-level DEBUG🤝 贡献
欢迎提交 Issue 和 Pull Request!
Fork 项目 → 2. 创建分支 → 3. 提交更改 → 4. 推送分支 → 5. 创建 PR
📄 许可证
MIT License - 详见 LICENSE 文件
📖 参考项目
DrissionPage-MCP-Server - 原项目
DrissionPage - 底层浏览器自动化库
📧 联系方式
如有问题或建议,请联系:cfx_software@163.com
Available Tools
17 toolsclick_elementA
点击页面元素(智能优化版)
⚠️ 重要提示:使用此工具前,请务必遵循标准化工作流程:
1. 📸 先使用 take_screenshot() 确认目标元素存在
2. 🔍 使用 get_dom_tree() 或 find_elements() 分析页面结构
3. 🎯 基于准确信息构建选择器,禁止猜测元素名称
🎯 选择器优先级(推荐顺序):
- ID选择器:#element-id (最优先)
- CSS类选择器:.class-name
- 属性选择器:[data-testid="value"]
- XPath选择器://div[@class="example"]
- 文本匹配:仅作为辅助手段
Args:
selector: 元素选择器(禁止猜测,必须基于实际DOM结构)
selector_type: 选择器类型 (css, xpath, text)
index: 元素索引(当有多个匹配时,从0开始)
smart_feedback: 是否启用智能反馈(推荐True)
Returns:
str: 操作结果和反馈信息
💡 最佳实践示例:
- 正确:先 find_elements("button") 确认按钮存在,再 click_element("#submit-btn")
- 错误:直接 click_element("#可能存在的按钮") 而不确认元素
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | ||
| selector_type | No | css | |
| index | No | ||
| smart_feedback | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does an excellent job disclosing behavioral traits. It explains the smart optimization aspect, provides selector priority recommendations, warns against guessing selectors, and includes best practice examples showing correct vs. incorrect usage patterns. The only minor gap is lack of explicit mention about what happens on failure scenarios.
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 appropriately front-loaded with the purpose and critical warnings, but contains some organizational inefficiencies. The emoji decorations and formatting with multiple sections (workflow, selector priority, args, returns, best practices) create visual clutter. While all content is valuable, the presentation could be more streamlined for an AI agent.
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 a browser automation tool with 4 parameters, no annotations, and an output schema, the description is remarkably complete. It covers purpose, prerequisites, usage workflow, parameter guidance, selector strategies, best practices, and includes return value information. The presence of an output schema means the description doesn't need to detail return values, and it appropriately focuses on usage 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?
With 0% schema description coverage, the description fully compensates by providing detailed parameter semantics. It explains all 4 parameters: selector (with strict requirements against guessing), selector_type (with recommended types and priority order), index (explains it's zero-based for multiple matches), and smart_feedback (recommends True). This adds significant value beyond the bare 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's purpose as '点击页面元素(智能优化版)' which translates to 'click page element (smart optimized version)'. It specifies the exact action (click) and resource (page element), and distinguishes itself from siblings like find_elements or get_element_text by focusing on the clicking action with smart optimization features.
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 explicit usage guidelines with a standardized workflow: 1) use take_screenshot to confirm element existence, 2) use get_dom_tree or find_elements to analyze page structure, 3) build selectors based on accurate information. It also specifies when NOT to use the tool ('禁止猜测元素名称' - no guessing element names) and references sibling tools for prerequisite steps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connect_browserB
连接到浏览器或启动新浏览器
Args:
port: 调试端口,默认9222
headless: 无头模式(不显示浏览器窗口)
incognito: 无痕/隐私模式
user_data_dir: 用户数据目录
带超时控制,默认20秒超时。
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | ||
| headless | No | ||
| incognito | No | ||
| user_data_dir | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It adds valuable context about timeout control (default 20 seconds) which isn't in the schema, and implies the tool can either connect to an existing browser or launch a new one. However, it doesn't disclose important behavioral traits like error conditions (what happens if connection fails), whether this establishes a persistent session, or what permissions/requirements are needed.
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 appropriately sized with a clear purpose statement followed by parameter explanations. However, it's not optimally front-loaded - the timeout information appears at the end rather than integrated with the purpose. The parameter explanations are clear but could be more efficiently integrated with the main 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?
Given this is a browser connection/initialization tool with 4 parameters, 0% schema coverage, no annotations, but with an output schema (which reduces need to describe return values), the description is moderately complete. It covers the basic purpose and parameters but lacks important context about when to use it, error handling, and session management that would be helpful 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?
With 0% schema description coverage, the description must compensate for the schema's lack of parameter documentation. It successfully adds semantic meaning for all 4 parameters: explaining what 'port' is for debugging, defining 'headless' as no browser window display, clarifying 'incognito' as private mode, and identifying 'user_data_dir' as user data directory. This provides essential context beyond the bare schema titles.
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 as '连接到浏览器或启动新浏览器' (connect to browser or launch new browser), which is a specific verb+resource combination. It distinguishes itself from sibling tools like 'navigate' or 'new_tab' by focusing on browser connection/initialization rather than page navigation or tab management. However, it doesn't explicitly differentiate from all possible alternatives in the sibling list.
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., whether a browser must already be running), when to choose connection vs. launch, or when to use this versus other browser-related tools in the sibling list. The agent receives no contextual usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enable_network_monitoringD
启用网络监控
Args:
filter_types: 需要监听的mimeType类型列表
Returns:
str: 启用结果
| Name | Required | Description | Default |
|---|---|---|---|
| filter_types | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 fails to describe whether this is a read or write operation, what permissions or browser state are required, whether it's destructive, what side effects occur, or how the monitoring persists. The description only states the action and basic input/output without behavioral context.
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 brief and structured with Args and Returns sections, which is efficient. However, the purpose statement is overly simplistic, and the parameter explanation lacks depth. While concise, it under-specifies rather than being optimally informative.
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 enabling network monitoring (a likely state-changing operation) with no annotations and an output schema that only indicates a string return, the description is incomplete. It doesn't explain what '启用结果' (enable result) entails, how monitoring interacts with other tools, or what behavioral changes occur, leaving the agent with insufficient 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 description coverage is 0%, so the description must compensate. It mentions 'filter_types: 需要监听的mimeType类型列表' (filter_types: list of mimeType types to monitor), which adds some meaning about what the parameter controls. However, it doesn't explain what mimeTypes are relevant, provide examples, or clarify the format, leaving significant gaps in 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?
The description states '启用网络监控' (enable network monitoring), which is a tautology that restates the tool name without specifying what network monitoring entails or what resource it affects. It doesn't distinguish this tool from sibling tools like 'get_network_logs' or clarify what 'network monitoring' means in this context.
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 'get_network_logs' or other browser-related tools. There's no mention of prerequisites, timing considerations, or exclusions that would help an agent decide when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_javascriptD
执行JavaScript代码
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| return_result | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 but provides none. It doesn't mention whether this is a read or write operation, what permissions or contexts are required, what happens if the JavaScript has errors, whether there are security restrictions, timeouts, or any other behavioral characteristics. For a tool that executes arbitrary code, this is a critical 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 extremely concise - a single phrase in Chinese. While it's arguably too brief for adequate documentation, it's not wordy or repetitive. Every word earns its place, and there's no fluff or unnecessary elaboration. The structure is straightforward, though minimal.
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 that this is a code execution tool with 2 parameters, no annotations, and 0% schema description coverage, the description is woefully incomplete. While there is an output schema (which might help with understanding return values), the description doesn't provide the essential context needed to use this tool safely and effectively. It doesn't explain the execution environment, security implications, error handling, or any other critical context for running JavaScript code.
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?
With 0% schema description coverage (neither parameter has descriptions in the schema), the description provides no information about the two parameters. The description doesn't mention the 'code' parameter that's required, nor the optional 'return_result' boolean parameter. For a tool with 2 parameters that are completely undocumented in the schema, the description fails to compensate by explaining what these parameters mean or how they should be used.
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 '执行JavaScript代码' (Execute JavaScript code) is a tautology that essentially restates the tool name 'execute_javascript' in Chinese. While it does specify the verb ('执行' - execute) and resource ('JavaScript代码' - JavaScript code), it doesn't differentiate this tool from potential alternatives or provide any context about what kind of JavaScript execution this involves. It's minimally informative but doesn't go beyond restating the obvious.
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 absolutely no guidance about when to use this tool versus alternatives. There are multiple sibling tools related to browser automation (click_element, navigate, get_cookies, etc.), but the description doesn't indicate whether this executes JavaScript in a browser context, server context, or elsewhere. No prerequisites, limitations, or alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_elementsA
查找页面元素(智能定位工具)
⚠️ 精确定位工具:基于DOM分析结果进行元素查找!
🎯 主要用途:
1. 🔍 基于get_dom_tree()结果,精确定位目标元素
2. 📋 验证元素存在性和可访问性
3. 🎯 获取元素的详细属性信息(id、class、text等)
4. 🛠️ 为后续操作提供准确的选择器
💡 选择器类型优先级:
1. CSS选择器:#id、.class、[attribute](推荐)
2. XPath://div[@class='example'](复杂定位)
3. 文本匹配:"按钮文字"(辅助手段)
Args:
selector: 元素选择器(必须基于实际DOM结构)
selector_type: 选择器类型(css/xpath/text)
limit: 返回元素数量限制(避免结果过多)
include_similar: 是否包含相似元素(智能匹配)
Returns:
str: 匹配元素的详细信息列表
🚀 最佳实践:
- 先用get_dom_tree()分析页面结构
- 基于结构信息构建精确选择器
- 验证找到的元素是否为目标元素
- 将结果用于click_element()或input_text()操作
Returns:
str: 查找结果
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | ||
| selector_type | No | css | |
| limit | No | ||
| include_similar | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing behavioral traits: it explains the tool is for '精确定位' (precise positioning) based on DOM analysis, mentions '智能匹配' (intelligent matching) with include_similar parameter, describes return format as '匹配元素的详细信息列表' (detailed information list of matched elements), and provides practical constraints like '避免结果过多' (avoid too many results) with limit parameter. It doesn't cover error cases or performance characteristics, keeping it from a perfect score.
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 appropriately sized but not optimally structured: it uses emoji sections and has duplicate 'Returns' sections (appearing twice with slightly different wording). While most content is valuable, the repetition and decorative formatting reduce efficiency. The information is front-loaded with purpose and usage, but the structure could be more streamlined.
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 4 parameters with no schema descriptions, no annotations, but with output schema (implied by 'Returns' statements), the description provides good completeness: it covers purpose, usage workflow, parameter semantics, and integration with sibling tools. However, it doesn't explicitly describe error conditions or what happens when no elements match, and the duplicate Returns sections create minor confusion about output format.
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?
With 0% schema description coverage, the description fully compensates by providing rich semantic context for all 4 parameters: it explains selector must be '基于实际DOM结构' (based on actual DOM structure), selector_type has three specific types with usage guidance (CSS recommended, XPath for complex, text as auxiliary), limit prevents '结果过多' (too many results), and include_similar enables '智能匹配' (intelligent matching). This adds significant meaning beyond the bare 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's purpose as '查找页面元素(智能定位工具)' (find page elements - intelligent positioning tool) and elaborates with specific verbs like '精确定位目标元素' (precisely locate target elements), '验证元素存在性和可访问性' (verify element existence and accessibility), and '获取元素的详细属性信息' (get detailed element attribute information). It distinguishes from siblings like get_dom_tree (which analyzes structure) and click_element/input_text (which perform actions on found 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?
The description provides explicit guidance on when to use this tool: '基于DOM分析结果进行元素查找' (based on DOM analysis results for element finding) and '先用get_dom_tree()分析页面结构' (first use get_dom_tree() to analyze page structure). It also specifies when to use alternatives by mentioning selector type priorities (CSS for recommended cases, XPath for complex cases, text matching as auxiliary). The '最佳实践' (best practices) section clearly outlines the workflow context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cookiesB
获取当前页面的Cookies
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 what the tool does but doesn't describe how it behaves: e.g., whether it returns all cookies or filtered ones, if it requires specific permissions, potential rate limits, or error conditions. For a tool with zero annotation coverage, this is a significant gap, meriting a 2.
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: '获取当前页面的Cookies'. It's front-loaded with the core purpose, has zero wasted words, and is appropriately sized for a simple tool. This earns a 5 for 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 the tool's simplicity (0 parameters, output schema exists), the description is minimally adequate. However, with no annotations and siblings like connect_browser that suggest prerequisites, it lacks context on dependencies or behavioral details. The output schema helps, but the description doesn't fully compensate for missing behavioral transparency, resulting in a 3.
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%, so there are no parameters to document. The description doesn't need to add parameter semantics, but it correctly implies no inputs are required. Given the baseline for 0 parameters is 4, this scores a 4.
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 as '获取当前页面的Cookies' (Get the current page's cookies), which is a specific verb+resource combination. It distinguishes itself from siblings like get_element_text or get_page_text by focusing on cookies rather than DOM content. However, it doesn't explicitly differentiate from all siblings (e.g., get_network_logs might also involve cookie data), keeping it at a 4 rather than a 5.
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., needing an active browser session via connect_browser), nor does it specify scenarios where cookies are relevant over other data sources. With no usage context provided, this scores a 2.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dom_treeA
获取DOM树结构(结构化分析工具)
⚠️ 核心分析工具:这是标准化工作流程的第3步!
🎯 主要用途:
1. 📋 获取页面的层次化结构信息
2. 🔍 为元素定位提供精确的选择器路径
3. 🎯 分析页面布局,理解元素间的父子关系
4. 🛠️ 为非多模态LLM提供详细的结构化信息
💡 与其他工具的协作:
- 在 take_screenshot() 和 get_page_text() 之后使用
- 为 find_elements() 提供选择器构建依据
- 配合 get_element_text() 验证元素内容
Args:
selector: 起始选择器(默认"body"获取整个页面结构)
max_depth: 最大遍历深度(默认10层,避免过深嵌套)
Returns:
str: 结构化的DOM树信息,包含标签、属性、层级关系
🚀 使用建议:
- 首次分析页面:使用默认参数获取完整结构
- 聚焦特定区域:指定具体的selector缩小范围
- 复杂页面:适当减少max_depth避免信息过载
| Name | Required | Description | Default |
|---|---|---|---|
| selector | No | body | |
| max_depth | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It effectively describes the tool's behavior: it's an analysis tool that returns structured DOM tree information with tags, attributes, and hierarchical relationships. It warns about potential information overload with complex pages and suggests reducing max_depth. However, it doesn't mention performance characteristics, error conditions, or what happens with invalid selectors.
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 well-structured with clear sections (core analysis tool, main purposes, tool collaboration, args, returns, usage suggestions) but contains some redundancy and could be more concise. The emoji decorations and formatting add visual clarity but don't contribute essential information. The content is front-loaded with purpose information, but some sections like the four main purposes could be more succinctly expressed.
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 (DOM tree analysis with 2 parameters) and the presence of an output schema (which covers return values), the description is remarkably complete. It covers purpose, workflow positioning, collaboration with other tools, parameter semantics, usage scenarios, and behavioral considerations. The description compensates for the lack of annotations and 0% schema description coverage by providing comprehensive context about how and when to use this tool 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 description adds significant semantic meaning beyond the input schema, which has 0% description coverage. It explains that 'selector' is the '起始选择器' (starting selector) with default 'body' to get the entire page structure, and 'max_depth' controls '最大遍历深度' (maximum traversal depth) with default 10 to avoid deep nesting. It provides practical guidance on when to use each parameter, including using default for initial analysis, specifying selector to focus on specific areas, and reducing max_depth for complex pages.
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 '获取DOM树结构' (gets DOM tree structure) with specific verbs like '获取' (get/acquire) and '分析' (analyze). It distinguishes from siblings by focusing on structured hierarchical analysis rather than screenshots, text extraction, or element interaction. The description explicitly lists four main purposes including obtaining hierarchical structure, providing selector paths, analyzing layout relationships, and supplying structured information to non-multimodal LLMs.
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 explicit guidance on when to use this tool versus alternatives. It states this is '标准化工作流程的第3步' (step 3 of the standardized workflow) and should be used '在 take_screenshot() 和 get_page_text() 之后' (after take_screenshot() and get_page_text()). It also specifies collaboration with other tools like find_elements() and get_element_text(), and provides three specific usage scenarios with recommendations for different contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_element_textA
获取元素文本内容(精确定位版)
⚠️ 重要提示:这是预处理工具,用于获取精确的元素信息!
使用场景:
1. 🔍 在点击或输入操作前,验证目标元素的实际文本内容
2. 📋 获取页面动态内容,如表格数据、状态信息等
3. ✅ 确认元素存在性和可见性
🎯 选择器构建原则:
- 必须基于 get_dom_tree() 或 find_elements() 的结果
- 禁止猜测元素选择器
- 优先使用ID、class、属性选择器
Args:
selector: 元素选择器(必须基于实际DOM结构)
Returns:
str: 元素的文本内容,如果元素不存在则返回错误信息
💡 最佳实践示例:
- 正确:先 find_elements(".status") 确认元素,再 get_element_text(".status")
- 错误:直接 get_element_text("#可能的状态元素") 而不确认
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing important behavioral traits: it explains this is a preprocessing tool for precise element information, describes what happens when elements don't exist (returns error message), and provides selector construction principles. It doesn't mention rate limits or authentication needs, but covers most essential behavioral aspects.
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 well-structured with clear sections (important note, use cases, selector principles, args/returns, best practices) but could be more concise. Some sections like the best practice examples are helpful but slightly verbose. Overall, most content earns its place by providing valuable guidance.
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 (element interaction with precise selectors), no annotations, and an output schema that only specifies return type, the description provides excellent completeness. It covers purpose, usage guidelines, behavioral context, parameter semantics, and best practices - everything needed for an agent to use this tool correctly in the context of sibling browser automation tools.
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?
With 0% schema description coverage for the single parameter, the description fully compensates by providing rich semantic context: it explains the selector must be based on actual DOM structure from get_dom_tree() or find_elements(), gives construction principles (prioritize ID, class, attribute selectors), and warns against guessing selectors. This adds substantial meaning beyond the bare 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's purpose as '获取元素文本内容(精确定位版)' (get element text content - precise positioning version), specifying both the verb (get) and resource (element text content). It distinguishes from sibling tools like get_page_text by emphasizing precise element-level retrieval rather than whole-page text extraction.
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 explicit guidance on when to use this tool versus alternatives: it lists three specific use cases (verifying text before click/input, getting dynamic content, confirming element existence/visibility) and gives clear best practice examples showing when to use this tool versus find_elements. It also explicitly states this is a '预处理工具' (preprocessing tool).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_network_logsB
获取网络请求日志
Args:
limit: 返回日志的最大数量
Returns:
str: 网络日志数据
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 what the tool returns ('网络日志数据') but doesn't describe format, structure, or content of the logs. It also doesn't mention whether this requires specific permissions, has rate limits, or depends on other tools being called first (like enabling network monitoring).
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 appropriately concise with a clear purpose statement followed by structured Args and Returns sections. Every sentence serves a purpose: the title explains what the tool does, and the parameter/return documentation provides 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?
Given that there's an output schema (which handles return value documentation), the description doesn't need to explain return values in detail. However, for a tool that fetches network logs with no annotations, the description should ideally mention dependencies (like needing network monitoring enabled) or format expectations. It's minimally adequate but has clear 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?
The description explicitly documents the single parameter 'limit' and explains its purpose ('返回日志的最大数量'), which adds meaningful context beyond what the schema provides (schema description coverage is 0%). Since there's only one parameter and it's fully explained in the description, this earns a high score despite the schema's lack of descriptions.
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 as '获取网络请求日志' (get network request logs), which is a specific verb+resource combination. However, it doesn't differentiate this tool from potential sibling tools like 'enable_network_monitoring' or 'run_cdp_command' that might also interact with network data, 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. There are no explicit instructions about prerequisites (like needing network monitoring enabled first), timing considerations, or comparisons to sibling tools such as 'enable_network_monitoring' or 'run_cdp_command' that might handle network data differently.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_textA
获取页面完整文本内容(预处理必备工具)
⚠️ 核心预处理工具:这是标准化工作流程的第2步!
🔧 主要用途:
1. 🔍 在操作元素前,获取页面的完整文本信息
2. 📋 为非多模态LLM提供详细的页面内容描述
3. 🎯 帮助构建精确的元素选择器
4. ✅ 确认页面加载完成和内容可用性
💡 与其他工具的配合使用:
- 配合 take_screenshot():视觉+文本双重确认
- 配合 get_dom_tree():结构化分析页面布局
- 配合 find_elements():基于文本内容定位元素
Returns:
str: 页面的完整可见文本内容(去除HTML标签)
🚀 推荐工作流程:
1. take_screenshot() - 获取页面截图
2. get_page_text() - 获取页面文本(当前步骤)
3. get_dom_tree() - 分析页面结构
4. 基于以上信息执行具体操作
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 effectively describes what the tool does: returns '页面的完整可见文本内容(去除HTML标签)' (complete visible page text content with HTML tags removed). It mentions the tool helps '确认页面加载完成和内容可用性' (confirm page loading completion and content availability), which adds useful context about its role in validation. However, it doesn't specify potential limitations like performance impact or text encoding issues.
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 well-structured with clear sections (core tool warning, main uses, tool coordination, returns, workflow), but it's somewhat verbose with emojis and formatting that don't add essential information. While informative, it could be more concise by reducing decorative elements and focusing on the core content.
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 0 parameters, no annotations, but has an output schema (returns str), the description provides excellent contextual completeness. It thoroughly explains the tool's purpose, when to use it, how it fits with sibling tools, and what it returns. The output schema handles return value documentation, so the description appropriately focuses on usage context rather than repeating output details.
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 baseline is 4. The description appropriately doesn't discuss parameters since none exist, focusing instead on the tool's purpose and usage 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 tool's purpose as '获取页面完整文本内容' (get complete page text content) and distinguishes it from siblings by emphasizing it's a '核心预处理工具' (core preprocessing tool) for standardized workflows. It specifies this is step 2 in the workflow, differentiating from tools like get_element_text (specific elements) or get_dom_tree (structured analysis).
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 explicit guidance on when to use this tool: '在操作元素前' (before operating on elements), '为非多模态LLM提供详细的页面内容描述' (to provide detailed page content descriptions for non-multimodal LLMs), and '帮助构建精确的元素选择器' (to help build precise element selectors). It also lists specific alternative tools for different purposes (take_screenshot, get_dom_tree, find_elements) and outlines a recommended workflow sequence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_screenshot_dataC
获取截图二进制数据
带超时控制,默认30秒超时。
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | png |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It adds valuable behavioral context about timeout control (default 30 seconds), which isn't evident from the schema. However, it doesn't disclose other important behaviors like error handling, performance characteristics, or what happens when timeout is reached.
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 appropriately concise with two brief sentences. The first states the core purpose, the second adds timeout information. There's no unnecessary verbiage, though the structure could be slightly improved by front-loading the timeout information more clearly.
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 an output schema (which presumably describes the binary data return), the description doesn't need to explain return values. However, for a screenshot tool with a sibling alternative and 0% schema description coverage, the description should do more to explain parameter usage and differentiation from 'take_screenshot'.
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 0%, so the description must compensate. It provides no information about the 'format' parameter mentioned in the schema. The description doesn't explain what format options are available, default behavior, or how format affects the binary data output.
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 '获取截图二进制数据' (get screenshot binary data), which is a clear verb+resource combination. However, it doesn't distinguish this tool from its sibling 'take_screenshot' - both appear to capture screenshots, making the purpose somewhat vague in relation to alternatives.
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 the 'take_screenshot' sibling tool. It mentions timeout control but doesn't explain why one would choose this binary data retrieval over the presumably simpler 'take_screenshot' tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
input_textA
在输入框中输入文本(智能优化版)
⚠️ 重要提示:使用此工具前,请务必遵循标准化工作流程:
1. 📸 先使用 take_screenshot() 确认输入框存在且可见
2. 🔍 使用 find_elements() 验证输入框的选择器
3. 🎯 基于准确的DOM信息构建选择器
🎯 输入框选择器优先级:
- ID选择器:#input-id (最优先)
- name属性:[name="username"]
- CSS类选择器:.form-input
- XPath选择器://input[@type="text"]
Args:
selector: 输入框选择器(必须基于实际DOM结构,禁止猜测)
text: 要输入的文本内容
clear_first: 是否先清空输入框(推荐True避免内容叠加)
Returns:
str: 输入操作结果和反馈信息
💡 最佳实践示例:
- 正确:先 find_elements("input[type='text']") 确认输入框,再输入文本
- 错误:直接对未确认的选择器输入文本
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | ||
| text | Yes | ||
| clear_first | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 effectively describes the tool's operational behavior including the selection strategy priority, the clear_first parameter's effect on content handling, and workflow dependencies. It doesn't cover rate limits or error handling, but provides substantial behavioral context beyond basic functionality.
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 well-structured with clear sections (warning, workflow steps, selector priority, parameters, returns, best practices) and uses visual markers effectively. While comprehensive, some sections could be more concise, but every sentence adds value for tool selection and invocation.
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 (DOM interaction with selector validation), no annotations, and 0% schema coverage, the description provides complete context. It covers purpose, prerequisites, parameter semantics, workflow integration, and best practices. The presence of an output schema means return values don't need explanation in the 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?
With 0% schema description coverage, the description fully compensates by providing detailed semantic explanations for all three parameters. It explains selector requirements ('必须基于实际DOM结构,禁止猜测'), text parameter purpose, and clear_first behavior with recommendations. The description adds significant value beyond the bare 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 specific action ('输入文本' - input text) and the target resource ('输入框' - input box), with the '智能优化版' (smart optimized version) qualifier distinguishing it from basic input operations. It explicitly differentiates from siblings like click_element and find_elements by focusing on text input functionality.
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 explicit, step-by-step guidance on when to use this tool ('先使用 take_screenshot() 确认输入框存在且可见', '使用 find_elements() 验证输入框的选择器'), clear prerequisites, and best practice examples showing correct vs incorrect usage patterns. It integrates with sibling tools in a workflow context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
new_tabD
创建新标签页
| Name | Required | Description | Default |
|---|---|---|---|
| url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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. The description only states the action ('create new tab') without any information about permissions needed, whether it opens in foreground/background, what happens if a URL is invalid, or how it interacts with existing browser sessions. This is inadequate for a tool that likely interacts with 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 extremely concise with just three Chinese characters. It's front-loaded with the core action and has zero wasted words. While under-specified, it's structurally efficient for what it does convey.
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 likely interacts with browser tabs (inferred from sibling tools), the description is incomplete. With no annotations, 1 undocumented parameter, and an output schema (which might help but isn't described), the description should explain more about the tool's behavior, return values, and context. It fails to provide enough information for safe and 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 1 parameter ('url') with 0% description coverage in the schema. The tool description doesn't mention parameters at all, failing to compensate for the schema gap. For a tool with an undocumented parameter, the description should explain what the 'url' parameter does (e.g., optional URL to load in the new tab) but provides no such information.
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 '创建新标签页' (Create new tab) is a tautology that restates the tool name 'new_tab' in Chinese. It doesn't specify what kind of tab (browser tab, UI tab, etc.) or provide any distinguishing context from sibling tools like 'navigate' or 'connect_browser'. The purpose is stated but lacks specificity and 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. There are no explicit or implied instructions about when to choose 'new_tab' over sibling tools like 'navigate' (which might open URLs in existing tabs) or 'connect_browser' (which might establish browser sessions). No context, 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.
run_cdp_commandD
执行CDP命令
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | ||
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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. The description only states what the tool does at a surface level ('execute CDP command') without any information about side effects, permissions needed, rate limits, error handling, or what the execution entails. For a tool that likely interacts with browser automation, this lack of transparency is significant.
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 with just three Chinese characters ('执行CDP命令'), which is appropriately sized for what it conveys. It's front-loaded with the core action, though it lacks detail. There's no wasted verbiage, making it structurally efficient despite being under-specified.
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 executing CDP commands (likely involving browser automation), the lack of annotations, 0% schema description coverage, and the presence of an output schema (which isn't described in the description), the description is incomplete. It doesn't explain what CDP is, what commands are available, or how to use the parameters, leaving significant gaps for an AI agent to understand and invoke the tool 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?
The schema description coverage is 0%, meaning neither parameter has any description in the schema. The description '执行CDP命令' adds no information about what the 'command' and 'params' parameters should contain, their formats, examples, or constraints. For a tool with 2 required parameters, this leaves them completely undocumented.
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 '执行CDP命令' (Execute CDP command) is a tautology that essentially restates the tool name 'run_cdp_command' in Chinese. While it specifies a verb ('执行' - execute) and resource ('CDP命令' - CDP command), it doesn't clarify what CDP is (likely Chrome DevTools Protocol) or what types of commands can be executed, making it vague rather than specific.
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. Given the sibling tools include browser automation functions like 'execute_javascript', 'click_element', and 'navigate', there's no indication of how this tool differs or when it should be preferred over those alternatives. No context or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_page_sourceC
保存页面源码到文件
| Name | Required | Description | Default |
|---|---|---|---|
| filename | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 the action ('save page source to file') but doesn't disclose behavioral traits such as what file format is used (e.g., .html, .txt), where the file is saved (local path, temporary storage), permissions required, or error handling. It mentions saving but lacks details on the mutation's effects or output behavior beyond the existence of an output schema.
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 in Chinese ('保存页面源码到文件'), which is appropriately concise and front-loaded with the core action. There's no wasted text, but it could benefit from slightly more detail without losing conciseness. It's structured well for quick understanding.
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 1 parameter, no annotations, and an output schema exists (which likely describes the return values), the description is somewhat complete but has gaps. It covers the basic action but lacks context on prerequisites (e.g., browser connection), file handling, and differentiation from siblings. The output schema reduces the need to explain returns, but more behavioral details would improve completeness for a mutation tool.
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 1 parameter with 0% description coverage (no schema descriptions). The description doesn't add any meaning about the 'filename' parameter beyond what the schema title implies. It doesn't explain the parameter's role, default behavior, or format (e.g., if null generates a default name). With low schema coverage, the description fails to compensate, but since there's only 1 parameter, the baseline is adjusted to 3 as it's minimally adequate.
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 '保存页面源码到文件' (Save page source to file) states a clear verb ('save') and resource ('page source'), but it's somewhat vague about what 'page source' specifically means (HTML source code, DOM tree, rendered content?). It doesn't distinguish from sibling tools like 'get_dom_tree' or 'get_page_text' which might retrieve similar content. The purpose is understandable 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 (e.g., needing a browser session via 'connect_browser'), exclusions, or compare it to siblings like 'get_dom_tree' (which might retrieve structured DOM) or 'get_page_text' (which might extract text). Usage is implied from the name but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
take_screenshotA
截取页面截图(标准化工作流程第1步)
⚠️ 核心预处理工具:这是标准化工作流程的第1步!
🎯 主要用途:
1. 🔍 视觉确认:在任何元素操作前,先确认目标元素存在
2. 📋 为多模态LLM提供视觉上下文信息
3. 🐛 调试辅助:操作失败时用于问题诊断
4. 📝 文档记录:保存操作过程的视觉证据
💡 与其他工具的配合:
- 多模态LLM:截图 → 视觉分析 → 精确操作
- 非多模态LLM:截图 → get_page_text() → get_dom_tree() → 操作
Args:
filename: 截图文件名(可选,自动生成时间戳命名)
full_page: 是否截取完整页面(True)还是可视区域(False)
element_selector: 仅截取特定元素(可选)
Returns:
str: 截图保存路径和操作结果
🚀 推荐使用场景:
- 每次页面导航后立即截图确认加载状态
- 点击、输入等操作前截图确认目标元素
- 操作失败时截图辅助问题诊断
| Name | Required | Description | Default |
|---|---|---|---|
| filename | No | ||
| full_page | No | ||
| element_selector | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by explaining the tool's role in workflows, debugging assistance, and documentation purposes. It mentions '操作结果' (operation results) but doesn't specify error behavior or performance characteristics. No contradiction with annotations since none exist.
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?
Well-structured with clear sections (用途, 配合, Args, Returns, 场景) but somewhat verbose with emojis and formatting. Every sentence adds value, though some redundancy exists between '主要用途' and '推荐使用场景'. Front-loaded with core 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 3 parameters with 0% schema coverage and no annotations, the description provides comprehensive context: clear purpose, usage guidelines, parameter explanations, return value indication, and workflow integration. The output schema exists, so return values don't need detailed explanation in the 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 description coverage is 0%, but the description compensates by explaining all three parameters in Chinese: filename (optional, auto-generated timestamp), full_page (complete page vs visible area), and element_selector (specific element only). It adds meaningful context beyond basic schema titles.
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 as '截取页面截图' (take page screenshot) and positions it as '标准化工作流程第1步' (standardized workflow step 1). It distinguishes from siblings by emphasizing visual confirmation before element operations, unlike text-based tools like get_page_text or get_dom_tree.
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?
Explicit guidance is provided with '推荐使用场景' (recommended usage scenarios) listing specific situations like after page navigation and before clicks/inputs. It also explains tool coordination with multimodal vs non-multimodal LLM workflows, clearly differentiating when to use this versus alternatives.
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.
17 tool updates
v1.0.0- First observed
click_element - First observed
connect_browser - First observed
enable_network_monitoring - First observed
execute_javascript - First observed
find_elements - First observed
get_cookies - First observed
get_dom_tree - First observed
get_element_text - First observed
get_network_logs - First observed
get_page_text - First observed
get_screenshot_data - First observed
input_text - First observed
navigate - First observed
new_tab - First observed
run_cdp_command - First observed
save_page_source - First observed
take_screenshot
TDQS
Most tools have distinct purposes with clear boundaries, such as take_screenshot for visual capture, get_dom_tree for structural analysis, and click_element for interaction. However, some overlap exists between find_elements and get_dom_tree, as both assist in element location, which could cause minor confusion in selection. The detailed descriptions help mitigate this overlap by clarifying their specific roles.
All tool names follow a consistent snake_case pattern with clear verb_noun combinations, such as take_screenshot, get_dom_tree, and click_element. This uniformity makes the tool set predictable and easy to understand, with no deviations in naming style or convention throughout the list.
With 17 tools, the count is slightly high but reasonable for a browser automation server, covering essential operations like navigation, interaction, and monitoring. Some tools, like get_screenshot_data and save_page_source, might be redundant or niche, but overall, the set is well-scoped for its domain without being overly bloated.
The tool set provides comprehensive coverage for browser automation, including navigation, element interaction, monitoring, and data extraction. It supports a full workflow from setup (connect_browser) to interaction (click_element, input_text) and analysis (get_dom_tree, get_network_logs), with no obvious gaps that would hinder agent operations in this domain.
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
Live browser debugging for AI assistants — DOM, console, network via MCP.
Stealth web browser for agents: search, fetch, click, download and type in persistent MCP sessions.
A paid remote MCP for AI agent browser DevTools MCP, built to return verdicts, receipts, usage logs,
Scrape, crawl and search the web for AI agents via MCP.
Related MCP Servers
- AlicenseAqualityBmaintenanceA professional browser automation server that enables MCP clients to perform structured web navigation, element interaction, and data extraction using the DrissionPage framework. It features 14 deterministic tools optimized for LLMs to automate web workflows efficiently without relying on vision-based models.69489Apache 2.0
- AlicenseNot gradedqualityDmaintenanceAn MCP server for browser automation using Puppeteer that enables AI assistants to navigate web pages, interact with UI elements, and capture screenshots. It supports comprehensive web tasks including form filling, content extraction, and executing custom JavaScript within the browser context.1MIT
- FlicenseCqualityDmaintenanceProvides browser automation via DrissionPage and FastMCP, enabling AI to control Chrome browsers for tasks like page navigation, element interaction, JavaScript execution, and network monitoring.29241-
- AlicenseNot gradedqualityBmaintenanceBrowser automation MCP server using Pydoll, enabling agents to navigate, observe, and interact with web pages via tools like page navigation, element clicking, and screenshot capture.1MIT
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/HyperClockUp/DrissionPageMCPServer_Modified'
If you have feedback or need assistance with the MCP directory API, please join our Discord server