WebKit 推出 Safari MCP Server,讓 AI 代理直接操控瀏覽器除錯
WebKit Blog · 2026-07-01
WebKit 團隊於 2026 年 7 月 1 日在 官方部落格 宣布推出 Safari MCP Server,這項功能隨 Safari Technology Preview 247(STP 247)一併釋出,讓支援 Model Context Protocol(MCP)的 AI 代理可以直接連上一個真實的 Safari 視窗,讀取渲染結果、呼叫瀏覽器 API 並自動化除錯流程。這是 WebKit 首次把瀏覽器本身開放成一個 MCP 伺服器,而不只是被動接受外部工具操作。
背景
MCP(Model Context Protocol)是一套讓 LLM 應用程式與外部工具、資料來源溝通的開放協定,底層以 JSON-RPC 2.0 傳輸,伺服器對外暴露一組可被模型呼叫的「工具」(tool)。目前 Anthropic Claude、GitHub Copilot 等主流 AI 開發工具都已支援以 MCP 用戶端的身份連接外部伺服器;WebKit 這次做的事情,是把 Safari 本身包裝成這樣一個伺服器來源,而不是要求開發者另外寫一支瀏覽器自動化腳本。相關協定細節可參考 MCP 官方規格文件。
核心改動
Safari MCP Server 內建在 safaridriver 執行檔中,透過新增的 --mcp 參數啟動,等於直接沿用既有的 WebDriver 基礎設施,而非另起一套通訊層。啟用前,開發者需要先在 STP 247 的「設定」中打開兩個開關:Advanced 分頁的「Show features for web developers」,以及 Developer 分頁的「Enable remote automation and external agents」。
以 Claude Code 為例,加入伺服器只需要一行指令:
claude mcp add safari-mcp-stp -- "/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver" --mcp其他支援 MCP 的代理則可以在 mcp.json 或 config.json 中手動註冊:
"safari-mcp-stp": {
"command": "/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver",
"args": ["--mcp"]
}連上之後,代理可呼叫的工具涵蓋分頁管理、內容擷取與互動模擬三大類,總計十餘個工具函式:
list_tabs/create_tab/close_tab/switch_tab:分頁生命週期管理navigate_to_url/wait_for_navigation/page_info:頁面導覽與載入狀態get_page_content/screenshot:以多種格式擷取內容或截圖evaluate_javascript:在頁面情境中執行 JS 並取回結果page_interactions:模擬點擊、輸入、捲動、hover、按鍵等 DOM 操作list_network_requests/get_network_request:檢視網路請求摘要與細節browser_console_messages/browser_dialogs:讀取主控台訊息、處理瀏覽器對話框set_viewport_size/set_emulated_media:調整視窗尺寸與模擬列印等媒體情境
影響範圍
WebKit 在文章中特別強調隱私邊界:Safari MCP Server 完全在本機執行、不會對外發送任何網路請求,也不會讀取 Safari 既有的 AutoFill 或瀏覽紀錄等個人資料,代理擷取到的內容只會回傳給連線的那個代理本身。文章同時提醒開發者,只應該把瀏覽器存取權交給信任的代理,因為 evaluate_javascript 與 page_interactions 等工具等同於取得頁面的完整操作能力。
對前端工程師而言,這代表除錯迴圈可以縮短:AI 代理能自行重現問題頁面、截圖比對版面、讀取 console 錯誤並嘗試修正,不必工程師手動複製貼上錯誤訊息。由於功能目前僅存在於 STP 247,尚未進入正式版 Safari,實際穩定性與工具集仍可能在後續 Technology Preview 中調整。
原始來源:Introducing the Safari MCP server for web developers、Release Notes for Safari Technology Preview 247
Safari Technology Preview 247 釋出:CSS calc-mix()、大量 SVG 與捲動修正
WebKit Blog · 2026-07-01
WebKit 於 2026 年 7 月 1 日釋出 Safari Technology Preview 247,對應建置版本區間為 314716@main 到 315846@main。這個版本除了前述的 Safari MCP Server 之外,也在 CSS、SVG、捲動行為與網路快取上帶來一批修正,適合已在追蹤 WebKit 最新行為的前端工程師檢視。
規格細節
CSS 方面最值得注意的是新增 calc-mix() 函式支援,這是 CSS 數值函式家族的最新成員,用途是在計算式中依比例混合兩個數值。同一批修正也處理了數學函式的邊界情況:min()、max()、clamp()、mod() 現在會正確處理帶正負號的零值,避免計算結果在零附近出現符號錯誤。
字型渲染上,font-synthesis 先前會錯誤地對可變字型(variable font)套用合成斜體,以及在明確指定 font-weight: normal 的可變字型上仍套用合成粗體限制,這兩個問題都已修正。表單方面則修掉了 <legend> 設定正值 margin-top 卻不會把外層 <fieldset> 往下推的排版錯誤。
SVG 是本次修正數量最多的分類,共處理了十餘項問題,包括:
getBoundingClientRect()在<tspan>上會錯誤回傳父層<text>的邊界- 視窗定位的 SVG 濾鏡(filter)會產生不該出現的黑色方塊
IntersectionObserver無法正確以 SVG 元素作為觀察根節點- 固定定位的 SVG 元素遺失
box-shadow getRotationOfChar()在 360 度與 0 度之間的正規化錯誤
捲動行為則修正了 scrollend 事件在平滑捲動被中斷時的觸發時機、超大捲動吸附區塊在版面變動後重新吸附的問題,以及 macOS 26 上水平橡皮筋效果(rubber-banding)互相干擾的狀況。網路快取則讓 Cache-Control 的 max-age、min-fresh、no-store 等指令得到正確遵循,並修正了收到 304 回應時 Content-* 標頭未同步更新快取的問題。
影響範圍
安全性項目中,CSP(內容安全政策)有兩項修正值得留意:'self' 來源比對先前無法正確匹配不透明來源(opaque-origin)的 HTTP(S) 文件;另外 script-src 指令先前會誤套用到 JSON 模組匯入(JSON module import),而規格上這類匯入應改由 connect-src 管控,兩者都已修正,會影響對 CSP 設定較嚴格的網站。
WebDriver 分類下除了收錄 Safari MCP Server 的連線能力外,也修正了全頁截圖在超出視窗尺寸時被裁切的問題。Spatial Web 分類則移除了 Spatial Backdrop 開發者預覽功能,改以 Immersive API 取代,代表相關 API 進入淘汰階段。整體而言,本次釋出偏向大量細節修正而非破壞性變更,前端工程師若已在專案中使用 calc-mix() 或依賴 SVG 精確幾何計算,會是這個版本最直接受益的族群。
原始來源:Release Notes for Safari Technology Preview 247、Introducing the Safari MCP server for web developers