Playwright MCP 實戰指南:讓 AI 直接操作瀏覽器

Playwright MCP 可以把 Playwright 的瀏覽器自動化能力,接到 Model Context Protocol(MCP)裡。換句話說,AI Agent 不只是在聊天視窗裡回答你,它可以真的打開瀏覽器、讀頁面狀態、點按鈕、填表單,再把結果帶回來。

如果你平常會做 AI Agent、網站測試、後台流程檢查,或想讓 Claude、Cursor、VS Code 這類工具幫忙操作網頁,Playwright MCP 是值得先摸一次的入口。

我覺得重點不在「讓 AI 看截圖猜畫面」,而是把頁面狀態變成比較結構化的資訊,讓模型有機會更穩地理解畫面、執行操作。
Playwright MCP 從自然語言任務到瀏覽器操作與結果驗證的流程圖
Playwright MCP 的核心流程:自然語言任務 → MCP → 瀏覽器操作 → 回傳結果。

先講清楚:Playwright MCP 是什麼?

Playwright 本來就是成熟的瀏覽器自動化工具,可以控制 Chromium、Firefox、WebKit。它常被拿來做 E2E 測試、資料擷取,或把重複的網頁流程自動化。

MCP 則負責讓 AI 模型用標準方式連接外部工具。兩者接起來後,Playwright MCP 就像一個橋樑:模型負責判斷下一步,Playwright 負責真的去操作瀏覽器。

角色負責的事你可以怎麼理解
LLM / Agent理解任務、規劃下一步像負責判斷的操作者
MCP Client連接模型與工具像工具總管
Playwright MCP Server提供瀏覽器操作能力像瀏覽器遙控器
Browser實際打開頁面並執行操作真正被控制的瀏覽器

它真正解決的是哪一段痛點?

傳統瀏覽器自動化通常要寫不少程式碼:找 CSS selector、等元素載入、處理登入狀態、截圖、重試。這套方式很可靠,但如果只是臨時檢查一個後台流程,成本會稍微高一點。

Playwright MCP 有趣的地方,是把這些能力變成 Agent 可以呼叫的工具。你可以先用接近日常語言的方式描述目標,再讓 Agent 依照頁面回傳的狀態一步步調整操作。

傳統 PlaywrightPlaywright MCP
工程師撰寫腳本AI Agent 透過工具操作
依賴 selector、程式碼與測試框架依賴頁面快照、工具呼叫與推理
適合穩定、可重複的大量流程適合探索式、互動式、自我修正的流程
維護重點在程式碼維護重點在任務描述、工具設定與驗證
Playwright MCP 的 LLM、MCP Client、MCP Server 與 Browser 架構圖
把架構拆成四層後,就比較容易理解每一層的責任。

它大致怎麼工作?

官方 Playwright MCP 比較特別的是,它主要依賴 accessibility tree,也就是頁面的結構化可存取性資訊,而不是只丟一張截圖給模型看。這會讓模型讀到更明確的元素名稱與狀態,而不是一直在猜畫面上哪裡像按鈕。

使用者目標
  ↓
LLM / Agent 規劃操作
  ↓
MCP Client 呼叫 Playwright MCP 工具
  ↓
Playwright 控制瀏覽器
  ↓
回傳頁面快照、結果或錯誤
  ↓
Agent 判斷下一步

這種模式適合那種需要邊看邊判斷的任務。像是打開某個後台、找到指定資料、確認目前狀態,必要時再往下一頁或下一步走。

安裝與基本設定

Playwright MCP 通常透過 Node.js 和 npx 啟動。官方需求是 Node.js 18 以上,MCP client 則可以是 VS Code、Cursor、Claude Desktop、Windsurf 這類支援 MCP 的工具。

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

如果你用的是 Claude Code,也可以直接用 CLI 加進去:

claude mcp add playwright npx @playwright/mcp@latest

設定好之後,我會先用很小的任務確認它真的有接上:

  • 打開一個公開網站
  • 讀取頁面標題
  • 點擊一個明確的連結
  • 回報目前頁面上看到的主要按鈕

我會在哪些場景使用它?

我不會把 Playwright MCP 當成傳統自動化腳本的替代品。它比較適合放在「需要理解畫面、途中還要做判斷」的流程裡。

