Home
Login

基於 Playwright 的模型上下文協定 (MCP) 伺服器,為 LLM 提供瀏覽器自動化功能

Apache-2.0TypeScript 11.8kmicrosoft Last Updated: 2025-06-13

Microsoft Playwright MCP 項目詳細介紹

概述

Microsoft Playwright MCP 是一個基於模型上下文協議(Model Context Protocol, MCP)的伺服器,它利用 Playwright 為大語言模型(LLM)提供強大的瀏覽器自動化能力。該項目的核心創新在於通過結構化的可訪問性快照與網頁進行交互,完全繞過了傳統的截圖或視覺調優模型的需求。

這個項目代表了AI代理與Web交互的一種全新範式,讓LLM能夠以更高效、更精確的方式操作瀏覽器,執行複雜的網頁自動化任務。

核心功能與特性

🚀 核心技術優勢

  • 快速且輕量級:使用Playwright的可訪問性樹結構,而非基於像素的輸入方式
  • LLM友好:無需視覺模型,純粹基於結構化數據運行
  • 確定性工具應用:避免了基於截圖方法常見的歧義性問題
  • 高可靠性:提供穩定、可預測的自動化結果

📋 主要應用場景

  1. 網頁導航和表單填寫

    • 自動化網頁瀏覽
    • 智能表單數據填充
    • 多步驟操作流程
  2. 結構化內容數據提取

    • 網頁數據抓取
    • 內容解析和提取
    • 數據結構化處理
  3. LLM驅動的自動化測試

    • 智能測試用例生成
    • 自動化迴歸測試
    • 用戶行為模擬
  4. 代理的通用瀏覽器交互

    • AI代理網頁操作
    • 自動化工作流程
    • 智能網頁助手

安裝與配置

VS Code 集成安裝

方法一:配置文件方式

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "@playwright/mcp@latest"
      ]
    }
  }
}

方法二:命令行安裝

# VS Code
code --add-mcp '{"name":"playwright","command":"npx","args":["@playwright/mcp@latest"]}'

# VS Code Insiders
code-insiders --add-mcp '{"name":"playwright","command":"npx","args":["@playwright/mcp@latest"]}'

運行模式

有頭模式(默認)

標準的帶界面瀏覽器模式,適合開發和調試:

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["@playwright/mcp@latest"]
    }
  }
}

無頭模式

適合後台或批處理操作:

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "@playwright/mcp@latest",
        "--headless"
      ]
    }
  }
}

SSE傳輸模式

用於無顯示系統或IDE工作進程:

npx @playwright/mcp@latest --port 8931

配置文件:

{
  "mcpServers": {
    "playwright": {
      "url": "http://localhost:8931/sse"
    }
  }
}

交互模式詳解

快照模式(默認推薦)

  • 使用可訪問性快照
  • 更好的性能和可靠性
  • 結構化數據交互

視覺模式

  • 使用截圖進行視覺交互
  • 適合需要基於視覺的操作
  • 需要支持計算機使用的模型

啟用視覺模式:

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "@playwright/mcp@latest",
        "--vision"
      ]
    }
  }
}

可用工具API

基礎交互工具

頁面操作

  • browser_click - 執行點擊操作
  • browser_hover - 懸停元素
  • browser_drag - 拖拽操作
  • browser_type - 文本輸入
  • browser_select_option - 下拉選擇

導航控制

  • browser_navigate - 導航到URL
  • browser_navigate_back - 後退
  • browser_navigate_forward - 前進

標籤頁管理

  • browser_tab_list - 列出所有標籤頁
  • browser_tab_new - 新建標籤頁
  • browser_tab_select - 選擇標籤頁
  • browser_tab_close - 關閉標籤頁

高級功能工具

內容捕獲

  • browser_snapshot - 可訪問性快照(推薦)
  • browser_take_screenshot - 頁面截圖
  • browser_screen_capture - 屏幕捕獲

文件操作

  • browser_file_upload - 文件上傳
  • browser_pdf_save - 保存為PDF

系統交互

  • browser_press_key - 按鍵操作
  • browser_handle_dialog - 處理瀏覽器對話框
  • browser_resize - 調整窗口大小
  • browser_wait - 等待指定時間

屏幕坐標操作(視覺模式)

  • browser_screen_move_mouse - 鼠標移動
  • browser_screen_click - 坐標點擊
  • browser_screen_drag - 屏幕拖拽
  • browser_screen_type - 屏幕輸入

調試工具

  • browser_console_messages - 獲取控制台消息
  • browser_install - 安裝瀏覽器

用戶數據管理

Playwright MCP 會在以下位置創建瀏覽器配置文件:

  • Windows: %USERPROFILE%\AppData\Local\ms-playwright\mcp-chrome-profile
  • macOS: ~/Library/Caches/ms-playwright/mcp-chrome-profile
  • Linux: ~/.cache/ms-playwright/mcp-chrome-profile

所有登錄信息都將存儲在該配置文件中,您可以在會話之間刪除它以清除離線狀態。

編程集成

對於需要編程集成的場景,可以使用以下方式:

import { createServer } from '@playwright/mcp';

const server = createServer({
  launchOptions: { headless: true }
});

transport = new SSEServerTransport("/messages", res);
server.connect(transport);

總結

Microsoft Playwright MCP 項目是AI代理瀏覽器自動化領域的重要創新,它通過以下幾個關鍵優勢重新定義了LLM與Web的交互方式:

🎯 技術創新點

  1. 結構化交互範式:摒棄傳統的截圖+視覺識別方式,採用可訪問性樹結構,提供更精確、更高效的交互體驗

  2. LLM原生設計:專為大語言模型優化,無需額外的視覺處理能力,降低了系統複雜度和資源消耗

  3. Microsoft官方支持:作為Microsoft官方項目,提供了企業級的可靠性和持續維護保障

🌟 應用價值

  • 開發效率提升:為開發者提供了強大的自動化測試和網頁操作工具
  • AI代理增強:讓AI代理具備了真正實用的網頁操作能力
  • 成本效益優化:通過結構化方法降低了計算資源需求

🚀 未來前景

該項目代表了AI與Web交互的未來發展方向,隨著MCP生態的不斷完善,預計將在以下領域發揮重要作用:

  • 智能客服和用戶支持自動化
  • 複雜業務流程的智能化處理
  • 大規模Web數據採集和分析
  • 跨平台應用的自動化測試

Microsoft Playwright MCP 不僅是一個技術工具,更是AI代理能力邊界拓展的重要里程碑,為構建更智能、更實用的AI應用提供了堅實的技術基礎。