浏览器自动化服务器

Patchright Lite MCP Server 是一个轻量级的浏览器自动化服务器,通过 Model Context Protocol (MCP) 为 AI 模型提供隐蔽的浏览器自动化功能,适用于需要网页交互的 AI 应用场景。

  • by dylangroos
  • TypeScript
  • 本地部署
  • 25 星标
  • 更新于
在 GitHub 查看 dylangroos/patchright-mcp-lite

使用说明

Patchright Lite MCP服务器

一个简化的模型上下文协议(MCP)服务器,封装了Patchright Node.js SDK,为AI模型提供隐形浏览器自动化功能。这个轻量级服务器专注于基本功能,使更简单的AI模型更容易使用。

什么是Patchright?

Patchright是Playwright测试和自动化框架的一个未被发现的版本。它被设计为Playwright的直接替代品,但具有先进的隐形功能,可以避免被反机器人系统检测到。Patchright修补了各种检测技术,包括:

  • Runtime.enable泄漏
  • 控制台启用泄漏
  • 命令标志泄漏
  • 一般检测点
  • 封闭阴影根交互

此MCP服务器封装了Node.js版本的Patchright,通过简单、标准化的协议使其功能可用于AI模型。

特性

  • 简单接口:专注于核心功能,仅使用4个基本工具
  • 隐形自动化:使用Patchright的隐形模式来避免被发现
  • MCP标准:实现模型上下文协议,便于人工智能集成
  • 标准运输:使用标准输入/输出实现无缝集成

先决条件

  • Node.js 18+
  • npm或纱线

安装

  1. 克隆此存储库:

    git clone https://github.com/yourusername/patchright-lite-mcp-server.git
    cd patchright-lite-mcp-server
    
  2. 安装依赖项:

    npm install
    
  3. 构建TypeScript代码:

    npm run build
    
  4. 安装Pathright的Chromium驱动程序:

    npx patchright install chromium
    

用法

使用以下命令运行服务器:

npm start

这将使用stdio传输启动服务器,使其准备好与支持MCP的AI工具集成。

与AI模型集成

克劳德桌面

将此添加到您的 claude-desktop-config.json 文件:

{
  "mcpServers": {
    "patchright": {
      "command": "node",
      "args": ["path/to/patchright-lite-mcp-server/dist/index.js"]
    }
  }
}

VS代码与GitHub Copilot

使用VS Code CLI添加MCP服务器:

code --add-mcp '{"name":"patchright","command":"node","args":["path/to/patchright-lite-mcp-server/dist/index.js"]}'

可用工具

服务器仅提供4个基本工具:

1.浏览

启动浏览器,导航到URL并提取内容。

Tool: browse
Parameters: {
  "url": "https://example.com",
  "headless": true,
  "waitFor": 1000
}

退货:

  • 页面标题
  • 可见文本预览
  • 浏览器ID(用于后续操作)
  • 页面ID(用于后续操作)
  • 屏幕截图路径

2.互动

在页面上执行简单的交互。

Tool: interact
Parameters: {
  "browserId": "browser-id-from-browse",
  "pageId": "page-id-from-browse",
  "action": "click", // can be "click", "fill", or "select"
  "selector": "#submit-button",
  "value": "Hello World" // only needed for fill and select
}

退货:

  • 行动结果
  • 当前URL
  • 屏幕截图路径

3.提取物

从当前页面提取特定内容。

Tool: extract
Parameters: {
  "browserId": "browser-id-from-browse",
  "pageId": "page-id-from-browse",
  "type": "text" // can be "text", "html", or "screenshot"
}

退货:

  • 根据请求的类型提取内容

4.关闭

关闭浏览器以释放资源。

Tool: close
Parameters: {
  "browserId": "browser-id-from-browse"
}

示例使用流程

  1. 启动浏览器并导航到网站:

    Tool: browse
    Parameters: {
      "url": "https://example.com/login",
      "headless": false
    }
    
  2. 填写登录表格:

    Tool: interact
    Parameters: {
      "browserId": "browser-id-from-step-1",
      "pageId": "page-id-from-step-1",
      "action": "fill",
      "selector": "#username",
      "value": "user@example.com"
    }
    
  3. 填写密码:

    Tool: interact
    Parameters: {
      "browserId": "browser-id-from-step-1",
      "pageId": "page-id-from-step-1",
      "action": "fill",
      "selector": "#password",
      "value": "password123"
    }
    
  4. 点击登录按钮:

    Tool: interact
    Parameters: {
      "browserId": "browser-id-from-step-1",
      "pageId": "page-id-from-step-1",
      "action": "click",
      "selector": "#login-button"
    }
    
  5. 提取文本以验证登录:

    Tool: extract
    Parameters: {
      "browserId": "browser-id-from-step-1",
      "pageId": "page-id-from-step-1",
      "type": "text"
    }
    
  6. 关闭浏览器:

    Tool: close
    Parameters: {
      "browserId": "browser-id-from-step-1"
    }
    

安全考虑

  • 此服务器提供强大的自动化功能。以负责任和合乎道德的方式使用它。
  • 避免自动化违反网站服务条款的操作。
  • 请注意费率限制,不要让网站上的请求过载。

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

致谢

  • Kaliiiiiiii Vinyzu的补丁nodejs
  • 通过modelcontextprotocol实现模型上下文协议

Docker使用

您可以使用Docker运行此服务器:

docker run -it --rm dylangroos/patchright-mcp

在本地构建Docker镜像

构建Docker镜像:

docker build -t patchright-mcp .

运行容器:

docker run -it --rm patchright-mcp

Docker Hub

当更改合并到主分支时,映像会自动发布到Docker Hub。 您可以在以下网址找到最新图像: dylangroos/patchright mcp