项目简介

该仓库提供了一个基于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代理、监控)。

安装步骤

  1. 准备环境:
    • 安装 'uv': 这是一个快速的Python包管理器。请参考 uv GitHub 页面 获取详细安装说明。
    • 安装 'Playwright' 及其浏览器依赖: 首先安装Playwright库:
      uv pip install playwright
      然后安装Playwright所需的浏览器(如Chromium):
      uv run playwright install --with-deps --no-shell chromium
  2. 配置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' 中。
  3. 安装服务器:
    • 从源代码安装 (推荐用于开发和测试):
      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。在项目根目录运行:
      docker-compose up -d
      这将启动服务器容器,并支持VNC可视化。

服务器配置 (供MCP客户端连接)

MCP客户端需要以下配置信息来连接并使用此MCP服务器。根据您选择的传输模式(SSE或stdio),配置方式略有不同。

SSE 模式配置 (推荐用于Web界面和远程访问)

SSE模式适合与远程或Web界面的MCP客户端集成。

  1. 启动服务器: 例如,从源代码目录启动服务器在8081端口:
    uv run server --port 8081
    或者,如果已作为Python包安装:
    mcp-browser-use-server run server --port 8081
    服务器将在 'http://localhost:8081/sse' 提供服务。
  2. 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' 进行桥接。

  1. 全局安装 'mcp-proxy':
    uv tool install mcp-proxy
    uv tool update-shell # 更新shell以识别新工具
  2. 启动服务器: 例如,启动服务器在8081端口,并让 'mcp-proxy' 监听9000端口:
    mcp-browser-use-server run server --port 8081 --stdio --proxy-port 9000
  3. 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