Playwright MCP:让 AI 拥有浏览器自动化超能力!
🚀 Microsoft 开源的 Playwright MCP 服务器,让你的 AI 助手能够像人类一样操作浏览器!
🌟 什么是 Playwright MCP?
Playwright MCP(Model Context Protocol)是微软开源的一个强大工具,它让 AI 助手能够:
- 🔍 自动浏览网页 - 导航、点击、输入
- 📸 截图和录制 - 捕获页面内容和用户交互
- 🧪 生成测试代码 - 自动创建 Playwright 测试脚本
- 📊 数据抓取 - 提取网页信息和内容
- 🎯 表单填写 - 自动化表单提交和数据输入
📈 项目热度
- ⭐ 11.2k+ Stars - GitHub 上备受关注
- 🍴 735+ Forks - 活跃的开源社区
- 📦 最新版本: v0.0.28 (2025年6月1日)
🛠️ 快速安装配置
Playwright MCP 需要在支持 MCP 的 AI 客户端中进行配置,以下是各个客户端的安装方法:
🎯 在 VS Code 中安装
方法一:UI 界面安装
- 打开 VS Code 设置
- 搜索 "MCP"
- 添加新的 MCP 服务器配置
方法二:命令行安装
css
# 使用 VS Code CLI 一键安装
code --add-mcp '{"name":"playwright","command":"npx","args":["@playwright/mcp@latest"]}'
方法三:手动配置 在 VS Code 的 MCP 配置中添加:
perl
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
🎯 在 Cursor 中安装
-
打开 Cursor Settings
-
导航到 MCP 部分
-
点击 Add new MCP Server
-
配置如下:
- Name: playwright(或任意名称)
- Command Type: command
- Command :
npx @playwright/mcp
或者直接使用配置文件:
perl
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
🎯 在 Windsurf 中安装
按照 Windsurf MCP 文档 的指引,使用以下配置:
perl
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
🎯 在 Claude Desktop 中安装
- 按照 Claude Desktop MCP 安装指南
- 在配置文件中添加:
perl
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
✅ 安装验证
配置完成后,重启对应的 AI 客户端,在聊天中你应该能看到 Playwright 相关的工具可用。可以尝试询问:
"请帮我打开 example.com 并截图"
如果配置成功,AI 助手将能够执行浏览器操作。
🎯 核心功能详解
1. 页面交互操作
🖱️ 点击和输入
browser_click
- 智能点击页面元素browser_type
- 模拟键盘输入browser_hover
- 鼠标悬停效果browser_drag
- 拖拽操作
🧭 页面导航
browser_navigate
- 打开指定网址browser_navigate_back
- 返回上一页browser_navigate_forward
- 前进到下一页
2. 内容捕获工具
📷 截图功能
php
// 全页面截图
browser_take_screenshot({
filename: "webpage.png",
raw: false // JPEG 压缩格式
})
// 元素截图
browser_take_screenshot({
element: "登录按钮",
ref: "#login-btn"
})
📄 PDF 导出
css
browser_pdf_save({
filename: "report.pdf"
})
3. 数据监控分析
🌐 网络请求监控
browser_network_requests
- 查看所有网络请求browser_console_messages
- 获取控制台日志
👀 页面快照
browser_snapshot
- 获取页面可访问性信息(推荐用于操作)
4. 标签页管理
🗂️ 多标签操作
browser_tab_new
- 创建新标签页browser_tab_select
- 切换标签页browser_tab_close
- 关闭标签页browser_tab_list
- 列出所有标签页
5. 高级功能
🤖 自动化测试生成
php
browser_generate_playwright_test({
name: "用户登录测试",
description: "测试用户登录流程",
steps: [
"打开登录页面",
"输入用户名和密码",
"点击登录按钮",
"验证登录成功"
]
})
📁 文件上传
css
browser_file_upload({
paths: ["/path/to/file1.pdf", "/path/to/file2.jpg"]
})
💡 实际应用场景
🛒 电商场景
- 价格监控: 定期检查商品价格变化
- 库存提醒: 自动检测商品库存状态
- 比价分析: 跨平台价格对比
📊 数据采集
- 新闻抓取: 自动收集最新资讯
- 报告生成: 定期生成数据报告
- 竞品分析: 监控竞争对手动态
🧪 测试自动化
- 回归测试: 自动化 UI 测试
- 性能监控: 页面加载时间检测
- 兼容性测试: 跨浏览器测试
📱 社交媒体
- 内容发布: 批量发布社交媒体内容
- 数据统计: 自动收集互动数据
- 粉丝管理: 批量关注/取消关注
🔧 配置示例
基础配置文件
perl
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp"],
"env": {
"BROWSER": "chromium",
"HEADLESS": "true"
}
}
}
}
进阶配置选项
json
{
"browser": "chromium", // 浏览器类型
"headless": true, // 无头模式
"viewport": { // 视窗大小
"width": 1280,
"height": 720
},
"timeout": 30000, // 超时设置
"slowMo": 100 // 操作延迟
}
⚡ 快速上手示例
示例 1:自动搜索并截图
php
// 1. 打开搜索引擎
await browser_navigate({url: "https://www.google.com"})
// 2. 输入搜索关键词
await browser_type({
element: "搜索框",
text: "Playwright MCP",
submit: true
})
// 3. 等待结果加载
await browser_wait_for({text: "搜索结果"})
// 4. 截图保存
await browser_take_screenshot({
filename: "search_results.png"
})
示例 2:表单自动填写
php
// 1. 打开表单页面
await browser_navigate({url: "https://example.com/form"})
// 2. 填写表单字段
await browser_type({
element: "姓名输入框",
text: "张三"
})
await browser_type({
element: "邮箱输入框",
text: "[email protected]"
})
// 3. 选择下拉选项
await browser_select_option({
element: "城市选择",
values: ["北京"]
})
// 4. 提交表单
await browser_click({element: "提交按钮"})
🎯 最佳实践建议
1. 性能优化
- ✅ 使用无头模式提高执行速度
- ✅ 合理设置超时时间
- ✅ 批量操作减少页面跳转
2. 稳定性保障
- ✅ 添加适当的等待时间
- ✅ 使用 try-catch 错误处理
- ✅ 实现重试机制
3. 安全考虑
- ✅ 避免硬编码敏感信息
- ✅ 使用环境变量管理配置
- ✅ 定期更新依赖版本
🚀 进阶技巧
1. 并发执行
php
// 同时打开多个标签页处理不同任务
const tasks = [
browser_tab_new({url: "https://site1.com"}),
browser_tab_new({url: "https://site2.com"}),
browser_tab_new({url: "https://site3.com"})
]
2. 数据导出
csharp
// 组合使用截图和 PDF 导出
await browser_take_screenshot({filename: "preview.png"})
await browser_pdf_save({filename: "full_report.pdf"})
3. 智能等待
csharp
// 等待特定文本出现/消失
await browser_wait_for({text: "加载完成"})
await browser_wait_for({textGone: "正在加载..."})
📚 学习资源
- 📖 官方文档 : npmjs.com/package/@pl...
- 🐙 GitHub 仓库 : github.com/microsoft/p...
- 🎓 Playwright 官网 : playwright.dev
🤝 社区支持
- 💬 GitHub Issues: 报告 bug 和功能请求
- 📢 社区讨论: 参与开源社区建设
- 🔄 定期更新: 关注版本发布动态
总结
Playwright MCP 为 AI 助手提供了强大的浏览器自动化能力,无论是数据抓取、测试自动化还是日常的重复性网页操作,都能大大提高效率。
🌟 立即开始你的 Playwright MCP 之旅吧!
关注我们,获取更多 AI 工具和自动化技巧分享!
📌 小贴士: 记得在使用过程中遵守网站的 robots.txt 规则和相关法律法规哦!