Playwright 浏览器自动化服务
一个使用 Playwright 提供浏览器自动化功能的 Model Context Protocol 服务器,使大型语言模型(LLMs)能够与网页交互、截屏和在真实的浏览器环境中执行 JavaScript。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"puppeteer": {
"args": [
"path/to/puppeteer.py"
],
"command": "python"
}
}
}
服务介绍
Puppeteer MCP 服务器(Python 实现)
这是一个使用 Playwright(Puppeteer 的 Python 版本)提供浏览器自动化功能的模型上下文协议服务器。该服务器使 LLMs 能够与网页交互、截取屏幕截图并在真实的浏览器环境中执行 JavaScript。
概览
此 Python 实现为 TypeScript 版本提供了稳定的替代方案,具有相同的特性,并且改进了错误处理和日志记录。它使用 Playwright,这是 Puppeteer 的 Python 版本,提供了强大的浏览器自动化能力。
主要特性
- 完全浏览器自动化
- 页面导航
- 截图捕获(全页或元素)
- 表单交互(点击和填写)
- JavaScript 执行
- 控制台日志监控
- 可配置的超时
- 详细的错误处理
- 全面的日志记录
前提条件
- Python 3.8+
- pip(Python 包安装器)
安装
- 安装所需的包:
pip install -r requirements.txt
- 安装 Playwright 浏览器:
playwright install
使用方法
启动服务器
直接运行服务器:
python puppeteer_server.py
Claude 桌面配置
将以下内容添加到您的 Claude 配置文件中:
{
"mcpServers": {
"puppeteer": {
"command": "python",
"args": ["path/to/puppeteer.py"]
}
}
}
可用工具
puppeteer_navigate
在浏览器中导航至任何 URL。
{
"name": "puppeteer_navigate",
"arguments": {
"url": "https://example.com",
"timeout": 60000 // optional, defaults to 60000ms
}
}
puppeteer_screenshot
捕获整个页面或特定元素的截图。
{
"name": "puppeteer_screenshot",
"arguments": {
"name": "my_screenshot",
"selector": "#specific-element", // optional
"width": 1280, // optional, default: 1280
"height": 720, // optional, default: 720
"timeout": 30000 // optional, defaults to 30000ms
}
}
puppeteer_click
点击页面上的元素。
{
"name": "puppeteer_click",
"arguments": {
"selector": ".button-class",
"timeout": 30000 // optional, defaults to 30000ms
}
}
puppeteer_fill
填写输入字段。
{
"name": "puppeteer_fill",
"arguments": {
"selector": "#input-id",
"value": "text to fill",
"timeout": 30000 // optional, defaults to 30000ms
}
}
puppeteer_evaluate
在浏览器控制台中执行 JavaScript。
{
"name": "puppeteer_evaluate",
"arguments": {
"script": "document.title",
"timeout": 30000 // optional, defaults to 30000ms
}
}
错误处理
服务器为常见场景提供了详细的错误消息:
- 导航失败
- 未找到元素
- 超时错误
- JavaScript 执行错误
- 截图失败
日志
实现了不同级别的全面日志记录:
- INFO:标准操作
- ERROR:操作失败
- DEBUG:详细的执行信息
注意事项
- 浏览器以非无头模式启动以便更好地调试
- 默认视口大小为 1280x720
- 所有超时均可配置
- 控制台日志被捕获并存储
- 截图以 base64 编码存储在内存中
贡献
欢迎贡献!请在提交拉取请求之前阅读仓库的贡献指南。
许可证
该项目根据 Apache 2.0 许可证授权 - 详情请参阅 LICENSE 文件。