Playwright MCP 服务
提供了一个利用模型上下文协议的服务器,通过 Playwright 实现类似人类的浏览器自动化,允许控制浏览器操作,例如导航、元素交互和滚动。
服务介绍
Playwright MCP 服务器
English | 日本語
该项目是一个使用模型上下文协议(MCP)提供 Playwright 网页内容检索功能的服务器。
特性
- 页面导航
- 全页面内容检索
- 可见内容检索
- 交互元素检测
- 鼠标操作模拟
- 用于测试的回显功能
安装
通过 Smithery 安装
要通过 Smithery 自动为 Claude Desktop 安装 Playwright MCP 服务器:
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 } - 返回:发送的消息
开发
运行测试
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Generate coverage report
npm run test:coverage
测试结构
tools/*.test.ts: 每个工具的功能测试mcp-server.test.ts: MCP 服务器功能测试
实现特性
-
内容检索
- 全页面内容检索
- 仅检索可见内容
- 正确解析 HTML
-
交互
- 交互元素的检测和位置信息检索
- 鼠标操作模拟(移动、点击、滚动)
- 支持拖放操作
-
错误处理
- 正确处理导航错误
- 超时处理
- 检测无效 URL
-
配置灵活性
- 无头/有头模式选择
- 自定义用户代理
- 视口大小设置
重要说明
- 确保在使用MCP服务器前已设置必要的环境变量
- 在检索网页内容时遵循目标网站的服务条款
- 发送多个请求时保持适当的间隔
- 执行鼠标操作时,因为这些操作模拟了实际用户的交互,请保持适当的间隔
许可证
ISC