项目简介

Playwright MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,它利用 Playwright 提供的浏览器自动化能力,使得大型语言模型 (LLM) 能够与网页进行交互。通过该服务器,LLM 可以执行如网页导航、元素点击、信息填写、截图等操作,并能获取网页内容和执行 JavaScript 代码,从而扩展 LLM 在 Web 场景下的应用能力。

主要功能点

  • 网页自动化操作:支持 LLM 通过工具调用控制浏览器执行各种自动化操作,例如:
    • 导航到指定 URL
    • 点击网页元素
    • 填写表单
    • 选择下拉框选项
    • 鼠标悬停
    • 执行 JavaScript 代码
    • 截取网页或特定元素的屏幕截图
  • API 请求:支持 LLM 发起 HTTP 请求 (GET, POST, PUT, PATCH, DELETE),方便 LLM 与 Web API 进行数据交互。
  • 资源管理
    • 浏览器控制台日志:提供访问浏览器控制台日志的资源接口,方便 LLM 获取网页运行时的日志信息。
    • 屏幕截图:支持将屏幕截图作为资源进行管理和访问,LLM 可以通过资源 URI 获取截图内容。
  • 工具注册和调用:预置了一系列基于 Playwright 的工具,LLM 可以调用这些工具来执行浏览器自动化和 API 请求任务。
  • 配置灵活:支持通过简单的 JSON 配置即可与 MCP 客户端连接,方便集成到各种 LLM 应用中。

安装步骤

Playwright MCP Server 可以通过 npm, mcp-get 或 Smithery 等多种方式安装。

使用 npm 安装:

npm install -g @executeautomation/playwright-mcp-server

使用 mcp-get 安装:

npx @michaellatman/mcp-get@latest install @executeautomation/playwright-mcp-server

使用 Smithery 安装:

npx -y @smithery/cli install @executeautomation/playwright-mcp-server --client claude

服务器配置

要将 Playwright MCP Server 集成到 MCP 客户端(例如 Claude Desktop),您需要配置客户端以连接到该服务器。以下是 Claude Desktop 的配置示例,其他 MCP 客户端的配置方式类似,关键是配置服务器的启动命令和参数。

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["-y", "@executeautomation/playwright-mcp-server"]
    }
  }
}

配置参数说明:

  • '"playwright"': 服务器名称,可以自定义,用于在客户端中标识该服务器。
  • '"command": "npx"': 启动服务器的命令,这里使用 'npx' 来执行 npm 包。
  • '"args": ["-y", "@executeautomation/playwright-mcp-server"]': 传递给 'npx' 命令的参数。
    • '"-y"': 'npx' 的参数,表示自动确认执行。
    • '"@executeautomation/playwright-mcp-server"': 要执行的 npm 包名,即 Playwright MCP Server 的包名。

请将以上 JSON 配置添加到您的 MCP 客户端的配置文件中,并确保客户端能够正确加载该配置。启动客户端后,客户端将尝试连接到 Playwright MCP Server。

基本使用方法

  1. 安装 Playwright MCP Server:根据上述安装步骤选择合适的方式安装服务器。
  2. 配置 MCP 客户端:根据上述服务器配置示例,配置您的 MCP 客户端,使其能够连接到 Playwright MCP Server。
  3. 启动 MCP 客户端和服务器:启动您的 MCP 客户端,客户端会自动启动并连接到 Playwright MCP Server(如果服务器尚未运行)。
  4. 在 LLM 中使用工具:在支持 MCP 协议的 LLM 应用中,您可以通过工具调用来使用 Playwright MCP Server 提供的各种浏览器自动化和 API 请求工具。例如,您可以指示 LLM 使用 'playwright_navigate' 工具来访问特定网页,或使用 'playwright_screenshot' 工具来截取网页截图,并获取截图资源 URI 以供后续使用。

具体可用的工具及其参数,请参考 API reference

信息

分类

开发者工具