网页内容检索服务

Playwright MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器,提供网页内容检索、交互元素检测和鼠标操作模拟等功能。

  • by showfive
  • TypeScript
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 showfive/playwright-mcp-server

使用说明

剧作家MCP服务器

英语| 日本语

此项目是一个使用模型上下文协议(MCP)提供Playwright网页内容检索功能的服务器。

特性

  • 页面导航
  • 整页内容检索
  • 可见内容检索
  • 交互式元素检测
  • 鼠标操作模拟
  • 用于测试的回声功能

安装

通过Smithery安装

通过以下方式自动安装克劳德桌面版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服务器之前,确保设置了必要的环境变量
  • 检索网页内容时,请遵循目标网站的服务条款
  • 发送多个请求时保持适当的间隔
  • 执行鼠标操作时,在模拟实际用户交互时保持适当的间隔

许可证

国际协调委员会