项目简介
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服务和浏览器扩展连接整合在一个进程中,共享资源,提高效率。
- 会话管理: 支持多会话代理,并提供空闲会话自动清理功能。
- 可配置性: 支持通过命令行参数和环境变量灵活配置服务器端口、功能启用/禁用、代理行为等。
安装步骤
- 克隆仓库: 'git clone https://github.com/browseros-ai/BrowserOS-server.git' 'cd BrowserOS-server'
- 安装依赖: 确保您的系统已安装 Bun (v1.0.0或更高版本) 和 Chrome 稳定版。 'bun install'
- 启动服务器: '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与计算