这是一个使用 Playwright(Python 的 Puppeteer 对等库)提供浏览器自动化能力的 Model Context Protocol 服务器。该服务器使 LLM 能够与网页进行交互,抓取屏幕截图,并在真实的浏览器环境中执行 JavaScript。
此 Python 实现提供了比 TypeScript 版本更稳定的替代方案,具有相同的特性并改进了错误处理和日志记录。它使用 Playwright,这是 Python 中的 Puppeteer 对等库,提供强大的浏览器自动化能力。
pip install -r requirements.txt
playwright install
直接运行服务器:
python puppeteer_server.py
在你的 Claude 配置文件中添加以下内容:
{
"mcpServers": {
"puppeteer": {
"command": "python",
"args": ["path/to/puppeteer.py"]
}
}
}
导航到浏览器中的任意 URL。
{
"name": "puppeteer_navigate",
"arguments": {
"url": "https://example.com",
"timeout": 60000 // 可选,默认为 60000 毫秒
}
}
捕获整个页面或特定元素的屏幕截图。
{
"name": "puppeteer_screenshot",
"arguments": {
"name": "my_screenshot",
"selector": "#specific-element", // 可选
"width": 1280, // 可选,默认为 1280
"height": 720, // 可选,默认为 720
"timeout": 30000 // 可选,默认为 30000 毫秒
}
}
点击页面上的元素。
{
"name": "puppeteer_click",
"arguments": {
"selector": ".button-class",
"timeout": 30000 // 可选,默认为 30000 毫秒
}
}
填写输入字段。
{
"name": "puppeteer_fill",
"arguments": {
"selector": "#input-id",
"value": "要填写的文本",
"timeout": 30000 // 可选,默认为 30000 毫秒
}
}
在浏览器控制台中执行 JavaScript。
{
"name": "puppeteer_evaluate",
"arguments": {
"script": "document.title",
"timeout": 30000 // 可选,默认为 30000 毫秒
}
}
服务器为常见场景提供了详细的错误消息:
实现了不同级别的全面日志记录:
欢迎贡献!请在提交拉取请求之前阅读仓库的贡献指南。
该项目根据 Apache 2.0 许可证发布 - 详情见 LICENSE 文件。 </中文翻译>