WebMCP:讓網站把前端功能直接宣告成 AI Agent 可呼叫工具
WebMCP 是一項實驗中的 Web API 提案,讓網頁以 document.modelContext.registerTool() 或表單宣告結構化工具,供瀏覽器內建、iframe 或 extension agent 發現與呼叫。它補足後端 MCP:共享目前頁面、登入與 UI 狀態,減少依賴截圖、DOM scraping 和模擬點擊;定位是有人監督的瀏覽器工作流,不是無 UI 的全自動代理,也不取代後端 MCP。
Agentic Web / Client-side Tools / Experimental API
WebMCP 把網站從「被 AI 看懂」改成「主動告訴 AI 可以做什麼」
傳統 browser agent 依賴截圖、DOM、accessibility tree 與模擬點擊;WebMCP 讓網站直接註冊有名稱、說明、JSON schema 與執行函式的工具。Agent 不必猜哪個按鈕代表什麼,網站也能重用既有前端邏輯,在同一頁面內保留使用者可見狀態與控制權。
網站端
以 document.modelContext.registerTool() 註冊 imperative tool,或由 HTML form 形成 declarative tool。
瀏覽器/Agent 端
發現目前頁面的工具與 schema,傳入結構化參數,由瀏覽器居中調用頁面 callback。
共享 UI 狀態
工具可更新畫面、呼叫既有 API,使用者在頁面上看到過程與結果,不需複製登入與狀態到外部 MCP server。
魔術方塊 Demo 說明了什麼
Threads 貼文展示一個 WebMCP 魔術方塊頁面:使用者或 agent 先把方塊打亂,再要求 agent 解開。真正示範的不是 AI 透過視覺猜按鈕,而是頁面預先暴露可操作方塊的工具,讓 ChatGPT 桌面版中的 agent 呼叫這些前端能力,並在原 UI 中完成狀態變化。
WebMCP 與後端 MCP 的差別
| 面向 | WebMCP | 後端 MCP/OpenAPI 整合 |
|---|---|---|
| 工具位置 | 目前瀏覽器頁面與前端 JavaScript | 服務端 MCP server 或 API |
| 上下文 | 天然共享目前頁面、UI、登入狀態與使用者操作 | 常需另行傳遞使用者、會話與服務狀態 |
| 互動方式 | 更新當前 UI,適合人機協作 | 可在背景直接完成服務端操作 |
| 主要用途 | 設計工具、購物篩選、表單、地圖、編輯器、複雜前端 | 資料查詢、跨服務工作流、排程與 headless automation |
| 關係 | 互補,不是互相取代;WebMCP README 明確把後端 MCP 列為非取代目標。 | |
工具生命週期
- Registration:頁面註冊工具名稱、描述、inputSchema 與 execute callback。
- Discovery:連到頁面的 agent 查詢目前可用工具。
- Invocation:agent 傳入符合 schema 的結構化參數。
- Execution:瀏覽器居中呼叫頁面函式,頁面重用既有 client-side 邏輯。
- Response:結果回到 agent,畫面也可同步更新,讓使用者審視與接手。