場景可以怎麼用注意事項
後台流程檢查登入後台、確認資料是否出現、檢查狀態登入權限與敏感資料要控管
探索式測試讓 Agent 嘗試操作新功能並回報卡點需要明確驗證標準
資料擷取從互動式頁面讀取表格或狀態大量資料仍應優先找 API
工作流自動化幫忙填表、建立草稿、檢查設定涉及外部送出前要人工確認
UI 迴歸檢查確認按鈕、表單、路由是否正常穩定測試仍建議寫成正式測試碼
Playwright MCP 適合與不適合使用情境的決策圖
Playwright MCP 很適合探索與互動式任務,但不是所有自動化都應該交給 MCP。

MCP 和 CLI 不要混在一起看

官方文件也有提醒:如果你用的是 coding agent,有些情境其實更適合 CLI 搭配 Skills,不一定要硬接 MCP。

原因很現實。MCP tool schema 和頁面的 accessibility snapshot 都會吃掉模型上下文;相較之下,CLI 指令通常短很多,對大型程式碼任務也比較省 token。

選擇比較適合原因
Playwright MCP需要持續瀏覽器狀態、探索頁面、互動式操作Agent 可以一邊觀察頁面一邊決定下一步
Playwright CLI + Skills大量程式碼修改、固定測試流程、高吞吐 coding agent指令更精簡,較不佔模型上下文

幾個實際使用建議

1. 先從小任務開始

不要一開始就丟一個很大的任務給 Agent。比較穩的做法,是先拆成幾個能驗證的小步驟:開頁面、確認登入、找到目標元素、執行操作、檢查結果。

2. 任務描述要明確

像「幫我檢查後台」就太模糊了。改成「打開訂單列表,確認最新一筆訂單狀態是不是已付款,並回報看到的欄位」,Agent 比較知道該看什麼、回什麼。

3. 外部送出前要停下來

只要流程牽涉送出表單、建立資料、刪除資料、發佈文章或付款,我會要求 Agent 在最後一步前停住,先說明它準備做什麼。

4. 大量批次任務優先找 API

瀏覽器自動化很方便,但不是每件事都該從瀏覽器做。如果網站有 API,大量而穩定的任務通常還是走 API 比較好;Playwright MCP 適合補上那些真的需要看頁面、理解狀態的部分。

常見卡關點

問題可能原因建議處理
Agent 找不到按鈕元素沒有清楚的可存取名稱,或頁面還沒載入先要求讀取頁面快照,再確認元素名稱
操作偶爾失敗網路延遲、動畫、非同步資料載入把流程拆小,加入確認步驟與重試策略
登入狀態不穩session 過期或瀏覽器 profile 沒保留確認使用的瀏覽器環境與登入保存方式
上下文很快爆掉頁面快照太大或任務太長縮小任務範圍,必要時改用 CLI 或測試腳本
網站阻擋自動化反機器人機制或權限限制不要硬繞限制,改用官方 API 或人工流程

一個比較貼近日常的工作流範例

假設我要請 Agent 檢查某個管理後台的新功能,我會把指令寫得像這樣:

請打開本機開發環境的管理後台。
確認側邊欄是否有「專案」入口。
進入專案列表後,檢查是否能看到至少一筆資料。
不要建立、刪除或送出任何資料。
最後請整理:目前頁面狀態、看到的主要按鈕、任何錯誤訊息。

這類指令的好處是目標明確、限制清楚,而且最後有可驗證的輸出。比起只說「幫我測一下」,穩定很多。

收尾:它適合放在哪裡

我會把 Playwright MCP 看成一個介於「人工操作」和「完整自動化腳本」之間的工具。它不是要取代所有 Playwright 測試,而是讓 Agent 多了一種可以直接碰瀏覽器的能力。

當任務需要看頁面、理解狀態、做多輪判斷時,它很有用;但如果流程大量、固定、可程式化,傳統 Playwright 測試、CLI 或 API 還是比較可靠。

比較務實的用法是:把 Playwright MCP 當成探索式、互動式自動化工具。它很好用,但不是所有瀏覽器任務的萬用解法。
Author image
關於 Richard Zheng
About me 喜歡爬山,瑜伽,溜冰,喜歡新奇的事,最喜歡的還是寫程式帶來的成就感,對於資訊會不斷的出現新事物也能抱持好奇與熱忱。近期開始將學習的心得寫在Blog,發現思路更清晰也加深了記憶。 紙上得來終覺淺,絕知此事要躬行