项目简介

BrowserOS MCP 服务器是一个功能强大的统一后端,旨在通过 Model Context Protocol (MCP) 和直接代理访问两种方式,为大型语言模型 (LLM) 客户端提供全面的浏览器自动化能力。它采用模块化单仓架构,共享工具和组件,并能编译为单个可执行文件。服务器支持托管和管理各种浏览器自动化资源,注册和执行多达26种工具,并能与外部LLM应用通过标准化JSON-RPC协议进行安全、可扩展的通信。

主要功能点

  • 浏览器自动化工具: 提供26种丰富的浏览器操作工具,涵盖输入自动化(点击、填写、拖拽、文件上传)、页面导航(打开/关闭/切换页面、历史导航)、仿真(CPU/网络节流)、性能分析和调试(截屏、快照、脚本执行、控制台消息)。
  • Model Context Protocol (MCP) 服务器: 实现标准的MCP协议,通过HTTP/SSE传输层与外部LLM客户端通信,接收并处理上下文信息和工具调用请求。
  • Agent WebSocket 服务器: 提供一个WebSocket接口,用于集成如Anthropic Claude等代理模型,允许代理直接执行浏览器自动化工具。
  • 统一架构: 将MCP服务、Agent服务和浏览器扩展连接整合在一个进程中,共享资源,提高效率。
  • 会话管理: 支持多会话代理,并提供空闲会话自动清理功能。
  • 可配置性: 支持通过命令行参数和环境变量灵活配置服务器端口、功能启用/禁用、代理行为等。

安装步骤

  1. 克隆仓库: 'git clone https://github.com/browseros-ai/BrowserOS-server.git' 'cd BrowserOS-server'
  2. 安装依赖: 确保您的系统已安装 Bun (v1.0.0或更高版本) 和 Chrome 稳定版。 'bun install'
  3. 启动服务器: 'bun start' 服务器将默认在 'http://127.0.0.1:9223/mcp' 启动MCP HTTP服务器,并在 'ws://localhost:3000' 启动Agent WebSocket服务器。

服务器配置

MCP客户端需要配置与BrowserOS MCP服务器的连接信息才能使用其提供的功能。以下是MCP客户端连接此服务器所需配置的JSON格式示例。MCP客户端通常会使用此配置来启动和连接到服务器。

{
  "name": "browseros_mcp",
  "command": "bun",
  "args": ["start", "--http-mcp-port=9223", "--disable-agent-server"],
  "uri": "http://127.0.0.1:9223/mcp",
  "capabilities": {
    "logging": {},
    "tools": {
      "click": {
        "description": "点击指定UID的元素。",
        "inputSchema": {
          "type": "object",
          "properties": {
            "uid": { "type": "string", "description": "要点击的元素唯一标识符" },
            "dblClick": { "type": "boolean", "description": "是否执行双击操作,默认为false" }
          },
          "required": ["uid"]
        }
      },
      "navigate_page": {
        "description": "导航当前选定页面到指定URL。",
        "inputSchema": {
          "type": "object",
          "properties": {
            "url": { "type": "string", "description": "目标URL,必须包含协议(如 https://)" }
          },
          "required": ["url"]
        }
      },
      "take_screenshot": {
        "description": "截取当前页面的屏幕截图。",
        "inputSchema": {
          "type": "object",
          "properties": {
            "format": { "type": "string", "enum": ["png", "jpeg", "webp"], "description": "截图格式" },
            "fullPage": { "type": "boolean", "description": "是否截取整个页面,而非仅可见视口" },
            "uid": { "type": "string", "description": "可选,指定UID的元素进行截图" }
          }
        }
      }
      // ... 其他23个浏览器自动化工具,MCP客户端可根据需要查询服务器的完整工具清单。
    }
  }
}

参数说明:

  • 'name': MCP服务器的唯一标识符,本例中为 'browseros_mcp'。
  • 'command': 启动BrowserOS服务器的命令行指令。
  • 'args': 传递给启动命令的参数列表。
    • '--http-mcp-port=9223': 指定MCP HTTP服务器监听的端口,确保客户端能正确连接。
    • '--disable-agent-server': 可选参数,如果只使用MCP HTTP服务器,可以禁用Agent WebSocket服务器以节省资源。
  • 'uri': MCP客户端连接服务器的HTTP或WebSocket地址。对于MCP HTTP服务器,通常是 'http://127.0.0.1:端口/mcp'。
  • 'capabilities': 声明MCP服务器支持的功能,包括:
    • 'logging': 表示服务器支持日志功能。
    • 'tools': 一个对象,列出了服务器提供的所有工具。每个工具都有其:
      • 'description': 工具的简要说明。
      • 'inputSchema': 工具输入参数的JSON Schema定义,用于客户端验证和生成工具调用。

基本使用方法

LLM客户端在配置好上述MCP服务器连接信息后,即可向BrowserOS MCP服务器发送标准的JSON-RPC请求。例如,当LLM需要导航到特定网页时,它可以构造一个调用 'navigate_page' 工具的JSON-RPC请求,将目标URL作为参数发送。服务器接收请求后,会通过其内部的浏览器自动化引擎执行导航操作,并将结果(如页面加载成功、错误信息)通过JSON-RPC响应返回给LLM客户端。对于需要获取页面内容或执行复杂交互的任务,LLM可以依此调用其他如 'take_screenshot'、'click' 等工具。

信息

分类

AI与计算