02
個人開發者場景:先建立圖形會話,再接入 Agent
Safari MCP 的遠端 Mac 部署,最容易失敗的地方不是安裝,而是把 SSH 登入、圖形登入與 Safari 權限混成同一件事。Safari 需要能顯示並維持瀏覽器狀態的使用者會話;單純在沒有圖形桌面的 SSH shell 中啟動命令,不應被視為已經完成可用配置。
第一步:建立專用系統帳戶與工作區
使用獨立的 macOS 帳戶,例如 <DEV_ACCOUNT>,不要直接使用管理員日常帳戶。將程式碼放在 <WORKSPACE_PATH>,測試輸出放在另一個目錄,並把 Agent 使用的 API Token 存放於受限權限的環境變數或秘密管理機制中。
敏感站點、主機名稱、Cookie、帳戶與路徑都應使用佔位符,例如 <TARGET_URL>、<REMOTE_HOST> 和 <COOKIE_SCOPE>。這不只是文件示例習慣,而是避免除錯記錄把客戶資料送入模型服務的重要界線。
第二步:準備持續的圖形登入
先透過受控遠端桌面登入 <DEV_ACCOUNT>,開啟 Safari,再由外部主機使用 SSH 管理程式碼與任務。若圖形會話被登出、螢幕鎖定策略阻止瀏覽器互動,或使用者工作階段在 SSH 斷線後被清理,Agent 即使仍能執行命令,也可能無法得到真實頁面證據。
因此,個人試驗應先驗證「遠端桌面保持登入、SSH 可管理、Safari 可見」這三個條件,再處理 MCP。
第三步:開啟 Safari 開發者功能
Safari 的開發者設定會影響網頁檢查、主控台與自動化相關能力。請依照Apple 的 Safari 開發者設定文件,在專用帳戶中確認當日版本對應的設定名稱與啟用方式,不要直接套用舊版本教學。
Safari 27 Beta 的 MCP 能力已由 Apple 官方資料列出,但 Beta 不代表穩定版承諾;Safari Technology Preview 也可能隨版本調整啟動方式。因此,文件中的命令與設定必須在實際節點逐項核對。
第四步:以官方示例啟動 safaridriver MCP 模式
在遠端 Mac 上使用兼容 MCP 的客戶端,依照 WebKit 官方示例讓 safaridriver 啟動 MCP 服務。配置檔中的帳戶、工作目錄與主機名稱應保留為佔位符,例如:
{
"mcpServers": {
"safari": {
"command": "/usr/bin/safaridriver",
"args": ["<依寫作當日官方文件指定的 MCP 參數>"]
}
}
}
這裡刻意不把 Beta 階段的固定參數寫死。實際上線時,請以WebKit Safari MCP 官方文章中的啟動示例及目前 safaridriver 行為為準,並記錄使用的 Safari、Safari Technology Preview 與 macOS 版本。
第五步:完成最小證據驗收
不要以「MCP client 顯示已連線」作為完成條件。讓 Agent 對 <TARGET_URL> 依序執行以下檢查:
- 讀取頁面標題與指定 DOM 節點,確認內容屬於本次部署的版本。
- 取得主控台錯誤,區分網頁錯誤、瀏覽器限制與 Agent 自己的判斷。
- 檢查指定網路請求的 URL、狀態與回應摘要,避免把快取內容當作最新結果。
- 擷取畫面,核對畫面中的 URL、登入狀態與頁面版本。
- 修改一個可回復的測試頁面,重新載入後確認變更確實由同一個 Safari 會話呈現。
DOM、主控台、請求資料和截圖各自只能證明一部分事情。它們能支援網頁結構與部分相容性判斷,卻不能單獨證明觸控操作、真實裝置感測器、視覺回歸或發佈流程完全正常。