项目简介

MCP 浏览器代理(MCP Browser Agent)是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为支持 MCP 协议的大型语言模型(如 Claude Desktop)提供强大的浏览器自动化和 API 调用能力。它允许 LLM 通过结构化的指令控制浏览器执行网页导航、交互、数据提取等任务,并能直接发起 HTTP 请求。

主要功能点

  • 高级浏览器自动化:
    • 访问指定 URL,支持自定义加载策略。
    • 捕获当前页面或特定元素的截图。
    • 执行精确的网页元素交互,如点击、填写表单、选择下拉选项、悬停。
    • 在浏览器环境中执行 JavaScript 代码并捕获控制台输出。
  • 强大的 API 客户端:
    • 执行 GET, POST, PUT, PATCH, DELETE 等 HTTP 请求。
    • 配置请求头和请求体内容。
    • 处理响应数据,支持 JSON 格式化。
  • MCP 资源管理:
    • 将浏览器控制台日志作为可访问的资源提供。
    • 通过 MCP 接口提供捕获的截图资源。
  • 持久会话:
    • 维持一个持久的浏览器会话(可见窗口),保留状态以便连续操作。

安装步骤

  1. 克隆仓库: 打开终端,运行以下命令克隆项目代码:
    git clone https://github.com/imprvhub/mcp-browser-agent
    cd mcp-browser-agent
  2. 安装依赖: 进入项目目录后,运行以下命令安装所需的 Node.js 依赖和 Playwright 浏览器驱动:
    npm install
    npm init playwright@latest # 确保 Playwright 及其驱动正确安装
    如果需要安装特定浏览器驱动(例如 chrome),可以运行:
    npx playwright install chrome
  3. 构建项目: 运行构建命令生成可执行文件:
    npm run build

服务器配置

要让 MCP 客户端(如 Claude Desktop)使用此服务器,您需要将其添加到客户端的配置中。通常,这涉及修改客户端的配置文件(例如 Claude Desktop 的 'claude_desktop_config.json'),添加一个新的 MCP 服务器条目。

以下是配置条目所需的关键信息(具体格式和位置请参考您的 MCP 客户端文档):

  • 服务器名称 (name): 例如 '"browserAgent"' (您可以自定义)
  • 启动命令 (command): '"node"'
  • 启动参数 (args): 这是一个数组,包含 Node.js 脚本的路径和任何命令行参数。
    • 数组的第一个元素应为构建后服务器脚本的绝对路径,例如:'"ABSOLUTE_PATH_TO_DIRECTORY/mcp-browser-agent/dist/index.js"'
    • 您可以添加可选参数,例如指定浏览器:'"--browser"', '"chrome"' (支持 'chrome', 'firefox', 'webkit', 'edge')

配置示例 (概念):

{
  "mcpServers": {
    "browserAgent": {
      "command": "node",
      "args": [
        "您_安装_项目_的_绝对_路径/mcp-browser-agent/dist/index.js",
        "--browser",
        "chrome"
      ]
    }
    // 如果有其他MCP服务器,继续在这里添加
    // "anotherServer": { ... }
  }
}

请将 '您_安装_项目_的_绝对_路径' 替换为您实际克隆 'mcp-browser-agent' 仓库的目录的完整绝对路径。

基本使用方法

配置完成后,您的 MCP 客户端应该能够发现并使用此 MCP 服务器提供的工具。您可以直接通过自然语言向 LLM 发出指令,让它调用这些工具。例如:

  1. 网页导航: “请导航到 https://www.google.com” (LLM 会调用 'browser_navigate' 工具)
  2. 截图: “请截取当前页面的全屏,命名为 'google-homepage'” (LLM 会调用 'browser_screenshot' 工具)
  3. 元素交互: “请在搜索框中输入 '天气预报'” (LLM 会调用 'browser_fill' 工具)
  4. API 调用: “请对 https://jsonplaceholder.typicode.com/todos/1 发起一个 GET 请求” (LLM 会调用 'api_get' 工具)

通过组合这些基本指令,LLM 可以在您的指导下执行更复杂的网页自动化和 API 交互任务。

信息

分类

AI与计算