browser-use-mcp-server 详细介绍
项目概述
browser-use-mcp-server
是一个专为AI智能体设计的MCP(Maybe-Curious-Programmer 或类似的协议,用于AI交互)服务器。它的核心功能是利用 browser-use
库,赋予AI智能体控制网页浏览器的能力,实现自动化网页操作。
🔗 如果你需要管理多个这类MCP服务器,可以考虑使用 agent-browser
来简化你的开发工作流程。
主要功能与特点
- 浏览器自动化: 项目的核心功能,使AI智能体能够通过编程接口控制和操作网页浏览器,执行诸如导航、点击、填写表单、抓取信息等任务。
- 双重传输模式: 支持两种与客户端(AI智能体或集成环境)通信的协议:SSE (Server-Sent Events) 和 stdio(标准输入/输出)。这提供了灵活的集成选项,可以根据客户端环境选择合适的通信方式。
- VNC流: 提供VNC(Virtual Network Computing)流功能,允许用户实时可视化地观看AI智能体控制浏览器执行操作的过程,这对于调试和演示非常有用。
- 异步任务: 支持异步执行浏览器操作任务,提高了服务器的响应性和效率,允许处理多个请求或在执行耗时任务时保持可用。
先决条件
在安装和运行 browser-use-mcp-server
之前,需要安装以下工具:
- uv: 一个快速的Python包管理器,用于管理项目依赖。
- Playwright: 一个强大的浏览器自动化库,是服务器实现浏览器控制的基础。
- mcp-proxy: 在使用stdio模式运行时必需的代理工具。
先决条件安装
- 安装
uv
:
bash
curl -LsSf https://astral.sh/uv/install.sh | sh - 使用
uv
安装mcp-proxy
:
bash
uv tool install mcp-proxy - 更新你的shell环境以包含
uv
工具的路径:
bash
uv tool update-shell
环境配置
项目支持通过 .env
文件进行环境配置。创建一个名为 .env
的文件,并添加以下配置项(根据需要填写):
ini
OPENAI_API_KEY=your-api-key # OpenAI API 密钥,可能用于服务器与AI模型的交互或相关功能
CHROME_PATH=optional/path/to/chrome # 可选,指定Chrome浏览器可执行文件的路径
PATIENT=false # 设置为 true 时,服务器发起的API调用将等待浏览器自动化任务完成才返回;设置为 false 则可能立即返回。
项目安装
安装项目及其依赖:
- 安装项目依赖:
bash
uv sync - 安装 Playwright Python 库:
bash
uv pip install playwright - 安装 Playwright 所需的浏览器二进制文件及其依赖(此处指定安装 Chromium):
bash
uv run playwright install --with-deps --no-shell chromium
使用方法
browser-use-mcp-server
支持两种运行模式:SSE 模式和 stdio 模式。
SSE 模式
直接从项目源代码运行服务器:
bash
uv run server --port 8000 # 在端口 8000 启动服务器
stdio 模式
stdio 模式通常用于集成到其他应用程序或IDE中,需要先构建项目并将其安装为全局工具。
- 构建项目并全局安装为
uv
工具:
bash
uv build # 构建项目,生成 wheel 文件
uv tool uninstall browser-use-mcp-server 2>/dev/null || true # 如果已安装则先卸载
uv tool install dist/browser_use_mcp_server-*.whl # 安装刚刚构建的 wheel 文件 - 使用 stdio 传输方式运行服务器:
bash
browser-use-mcp-server run server --port 8000 --stdio --proxy-port 9000 # 运行服务器,启用 stdio 模式,指定服务器端口和 mcp-proxy 端口
客户端配置
客户端应用程序需要配置连接信息才能与 browser-use-mcp-server
交互。配置方式取决于所使用的模式。
SSE 模式客户端配置示例
客户端通常需要提供服务器的URL:
json
{
"mcpServers": {
"browser-use-mcp-server": {
"url": "http://localhost:8000/sse"
}
}
}
stdio 模式客户端配置示例
客户端通常需要配置如何启动服务器进程,包括命令、参数和环境变量:
json
{
"mcpServers": {
"browser-server": {
"command": "browser-use-mcp-server",
"args": [
"run",
"server",
"--port",
"8000",
"--stdio",
"--proxy-port",
"9000"
],
"env": {
"OPENAI_API_KEY": "your-api-key" # 客户端可以在启动时通过环境变量传递 API 密钥
}
}
}
}
客户端配置常见位置
一些流行的客户端应用程序存储MCP配置文件的位置示例:
- Cursor:
./.cursor/mcp.json
- Windsurf:
~/.codeium/windsurf/mcp_config.json
- Claude (Mac):
~/Library/Application Support/Claude/claude_desktop_config.json
- Claude (Windows):
%APPDATA%\Claude\claude_desktop_config.json
本地开发
如果你希望本地开发和测试 browser-use-mcp-server
项目,可以遵循以下步骤:
- 从项目根目录构建一个可分发的 wheel 文件:
bash
uv build - 将其安装为全局
uv
工具:
bash
uv tool uninstall browser-use-mcp-server 2>/dev/null || true
uv tool install dist/browser_use_mcp_server-*.whl - 从任何目录运行服务器。需要设置
OPENAI_API_KEY
环境变量:
bash
export OPENAI_API_KEY=your-api-key-here # 为当前session设置密钥
# 或者在单次运行命令中内联提供密钥
OPENAI_API_KEY=your-api-key-here browser-use-mcp-server run server --port 8000 --stdio --proxy-port 9000 - 修改代码后,需要重新构建并重新安装:
bash
uv build
uv tool uninstall browser-use-mcp-server
uv tool install dist/browser_use_mcp_server-*.whl
使用 Docker
使用 Docker 提供了一个一致且隔离的环境来运行服务器:
- 构建 Docker 镜像:
bash
docker build -t browser-use-mcp-server . - 运行容器,默认的 VNC 密码是 “browser-use”:
bash
docker run --rm -p8000:8000 -p5900:5900 browser-use-mcp-server--rm
: 确保容器停止时自动移除。-p 8000:8000
: 将容器的 8000 端口映射到主机的 8000 端口(服务器端口)。-p 5900:5900
: 将容器的 5900 端口映射到主机的 5900 端口(VNC 端口)。
- 使用自定义的 VNC 密码运行容器(从文件读取密码):
- 创建一个文件(例如
vnc_password.txt
),仅包含你想要的密码。bash
echo "your-secure-password" > vnc_password.txt - 将密码文件作为 secret 挂载到容器内部:
bash
docker run --rm -p8000:8000 -p5900:5900 \
-v $(pwd)/vnc_password.txt:/run/secrets/vnc_password:ro \
browser-use-mcp-server - 注意:
-v
挂载命令中的:ro
标志使得容器内部的密码文件为只读,增加了安全性。
- 创建一个文件(例如
VNC 查看器
要实时观看浏览器自动化过程,可以使用 VNC 查看器连接到服务器暴露的 VNC 端口(默认 5900)。一个方便的基于浏览器的查看器是 noVNC:
- 克隆 noVNC 仓库:
bash
git clone https://github.com/novnc/noVNC - 进入 noVNC 目录:
bash
cd noVNC - 运行 noVNC 代理,连接到服务器的 VNC 端口:
bash
./utils/novnc_proxy --vnc localhost:5900
默认密码为browser-use
,除非你在运行服务器时使用了自定义密码。
示例
你可以尝试向你的AI智能体提出以下任务:
open https://news.ycombinator.com and return the top ranked article
智能体将通过 browser-use-mcp-server
控制浏览器执行此操作,并返回结果。
支持
如遇问题或有任何疑问,请访问:cobrowser.xyz