浏览器使用服务器
一个使用 Python 脚本实现浏览器自动化的模型上下文协议服务器。可与 Cline 配合使用
特征
浏览器操作
screenshot
:捕获网页截图(整页或视口)get_html
:检索网页的 HTML 内容execute_js
网页上的 JavaScriptget_console_logs
:从网页获取控制台日志
所有操作都支持页面加载后自定义交互步骤(例如点击元素、滚动)。
先决条件
- (可选但推荐)安装 Xvfb 以实现无头浏览器自动化:
Xvfb(X 虚拟帧缓冲区)创建虚拟显示器,允许浏览器自动化运行,而不会被检测为机器人程序。点击此处了解更多关于 Xvfb 的信息。
- 安装 Miniconda 或 Anaconda
- 创建 Conda 环境:
- 设置 LLM 配置:
该服务器支持多个 LLM 提供程序。您可以使用以下任意 API 密钥:
服务器将自动使用找到的第一个可用的 API 密钥。您可以选择使用环境变量为任何提供程序自定义模型和基本 URL。
安装
通过 Smithery 安装
要通过Smithery自动安装 Claude Desktop 的浏览器使用服务器:
- 将此存储库克隆到
/home/YOUR_HOME/Documents/Cline/
目录 - 安装依赖项:
- 构建服务器:
MCP 配置
将以下配置添加到您的 Cline MCP 设置:
代替:
YOUR_HOME
替换为您的实际主目录名称your_api_key
替换为您的实际 API 密钥
用法
运行服务器:
该服务器将在 stdio 上可用并支持以下操作:
截屏
参数:
- url:网页URL(必填)
- full_page:是否捕获整个页面或仅捕获视口(可选,默认值:false)
- 步骤:以逗号分隔的操作或句子,描述页面加载后要采取的步骤(可选)
获取 HTML
参数:
- url:网页URL(必填)
- 步骤:以逗号分隔的操作或句子,描述页面加载后要采取的步骤(可选)
执行 JavaScript
参数:
- url:网页URL(必填)
- script:要执行的 JavaScript 代码(必需)
- 步骤:以逗号分隔的操作或句子,描述页面加载后要采取的步骤(可选)
获取控制台日志
参数:
- url:网页URL(必填)
- 步骤:以逗号分隔的操作或句子,描述页面加载后要采取的步骤(可选)
Cline 使用示例
以下是使用 Cline 的浏览器服务器可以完成的一些示例任务:
在开发过程中修改网页元素
要更改需要身份验证的页面上的标题颜色:
此任务演示:
- 使用逗号分隔的步骤实现多步骤浏览器自动化
- 身份验证处理
- 接受 Cookie
- DOM 操作
- CSS 样式更改
服务器将按顺序执行这些步骤,并处理过程中所需的任何交互。
配置
LLM 配置
该服务器支持多个 LLM 提供程序及其默认配置:
- GLHF:使用 deepseek-ai/DeepSeek-V3 模型
- Ollama:使用 qwen2.5:32b-instruct-q4_K_M 模型和 32k 上下文窗口
- Groq:使用 deepseek-r1-distill-llama-70b 模型
- OpenAI:使用gpt-4o-mini模型
- Openrouter:使用 deepseek/deepseek-chat 模型
- Github:使用 gpt-4o-mini 模型
- DeepSeek:使用 deepseek-chat 模型
- Gemini:使用 gemini-2.0-flash-exp 模型
您可以使用环境变量覆盖这些默认值:
MODEL
:为任何提供商设置自定义模型名称BASE_URL
:设置自定义 API 端点 URL(如果提供商支持)
视觉支持
服务器通过 USE_VISION 环境变量支持视觉功能:
- 设置 USE_VISION=true 以启用浏览器操作的视觉功能
- 默认值为 false,以便在不需要视觉时优化性能
- 对于需要视觉理解网页内容的任务很有用
Xvfb 支持
服务器会自动检测 Xvfb 是否已安装并且:
- 在可用时使用 xvfb-run,实现更好的浏览器自动化,无需机器人检测
- 当未安装 Xvfb 时,回退到直接执行
- 相应地设置 RUNNING_UNDER_XVFB 环境变量
暂停
默认超时时间为 5 分钟(300000 毫秒)。修改build/index.js
中的 TIMEOUT 常量即可更改此设置。
错误处理
服务器提供以下详细的错误消息:
- Python 脚本执行失败
- 浏览器操作超时
- 参数无效
调试
使用 MCP Inspector 进行调试:
用途
执照
麻省理工学院
Related MCP Servers
- AsecurityAlicenseAqualityFacilitates browser automation with custom capabilities and agent-based interactions, integrated through the browser-use library.Last updated -1541PythonMIT License
- AsecurityAlicenseAqualityEnables browser automation with Puppeteer, supporting navigation, form interactions, and connection to active Chrome instances for comprehensive web page interaction.Last updated -84708TypeScriptMIT License
- -securityAlicense-qualityEnables browser automation using the Selenium WebDriver through MCP, supporting browser management, element location, and both basic and advanced user interactions.Last updated -17521JavaScriptMIT License
- -securityAlicense-qualityA browser automation agent that enables Claude to interact with web browsers through the Model Context Protocol, allowing for actions like navigating websites, manipulating elements, and managing browser state.Last updated -2PythonMIT License