Clive Browser MCP Server
使用说明
-
项目简介
- 该仓库实现了一个 MCP 服务器,用于通过一组浏览器操作工具让 AI 模型能够对浏览器进行自动化控制。服务器内部通过 Chrome CDP 与浏览器交互,并向外暴露一组工具,例如浏览器导航、点击、输入、截图等,方便 LLM 客户端以统一的接口调用。
- 服务器运行模式为以 STDIO 方式与 MCP 客户端通信,适合在需要嵌入式或管道化部署环境中使用。
-
主要功能点
- 暴露浏览器操作工具:如 browser_navigate、browser_click、browser_type、browser_snapshot、browser_wait、browser_status 等,用于实现网页浏览、表单填写、元素交互等自动化场景。
- 通过 Chrome DevTools Protocol (CDP) 与浏览器直接交互,具备较高的控制粒度和实时性。
- 基于 MCP 服务器框架搭建,提供标准的 JSON-RPC 交互、请求/响应以及工具调度能力。
- 通过模块化工具注册,便于扩展更多浏览器相关能力。
- 运行方式简单,支持通过标准输入/输出将 MCP 客户端与服务端连接起来,利于在不同环境部署。
-
安装与运行步骤
- 需要先准备好 Python 环境,以及具备 Chrome/Chromium(可通过常规浏览器安装获得 CDP 接口)。
- 将代码仓库克隆到本地或服务器上,确保依赖安装完毕(可能需要额外安装一个提供 MCP 服务能力的 Python 库,例如 mcp/fastmcp 等依赖)。
- 启动命令(简要说明,不包含代码示例):
- 进入浏览器子目录,执行启动脚本以以标准输入输出方式启动 MCP 服务器。
- 使用 python -m browser 方式启动,会在标准输入/输出流上暴露接口。
- 注意事项
- 需要 Chrome/Chromium 可用且 CDP 端口可访问。
- 某些环境可能需要配置 DISPLAY 变量或桌面环境(对无头环境的支持请参考项目文档)。
- 客户端应通过配置提供的启动命令和参数来连接服务器(详见下面的配置格式)。
-
服务器配置(MCP 客户端需要的连接信息) 备注:客户端需要知道服务器的名称、启动命令及参数等信息,以便与服务器建立连接。以下为一个示例配置的结构描述(JSON 形式描述,不是代码): { "server_name": "clive-browser", "command": "python", "args": ["-m", "browser"], "transport": "stdio", "description": "Clive 浏览器控制服务器,暴露 browser_* 工具给客户端调用,通过 CDP 控制 Chrome 浏览器。" }
- server_name: 服务器对外名称,建议使用“clive-browser”以与代码中的注册名保持一致。
- command: 启动服务器所需的可执行文件(通常是 python)。
- args: 启动参数,包含模块路径及其他必要参数(如 -m browser)。
- transport: 客户端与服务器之间的传输方式(此实现以标准输入输出为主)。
- description: 对服务器的简要描述,便于客户端确认用途。
-
基本使用方法
- 启动后,MCP 客户端向服务器发送请求以调用具体工具,例如:
- browser_navigate: 传入目标 URL,服务器将让浏览器导航到该地址并返回执行结果。
- browser_click: 指定坐标或定位信息,服务器在页面内执行点击操作并返回结果。
- browser_snapshot: 捕获当前页面的结构信息与可交互元素,供后续定位使用。
- browser_status: 获取当前 CDP 连接状态、已打开的标签页等信息。
- 客户端在需要时可以通过组合调用实现复杂的浏览器自动化流程,同时服务器将返回文本或 JSON 格式的结果,供进一步处理或展示。
- 由于是以 MCP 协议进行通信,调用与响应都遵循 JSON-RPC 形式,具体字段位于库的实现细节中,客户端仅需按约定的工具名进行调用并解析返回结果。
- 启动后,MCP 客户端向服务器发送请求以调用具体工具,例如:
-
额外说明
- 该实现将浏览器控制逻辑与 MCP 通信封装在一个服务端里,便于将来扩展更多的浏览器相关能力或迁移到不同的传输通道(如 SSE、WebSocket 等)。
- 使用时请确保浏览器可用且 CDP 端口可访问,且环境具备必要的系统依赖。