项目简介
该仓库提供了一个基于Model Context Protocol (MCP) 的服务器实现,其核心功能是赋能AI代理(如大型语言模型客户端)来远程控制和操作网页浏览器。它集成了'browser-use'库,为AI代理提供强大的网页自动化能力,支持多种传输协议(如Server-Sent Events和标准输入/输出),并针对生产环境进行了优化。
主要功能点
- AI驱动的网页自动化: 赋予AI代理全面控制网页浏览器的能力,执行复杂的网页导航、表单填写、数据抓取等操作。
- 灵活的通信协议: 支持Server-Sent Events (SSE) 和标准输入/输出 (stdio) 两种协议,便于与各类AI助手和工具集成。
- 实时浏览器可视化: 通过VNC流,您可以实时可视化AI代理在浏览器中的操作过程,便于调试和监控。
- 异步操作支持: 执行浏览器任务时采用非阻塞方式,确保AI客户端能够高效地进行多任务处理,无需长时间等待单个任务完成。
- 持久会话管理: 支持创建、管理和关闭长期运行的浏览器会话,包括多标签页控制、实时页面状态检查和智能内容提取。
- Docker便捷部署: 提供Docker和Docker Compose支持,方便在隔离、可复现的环境中快速部署服务,并支持多种部署配置(如开发、stdio代理、监控)。
安装步骤
- 准备环境:
- 安装 'uv': 这是一个快速的Python包管理器。请参考 uv GitHub 页面 获取详细安装说明。
- 安装 'Playwright' 及其浏览器依赖:
首先安装Playwright库:
然后安装Playwright所需的浏览器(如Chromium):uv pip install playwrightuv run playwright install --with-deps --no-shell chromium
- 配置API密钥和环境变量:
- 在项目根目录下创建一个名为 '.env' 的文件,并填入您的OpenAI API密钥。这是AI代理与LLM交互所必需的。
# 您的OpenAI API密钥,必需 OPENAI_API_KEY=your-openai-api-key-here # 可选:指定LLM模型,默认为 gpt-5-mini LLM_MODEL=gpt-4o # 可选:控制浏览器是否在无头模式下运行 (true=无头, false=可见),默认为true BROWSER_HEADLESS=true # 可选:指定Chrome/Chromium浏览器的路径 # CHROME_PATH=/path/to/chrome- 安全提示: 切勿将您的'.env'文件提交到版本控制系统。它已被包含在 '.gitignore' 中。
- 安装服务器:
- 从源代码安装 (推荐用于开发和测试):
git clone https://github.com/hubertusgbecker/mcp-browser-use-server.git cd mcp-browser-use-server uv sync # 安装所有依赖 - 作为Python包安装 (推荐用于生产环境):
uv pip install mcp-browser-use-server - 通过Docker部署:
如果您选择Docker,请确保已安装Docker和Docker Compose。在项目根目录运行:
这将启动服务器容器,并支持VNC可视化。docker-compose up -d
- 从源代码安装 (推荐用于开发和测试):
服务器配置 (供MCP客户端连接)
MCP客户端需要以下配置信息来连接并使用此MCP服务器。根据您选择的传输模式(SSE或stdio),配置方式略有不同。
SSE 模式配置 (推荐用于Web界面和远程访问)
SSE模式适合与远程或Web界面的MCP客户端集成。
- 启动服务器:
例如,从源代码目录启动服务器在8081端口:
或者,如果已作为Python包安装:uv run server --port 8081
服务器将在 'http://localhost:8081/sse' 提供服务。mcp-browser-use-server run server --port 8081 - MCP客户端配置:
在您的MCP客户端配置文件 (通常是 '.cursor/mcp.json', '~/.codeium/windsurf/mcp_config.json' 或 '~/Library/Application Support/Claude/claude_desktop_config.json') 中,添加以下JSON条目:
{ "mcpServers": { "mcp-browser-use-server": { "url": "http://localhost:8081/sse" // "url" 指向MCP服务器的SSE接口地址 } } }
stdio 模式配置 (推荐用于本地AI助手)
stdio模式适合与在本地运行的AI助手(如Cursor, Claude Desktop等)集成。此模式需要 'mcp-proxy' 进行桥接。
- 全局安装 'mcp-proxy':
uv tool install mcp-proxy uv tool update-shell # 更新shell以识别新工具 - 启动服务器:
例如,启动服务器在8081端口,并让 'mcp-proxy' 监听9000端口:
mcp-browser-use-server run server --port 8081 --stdio --proxy-port 9000 - MCP客户端配置:
在您的MCP客户端配置文件中,添加以下JSON条目:
{ "mcpServers": { "mcp-browser-use-server": { "command": "mcp-browser-use-server", // "command" 指定了启动MCP服务器的命令 "args": [ "run", "server", "--port", "8081", "--stdio", "--proxy-port", "9000" // "args" 提供了启动命令的参数 ], "env": { "OPENAI_API_KEY": "您的OpenAI_API密钥" // "env" 允许您为服务器进程设置环境变量,此处OpenAI API密钥是必需的 } } } }
基本使用方法
一旦MCP服务器运行并成功配置到您的MCP客户端(例如AI助手),您就可以通过自然语言指示AI来执行浏览器任务。AI助手将通过MCP协议调用服务器提供的工具来完成操作。
常见示例:
- 网页信息提取: 'AI助手指令:' "访问 'https://news.ycombinator.com' 并返回排名最高的文章标题和URL。"
- 网页搜索与总结: 'AI助手指令:' "前往Google,搜索 'MCP protocol',然后总结前3个搜索结果。"
- 表单交互: 'AI助手指令:' "导航到 'example.com/contact' 的联系表单,用测试数据填写所有字段并提交。"
- 数据列表抓取: 'AI助手指令:' "访问GitHub趋势页面,列出今天排名前5的趋势仓库。"
- 截图捕获: 'AI助手指令:' "导航到 'example.com' 并截取主页的屏幕截图。"
信息
分类
网页与API