Skip to main content
Glama
HyperClockUp

DrissionPageMCPServer_Modified

by HyperClockUp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PYTHONPATHNoPath to the project's src directory, required for the Python environment to locate the drissionpage_mcp package.
DRISSIONPAGE_MCP_TIMEOUTNoTimeout setting for browser operations in seconds.30
DRISSIONPAGE_MCP_HEADLESSNoWhether to run the browser in headless mode.false
DRISSIONPAGE_MCP_LOG_LEVELNoThe logging level for the server (e.g., INFO, DEBUG).INFO
DRISSIONPAGE_MCP_BROWSER_PATHNoOptional specific path to the Chrome, Edge, or other Chromium-based browser executable.
DRISSIONPAGE_MCP_DOWNLOAD_PATHNoOptional directory path for file downloads.
DRISSIONPAGE_MCP_SCREENSHOT_PATHNoOptional directory path for saving screenshots.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
connect_browserB

连接到浏览器或启动新浏览器

        Args:
            port: 调试端口,默认9222
            headless: 无头模式(不显示浏览器窗口)
            incognito: 无痕/隐私模式
            user_data_dir: 用户数据目录
        
        带超时控制,默认20秒超时。
        
new_tabD

创建新标签页

navigateB

导航到指定URL

click_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("#可能存在的按钮") 而不确认元素
        
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']") 确认输入框,再输入文本
        - 错误:直接对未确认的选择器输入文本
        
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("#可能的状态元素") 而不确认
        
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. 基于以上信息执行具体操作
        
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: 截图保存路径和操作结果
            
        🚀 推荐使用场景:
        - 每次页面导航后立即截图确认加载状态
        - 点击、输入等操作前截图确认目标元素
        - 操作失败时截图辅助问题诊断
        
get_screenshot_dataC

获取截图二进制数据

        带超时控制,默认30秒超时。
        
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避免信息过载
        
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: 查找结果
        
enable_network_monitoringD

启用网络监控

        Args:
            filter_types: 需要监听的mimeType类型列表
            
        Returns:
            str: 启用结果
        
get_network_logsB

获取网络请求日志

        Args:
            limit: 返回日志的最大数量
            
        Returns:
            str: 网络日志数据
        
save_page_sourceC

保存页面源码到文件

get_cookiesB

获取当前页面的Cookies

execute_javascriptD

执行JavaScript代码

run_cdp_commandD

执行CDP命令

Prompts

Interactive templates invoked by user choice

NameDescription
global_automation_hints永远附加的全局自动化测试操作提示

Resources

Contextual data attached and managed by the client

NameDescription
get_default_config获取默认配置
get_all_instructions获取所有工具指令
get_browser_status获取浏览器状态

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/HyperClockUp/DrissionPageMCPServer_Modified'

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