项目简介
'browser_agent' 是一个轻量级的MCP服务器,它将CAMEL框架的HybridBrowserToolkit封装为符合Model Context Protocol (MCP) 的工具。这个服务器允许基于大型语言模型(LLM)的应用通过标准化的协议,实现对Web浏览器的自动化控制,包括网页导航、元素交互、截图捕获等功能,极大地扩展了LLM与互联网世界的交互能力。
主要功能点
- 完整的浏览器自动化: 支持点击、输入、导航、页面滚动等所有浏览器基本操作,使LLM能够像人类一样与网页互动。
- 截图与元素识别: 能够捕获带注释的网页截图,并识别页面上的可交互元素,帮助LLM理解页面布局和内容。
- 多标签页管理: 支持打开、关闭和切换多个浏览器标签页,实现复杂的多任务处理。
- JavaScript执行: 允许在浏览器控制台中执行自定义JavaScript代码,进行高级的页面操作和数据提取。
- 键盘鼠标控制: 提供高级的键盘按键模拟和鼠标操作(如拖拽),模拟用户精确操作。
- 可配置工具集: 用户可以根据安全或功能需求,灵活启用或禁用特定的浏览器自动化工具。
安装步骤
- 克隆仓库:
git clone https://github.com/camel-ai/browser_agent.git cd browser_agent - 安装依赖:
在仓库目录下运行以下命令安装所需依赖:
或者,您也可以直接通过pip安装:pip install -e .pip install hybrid-browser-mcp - 注意: 此工具的浏览器控制器基于TypeScript,需要Node.js环境。它会自动下载和管理浏览器二进制文件。请确保您的系统已安装Node.js。
服务器配置
要将此MCP服务器与MCP客户端(例如Claude Desktop)连接,您需要在客户端的配置文件中添加MCP服务器信息。配置通常位于 'claude_desktop_config.json' 文件中,其具体位置取决于您的操作系统:
- macOS: '~/Library/Application Support/Claude/claude_desktop_config.json'
- Windows: '%APPDATA%\Claude\Claude_Desktop_Config.json'
- Linux: '~/.config/Claude/claude_desktop_config.json'
您需要在 'mcpServers' 字段下添加一个名为 'hybrid-browser' 的新条目,并配置其启动命令和参数。以下是配置示例及其说明:
{ "mcpServers": { "hybrid-browser": { // MCP服务器的唯一标识名称,客户端通过此名称引用和调用 "command": "python", // 启动服务器的命令,通常是Python解释器的路径,例如 "python" 或 "/usr/bin/python3" "args": [ "-m", // Python模块运行模式 "hybrid_browser_mcp.server" // 要启动的MCP服务器Python模块 ] } } }
请注意:
- 'command' 字段应使用您的Python解释器的正确路径。您可以通过在终端运行 'which python' 或 'which python3' 来查找。
- 确保 'hybrid-browser-mcp' 包已安装在上述Python环境中。
- 完成配置后,请务必完全重启您的MCP客户端(例如Claude Desktop)以使更改生效。
您可以通过点击客户端界面中的“插头”图标来验证连接,确保“hybrid-browser”显示为可用工具。
基本使用方法
一旦MCP服务器配置成功并与客户端连接,LLM客户端即可通过调用预定义的浏览器自动化工具来与网页互动。具体的工具调用将由LLM根据其任务和上下文自动生成。以下是一些LLM可能调用的基本操作示例:
- 打开浏览器并访问页面:
- LLM调用 'browser_open()' 来启动一个新的浏览器会话。
- LLM调用 'browser_visit_page(url="https://www.example.com")' 来导航到指定网址。
- 获取页面信息和截图:
- LLM调用 'browser_get_page_snapshot()' 获取页面可交互元素的文本快照,了解页面结构。
- LLM调用 'browser_get_som_screenshot()' 捕获带有视觉元素注释的截图,帮助LLM识别和定位页面上的对象。
- 与页面元素互动:
- LLM调用 'browser_click(ref="element_id")' 点击页面上具有指定引用ID的元素。
- LLM调用 'browser_type(ref="input_field_id", text="您的输入内容")' 在指定输入框中输入文本。
- 关闭浏览器:
- LLM调用 'browser_close()' 关闭当前的浏览器会话。
信息
分类
AI与计算