P

Playwright MCP 服务

@showfive/playwright-mcp-server
1 Stars 1.1k 次浏览 showfive 更新于 2026-08-23

提供了一个利用模型上下文协议的服务器,通过 Playwright 实现类似人类的浏览器自动化,允许控制浏览器操作,例如导航、元素交互和滚动。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

Playwright MCP 服务器

smithery 徽章

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 工具

以下工具可用:

  1. navigate

    • 导航到指定 URL
    • 参数:{ url: string }
    • 返回:导航结果
  2. get_all_content

    • 从整个页面检索内容
    • 参数:无
    • 返回:页面中的所有文本内容
  3. get_visible_content

    • 检索当前可见的内容
    • 参数:{ minVisiblePercentage?: number }
    • 返回:可见的文本内容
  4. get_interactive_elements

    • 获取页面上交互元素(按钮、链接等)的位置信息
    • 参数:无
    • 返回:交互元素的坐标和边界信息
  5. move_mouse

    • 将鼠标光标移动到指定坐标
    • 参数:{ x: number, y: number }
    • 返回:操作结果
  6. mouse_click

    • 在指定坐标执行鼠标点击
    • 参数:{ x: number, y: number, button?: "left" | "right" | "middle", clickCount?: number }
    • 返回:点击操作结果
  7. mouse_wheel

    • 执行鼠标滚轮滚动
    • 参数:{ deltaY: number, deltaX?: number }
    • 返回:滚动操作结果
  8. drag_and_drop

    • 执行拖放操作
    • 参数:{ sourceX: number, sourceY: number, targetX: number, targetY: number }
    • 返回:拖放操作结果
  9. 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 服务器功能测试

实现特性

  1. 内容检索

    • 全页面内容检索
    • 仅检索可见内容
    • 正确解析 HTML
  2. 交互

    • 交互元素的检测和位置信息检索
    • 鼠标操作模拟(移动、点击、滚动)
    • 支持拖放操作
  3. 错误处理

    • 正确处理导航错误
    • 超时处理
    • 检测无效 URL
  4. 配置灵活性

    • 无头/有头模式选择
    • 自定义用户代理
    • 视口大小设置

重要说明

  • 确保在使用MCP服务器前已设置必要的环境变量
  • 在检索网页内容时遵循目标网站的服务条款
  • 发送多个请求时保持适当的间隔
  • 执行鼠标操作时,因为这些操作模拟了实际用户的交互,请保持适当的间隔

许可证

ISC

相关 MCP 服务