AI Engineer Europe 2026 · 演講 · 2026-05-23 · 23 分
把網站變成 agent 能用的畫布
Introducing WebMCP: Agents in the Browser · RL Nabors
RL Nabors 拿自己的老網漫存檔站當實驗品:一個伺服器同時服務瀏覽器裡的人、agent 裡的人,以及替人上網的瀏覽器 agent。從 MCP 傳輸、MCP apps 的限制,一路講到 WebMCP。
概要
- 一個伺服器,三種用戶端RL Nabors 想讓同一份網漫內容同時給瀏覽器裡的人、agent 裡的人,以及替人上網的瀏覽器 agent 使用,並依序示範三種做法。
- HTTP 傳輸比 stdio 好上手stdio 的伺服器是用戶端在本機啟動的行程,使用者得改設定檔;HTTP 的伺服器是網路服務,使用者只要在 Claude 的設定裡貼上網址。HTTP 也適合 serverless。
- MCP resources 沒有用戶端支援RL Nabors 想把整批逐字稿一次放進 context,而不是讓 Claude 一集一集呼叫工具去抓。resources 正好適合,但找不到能用的用戶端,因此呼籲做 agent harness 的人實作。
- MCP apps 是 agent 裡的小型網站tool 可以回傳打包成單一檔案的 HTML、CSS 與 JavaScript,在 agent 裡直接顯示漫畫閱讀器。它跑在沙盒 iframe 裡,沒有 local storage、沒有網路存取,外部資源要靠 CSP 設定放行。
- WebMCP 讓頁面自己交出工具瀏覽器 agent 現在靠截圖或讀 DOM 操作網站,很耗運算。WebMCP 讓頁面把自己的函式直接註冊成 agent 能呼叫的工具,有宣告式與命令式兩種寫法。
- 規格還在變RL Nabors 說標準組織仍在來回討論,WebMCP 與 MCP 規格可能分歧,示範用的是一個除錯用的擴充功能,不是真正的瀏覽器內建 agent。
原話
▶ 02:14“It is an infinite canvas that can render anything, not just documents, but video, audio.”
它是一塊什麼都能渲染的無限畫布,不只文件,還有影片和音訊
▶ 10:48“Agents really don't like using MCP tools to go add Markdown to their context.”
agent 真的不愛用 MCP 工具把 Markdown 加進自己的 context
▶ 15:09“They're not like websites. They're an island.”
它們不像網站,是一座孤島
▶ 18:35“It's really just like tools for agents in your browser, yo.”
說穿了,就是給瀏覽器裡的 agent 用的工具
延伸
- WebMCP 的由來:RL 轉述 WebMCP 創作者的說法,它起源於 Amazon,最初是為了繞過一堆驗證問題而做。
- RL 說示範用的漫畫都是自己的作品,不必擔心版權;圖也先用 glazing 處理過,避免被拿去訓練。
- RL Nabors 說自己會把 getPage 的輸入參數精簡成只需要故事線 ID 與頁碼,這場沒有示範改完的結果。
章節
點時碼直接跳到原片的那一段。
- 自我介紹RL Nabors 說自己做過 Firefox DevTools、W3C 的 Web Animations API、Edge 的 PM 與 React 文件站,近三年替 AI 新創與瀏覽器公司做顧問。
- 瀏覽器是無限畫布RL Nabors 從做網漫起步,主張瀏覽器不只是文件閱讀器,什麼都能渲染;現在寫的是 agent 如何改變瀏覽與內容消費。
- 動機:修舊網漫站每年 RL Nabors 會挑一件拖著沒做的事當講題,這次是 2010 年左右建的網漫存檔站,決定順便讓它能被 agent 使用。
- 一個伺服器三種用戶端目標是讓人在瀏覽器、人在 agent、agent 在瀏覽器都能用同一個伺服器,並預告講 MCP 工具與傳輸、MCP apps、WebMCP 三塊。
- stdio 與 HTTP 傳輸比較兩種傳輸:stdio 是本機行程、HTTP 是網路服務,安全與隱私問題 RL Nabors 明說不在這場範圍。
- 把 HTTP 伺服器接進 Claude示範在 Claude 設定裡新增 connector 貼上網址,RL Nabors 直言這個入口藏得深,希望 Anthropic 改善。
- 網漫的工具清單列出漫畫、故事線、角色、搜尋與依角色搜尋等工具,多半回傳 JSON,逐字稿則回傳 Markdown,並實際在 Claude 裡操作。
- 呼籲實作 resourcesRL Nabors 想用 resources 把全部逐字稿放進 context,但規格鬆散、找不到有實作的用戶端,也抱怨 agent 不愛用工具去抓文件。
- 從聊天框到 MCP appsRL Nabors 把聊天框首頁比成「海星設計」,要使用者自己摸索;MCP apps 則在 agent 裡提供豐富的視覺介面。
- getPage 與 UI 欄位講 getPage 工具的定義、輸入 schema,以及用 meta 屬性的 UI 欄位指向一個網址,讓工具回傳漫畫閱讀器。
- MCP apps 的限制單一 HTML、沙盒 iframe、沒有 local storage 與網路存取,連結要經 host 許可,外部資源要設 CSP,也要把不給模型用的 tool 設成只有 app 可見。
- 瀏覽器 agent 的痛點內建 agent 的瀏覽器靠截圖或讀 DOM 操作網站,耗運算又耗 token,所以需要 WebMCP 這種直接呼叫頁面函式的辦法。
- WebMCP 兩種寫法宣告式是在 form 上加 tool name 與 description 屬性;命令式是在 navigator.modelContext 註冊工具,附名稱、描述、輸入 schema 與執行 callback。
- 用擴充功能示範標準仍在變動,RL 改用一個除錯用的擴充功能和聊天視窗示範,模型自己呼叫工具翻到下一頁。
- 結語:網路沒死RL Nabors 說網路只是在演化,並用瀏覽器內建的 Web Speech API 示範朗讀漫畫,強調這類現成 API 都等著被用。
名詞
- MCP apps
- 把 HTML、CSS、JavaScript 打包成單一檔案,由 tool 回傳、在 agent 裡顯示的互動介面
- stdio
- MCP 的本機傳輸方式,伺服器由用戶端啟動成本機行程,靠標準輸入輸出溝通
- HTTP transport
- MCP 的網路傳輸方式,伺服器聽一個 HTTP 端點,靠 POST 請求溝通
- MCP resources
- MCP 規格裡讓伺服器提供內容給 context 的機制,RL Nabors 說目前少有用戶端實作
- WebMCP
- 讓網頁把自己的功能註冊成 agent 工具的瀏覽器端做法,RL Nabors 形容與 MCP 的關係像 JavaScript 與 Java
- navigator.modelContext
- 命令式 WebMCP 用來註冊工具的入口,註冊時給名稱、描述、輸入 schema 與執行 callback
- CSP
- 內容安全政策,MCP app 裡外部字型、圖片等資源預設被擋,要靠它放行
- WebMCP 除錯擴充功能
- RL 用來示範 WebMCP 的瀏覽器擴充功能,可看到頁面暴露的工具,並模擬瀏覽器內的 agent 聊天
- Web Speech API
- 瀏覽器內建的語音合成能力,RL Nabors 用來朗讀漫畫,不需要額外依賴與推論
- Arize
- RL Nabors 目前任職的公司







