使用说明

项目简介

MCP Browser 是一个基于 Model Control Protocol (MCP) 的服务器实现,它利用 Playwright 驱动 headless 浏览器,对外提供了一系列 API 接口,使得 LLM 应用能够方便地获取网页内容、进行网页交互,从而扩展 LLM 的上下文理解和功能执行范围。该项目旨在作为 LLM 智能体的工具,使其能够像人类一样浏览和操作网页。

主要功能点

  • Headless 浏览器自动化: 基于 Playwright 实现高效稳定的 headless 浏览器控制。
  • API 接口: 提供丰富的 RESTful API 接口,用于执行浏览器操作,如导航、点击、输入、截图、DOM 提取、CSS 分析、可访问性测试和响应式设计测试等。
  • 实时事件订阅: 支持 WebSocket 协议,允许客户端实时订阅浏览器事件,例如页面加载、DOM 变化、控制台日志和网络请求等,为 LLM 应用提供实时的网页状态反馈。
  • 资源管理: 内置浏览器实例池,有效管理和复用浏览器资源,提高效率并控制资源消耗。
  • 安全认证: 支持基于 JWT 的身份验证,保障 API 接口的安全访问。
  • 速率限制: 实施速率限制,防止 API 滥用,确保服务稳定可靠。

安装步骤

  1. 克隆仓库

    git clone https://github.com/neoforge-dev/mcp-browser.git
    cd mcp-browser
  2. 运行安装脚本

    • 手动安装:执行 './install.sh' 脚本,脚本将安装必要的依赖和配置环境。
    • 一键安装 (macOS):复制并执行以下命令,简化安装过程:
      curl -sSL https://raw.githubusercontent.com/neoforge-dev/mcp-browser/main/install_one_line.sh | bash
    • 安装脚本会自动检测并安装 XQuartz (X11) 以支持可视化功能(如果需要)。
  3. 安装 Playwright 浏览器 在项目根目录下,运行命令安装 Playwright 浏览器内核:

    python -m playwright install

服务器配置

MCP 服务器需要通过以下配置信息,告知 MCP 客户端如何启动和连接:

{
  "server name": "mcp-browser",
  "command": "uvicorn",
  "args": [
    "src.main:app",         // FastAPI 应用入口点,指向 src 目录下的 main.py 文件和 app 实例
    "--host", "0.0.0.0",    // 监听所有网络接口,允许从任何 IP 地址访问
    "--port", "7665"       // 服务器监听端口,默认为 7665,可自定义
    // "--reload"           // (可选) 开启热重载,方便开发时修改代码自动重启,生产环境建议关闭
  ],
  "description": "MCP Browser headless 浏览器自动化服务器"
}

参数说明:

  • 'server name': 服务器名称,自定义,用于在 MCP 客户端中标识该服务器。
  • 'command': 启动服务器的命令,这里使用 'uvicorn',一个 ASGI 服务器。
  • 'args': 传递给 'uvicorn' 命令的参数列表:
    • 'src.main:app': 指定 FastAPI 应用的位置。
    • '--host', '0.0.0.0': 指定监听地址为所有网络接口。
    • '--port', '7665': 指定服务器监听端口。
    • '--reload' (可选): 开启热重载模式,仅在开发环境中使用。
  • 'description': 服务器描述,用于在 MCP 客户端界面显示服务器的用途。

基本使用方法

  1. 启动服务器: 根据上述配置信息,使用 MCP 客户端启动 MCP Browser 服务器。确保 Python 环境配置正确,并且已安装所有依赖。
  2. 访问 Web UI (可选): 服务器启动后,可以通过浏览器访问 'http://localhost:7665' 查看简单的 Web UI 界面 (如果启用)。
  3. 使用 API 接口: 通过 HTTP 请求访问服务器提供的 RESTful API 接口,例如使用 'POST /api/browser/navigate' 导航到指定 URL,具体 API 接口和参数请参考仓库 README.md 文档。
  4. 订阅 WebSocket 事件: 使用 WebSocket 客户端连接到 'ws://localhost:7665/ws/browser/events' 端点,发送订阅消息以接收浏览器实时事件。
  5. 集成到 MCP 客户端: 在 LLM 应用或 MCP 客户端中,配置连接到 MCP Browser 服务器,利用其提供的资源 (浏览器能力) 和工具 (API 接口) 来增强 LLM 的功能。

信息

分类

网页与API