Patchright隐秘浏览器自动化服务器
一个精简的模型上下文协议服务器,它使人工智能模型能够使用Patchright进行隐秘的浏览器自动化操作,避免被反机器人系统检测到,同时提供必要的网络交互功能。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"patchright": {
"args": [
"path/to/patchright-lite-mcp-server/dist/index.js"
],
"command": "node"
}
}
}
服务介绍
Patchright Lite MCP 服务器
一个简化的模型上下文协议(MCP)服务器,它封装了 Patchright Node.js SDK,为 AI 模型提供隐蔽的浏览器自动化功能。这个轻量级服务器专注于基本功能,使更简单的 AI 模型更容易使用。
什么是 Patchright?
Patchright 是 Playwright 测试和自动化框架的一个未被检测到的版本。它被设计为 Playwright 的直接替代品,但具有高级隐身功能以避免被反机器人系统检测到。Patchright 修补了各种检测技术,包括:
- Runtime.enable 泄漏
- Console.enable 泄漏
- 命令标志泄漏
- 通用检测点
- 封闭 Shadow Root 交互
此 MCP 服务器封装了 Patchright 的 Node.js 版本,通过简单、标准化的协议使其功能可供 AI 模型使用。
功能
- 简单接口:专注于核心功能,仅包含 4 个基本工具
- 隐身自动化:使用 Patchright 的隐身模式以避免检测
- MCP 标准:实现模型上下文协议以便于 AI 集成
- 标准输入/输出传输:使用标准输入/输出进行无缝集成
先决条件
- Node.js 18+
- npm 或 yarn
安装
-
克隆此仓库:
bash
git clone https://github.com/yourusername/patchright-lite-mcp-server.git
cd patchright-lite-mcp-server -
安装依赖项:
bash
npm install -
构建 TypeScript 代码:
bash
npm run build
使用
运行服务器:
bash
npm start
这将启动带有标准输入/输出传输的服务器,使其准备好与支持 MCP 的 AI 工具集成。
与 AI 模型集成
Claude Desktop
在你的 claude-desktop-config.json 文件中添加以下内容:
json
{
"mcpServers": {
"patchright": {
"command": "node",
"args": ["path/to/patchright-lite-mcp-server/dist/index.js"]
}
}
}
VS Code 与 GitHub Copilot
使用 VS Code CLI 添加 MCP 服务器:
bash
code --add-mcp {"name":"patchright","command":"node","args":["path/to/patchright-lite-mcp-server/dist/index.js"]}
可用工具
该服务器提供了 4 个基本工具:
1. browse
启动浏览器,导航到 URL 并提取内容。
工具: browse
参数: {
"url": "https://example.com",
"headless": true,
"waitFor": 1000
}
返回:
- 页面标题
- 可见文本预览
- 浏览器 ID(用于后续操作)
- 页面 ID(用于后续操作)
- 截图路径
2. interact
在页面上执行简单的交互。
工具: interact
参数: {
"browserId": "browse 中获得的浏览器 ID",
"pageId": "browse 中获得的页面 ID",
"action": "click", // 可以是 "click"、"fill" 或 "select"
"selector": "#submit-button",
"value": "Hello World" // 仅在 fill 和 select 时需要
}
返回:
- 操作结果
- 当前 URL
- 截图路径
3. extract
从当前页面提取特定内容。
工具: extract
参数: {
"browserId": "browse 中获得的浏览器 ID",
"pageId": "browse 中获得的页面 ID",
"type": "text" // 可以是 "text"、"html" 或 "screenshot"
}
返回:
- 根据请求类型提取的内容
4. close
关闭浏览器以释放资源。
工具: close
参数: {
"browserId": "browse 中获得的浏览器 ID"
}
示例使用流程
-
启动浏览器并导航到某个站点:
工具: browse
参数: {
"url": "https://example.com/login",
"headless": false
} -
填写登录表单:
工具: interact
参数: {
"browserId": "步骤 1 中获得的浏览器 ID",
"pageId": "步骤 1 中获得的页面 ID",
"action": "fill",
"selector": "#username",
"value": "user@example.com"
} -
填写密码:
工具: interact
参数: {
"browserId": "步骤 1 中获得的浏览器 ID",
"pageId": "步骤 1 中获得的页面 ID",
"action": "fill",
"selector": "#password",
"value": "password123"
}4. 点击登录按钮:工具: interact
参数: {
"browserId": "来自步骤1的浏览器ID",
"pageId": "来自步骤1的页面ID",
"action": "click",
"selector": "#login-button"
} -
提取文本以验证登录:
工具: extract
参数: {
"browserId": "来自步骤1的浏览器ID",
"pageId": "来自步骤1的页面ID",
"type": "text"
} -
关闭浏览器:
工具: close
参数: {
"browserId": "来自步骤1的浏览器ID"
}
安全注意事项
- 该服务器提供了强大的自动化功能。请负责任地并合乎道德地使用。
- 避免自动化那些会违反网站服务条款的操作。
- 注意速率限制,不要用请求过载网站。
许可证
本项目根据MIT许可证发布 - 详情请参阅LICENSE文件。
致谢
- Kaliiiiiiiiii-Vinyzu 的 patchright-nodejs
- modelcontextprotocol 的 Model Context Protocol
Docker 使用说明
您可以使用Docker运行此服务器:
bash
docker run -it --rm dylangroos/patchright-mcp
本地构建Docker镜像
构建Docker镜像:
bash
docker build -t patchright-mcp .
运行容器:
bash
docker run -it --rm patchright-mcp
Docker Hub
当更改合并到主分支时,镜像将自动发布到Docker Hub。
您可以在以下位置找到最新镜像:dylangroos/patchright-mcp