article
README
🚀 Playwright MCP 服务器
该项目是一个使用 Model Context Protocol (MCP) 提供 Playwright 网页内容检索功能的服务器,能实现页面导航、内容检索、交互元素检测等多种功能,为网页操作和测试提供便利。
🚀 快速开始
该项目是一个使用 Model Context Protocol (MCP) 提供 Playwright 网页内容检索功能的服务器。你可以按照以下步骤启动并使用该服务器。
✨ 主要特性
- 页面导航
- 全页内容检索
- 可见内容检索
- 交互元素检测
- 鼠标操作模拟
- 测试用例回响功能
📦 安装指南
使用 Smithery 安装
通过 Smithery 自动安装 Playwright MCP Server for Claude Desktop:
npx -y @smithery/cli install @showfive/playwright-mcp-server --client claude
手动安装
npm install
💻 使用示例
启动服务器
npm run build
npm start
MCP 工具
以下工具可供使用:
-
navigate- 导航至指定 URL
- 参数:
{ url: string } - 返回值:导航结果
-
get_all_content- 检索整个页面的内容
- 参数:无
- 返回值:页面中的所有文本内容
-
get_visible_content- 检索当前可见的内容
- 参数:
{ minVisiblePercentage?: number } - 返回值:当前可见的文本内容
-
get_interactive_elements- 获取交互元素的位置信息(按钮、链接等)
- 参数:无
- 返回值:页面上交互元素的坐标和边界信息
-
move_mouse- 将鼠标指针移动到指定坐标
- 参数:
{ x: number, y: number } - 返回值:操作结果
-
mouse_click- 在指定坐标执行鼠标点击
- 参数:
{ x: number, y: number, button?: "left" | "right" | "middle", clickCount?: number } - 返回值:点击操作的结果
-
mouse_wheel- 执行鼠标滚轮滚动
- 参数:
{ deltaY: number, deltaX?: number } - 返回值:滚动操作的结果
-
drag_and_drop- 执行拖放操作
- 参数:
{ sourceX: number, sourceY: number, targetX: number, targetY: number } - 返回值:拖放操作的结果
-
echo- 测试用例回响工具
- 参数:
{ message: string } - 返回值:发送的消息
🔧 技术细节
运行测试
# 执行所有测试
npm test
# 以监控模式运行测试
npm run test:watch
# 生成覆盖率报告
npm run test:coverage
测试结构
tools/*.test.ts:每个工具的功能测试mcp-server.test.ts:MCP 服务器功能测试
实现特点
-
内容检索
- 全页内容检索
- 可见内容-only 检索
- 正确的 HTML 解析
-
交互操作
- 交互元素检测和位置信息获取
- 鼠标操作模拟(移动、点击、滚动)
- 拖放支持
-
错误处理
- 正确的导航错误处理
- 超时处理
- 无效 URL 检测
-
灵活性配置
- 无头模式与有头模式选择
- 自定义用户代理
- 视口大小设置
📄 许可证
ISC
⚠️ 重要提示
- 使用 MCP 服务器前请确保环境变量已正确设置。
- 使用目标网站的服务条款进行内容检索时,请遵守相关规定。
- 发送多个请求时保持适当的间隔。
- 执行鼠标操作时,保持适当的时间间隔以模拟实际用户交互。
微信扫一扫