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或纱线
安装
- 克隆此存储库:
git clone https://github.com/yourusername/patchright-lite-mcp-server.git
cd patchright-lite-mcp-server- 安装依赖项:
npm install- 构建TypeScript代码:
npm run build- 安装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"
}示例使用流程
- 启动浏览器并导航到网站:
Tool: browse
Parameters: {
"url": "https://example.com/login",
"headless": false
}- 填写登录表格:
Tool: interact
Parameters: {
"browserId": "browser-id-from-step-1",
"pageId": "page-id-from-step-1",
"action": "fill",
"selector": "#username",
"value": "user@example.com"
}- 填写密码:
Tool: interact
Parameters: {
"browserId": "browser-id-from-step-1",
"pageId": "page-id-from-step-1",
"action": "fill",
"selector": "#password",
"value": "password123"
}- 点击登录按钮:
Tool: interact
Parameters: {
"browserId": "browser-id-from-step-1",
"pageId": "page-id-from-step-1",
"action": "click",
"selector": "#login-button"
}- 提取文本以验证登录:
Tool: extract
Parameters: {
"browserId": "browser-id-from-step-1",
"pageId": "page-id-from-step-1",
"type": "text"
}- 关闭浏览器:
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-mcpDocker Hub
当更改合并到主分支时,映像会自动发布到Docker Hub。 您可以在以下网址找到最新图像: dylangroos/patchright mcp
