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.

Capabilities

Features and capabilities supported by this server

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

Tools

Functions exposed to the LLM to take actions

NameDescription
connect_browser

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

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

创建新标签页

navigate

导航到指定URL

click_element

点击页面元素(智能优化版)

        ⚠️ 重要提示:使用此工具前,请务必遵循标准化工作流程:
        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_text

在输入框中输入文本(智能优化版)

        ⚠️ 重要提示:使用此工具前,请务必遵循标准化工作流程:
        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_text

获取元素文本内容(精确定位版)

        ⚠️ 重要提示:这是预处理工具,用于获取精确的元素信息!
        使用场景:
        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_text

获取页面完整文本内容(预处理必备工具)

        ⚠️ 核心预处理工具:这是标准化工作流程的第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_screenshot

截取页面截图(标准化工作流程第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_data

获取截图二进制数据

        带超时控制,默认30秒超时。
        
get_dom_tree

获取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_elements

查找页面元素(智能定位工具)

        ⚠️ 精确定位工具:基于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_monitoring

启用网络监控

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

获取网络请求日志

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

保存页面源码到文件

get_cookies

获取当前页面的Cookies

execute_javascript

执行JavaScript代码

run_cdp_command

执行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