YetiBrowser MCP
官方YetiBrowser MCP 是一個完全開源的解決方案,讓 AI 助手能輕鬆與您現有的瀏覽器互動。
你可以用 Yeti Browser MCP 做什麼?
- 導航並擷取頁面快照 — 要求助理使用
browser_navigate載入網址,並回傳結果頁面的無障礙快照。 - 填寫並提交網頁表單 — 使用
browser_fill_form或browser_type填入多個欄位,並可選擇提交表單。 - 檢查主控台輸出與頁面狀態 — 透過
browser_get_console_logs和browser_page_state擷取錯誤、日誌、表單資料、Cookie 及儲存金鑰。 - 在頁面中執行自訂 JavaScript — 使用
browser_evaluate執行任意腳本,並取得可序列化為 JSON 的結果,用於除錯或資料擷取。 - 擷取螢幕截圖 — 使用
browser_screenshot拍攝可視區域或全頁截圖,用於視覺驗證或品質保證流程。
文件
[!IMPORTANT] 此專案已封存。它最初是為了解決 Claude 和 Codex 等 AI 代理缺乏瀏覽器控制能力的問題而建置,但這些代理現在已內建相關功能,不再需要專門的 MCP 解決方案。
YetiBrowser MCP
YetiBrowser MCP 是 Browser MCP 工作流程的完全開源實作。它將基於 Node 的 MCP 伺服器與 Chrome/Firefox 擴充功能連結,讓模型上下文協定(Model Context Protocol)客戶端——例如 Codex/Claude Code、Cursor、Windsurf、MCP Inspector 或您自己的工具——能夠自動化真實的瀏覽器分頁,同時確保所有資料都保留在您的機器上且可供稽核。
為何選擇 YetiBrowser MCP?
- 透明且可修改 – 無需下載二進位檔案。可檢查、分支及擴充每個元件。
- 本地優先 – 擴充功能僅與 localhost 的 MCP 伺服器通訊;瀏覽資料絕不會離開您的裝置。
- 跨瀏覽器 – 共享邏輯同時支援 Chrome 和 Firefox 套件(Firefox 版本因等待更完善的 Manifest V3 支援而暫緩,因此在 Mozilla 釋出完整的 MV3 API 之前,連線體驗可能受限)。
- 開發者導向工具 – 更豐富的主控台擷取、DOM 差異比對、頁面狀態傾印以及專為除錯和 QA 設計的全頁螢幕截圖。
- 適合生產環境 – 提供用於封裝、發布以及與 IDE 工作流程整合的腳本和文件。
儲存庫佈局
packages/shared– 訊息和工具綱要的共享 TypeScript 定義。packages/server– 將 MCP 客戶端橋接到執行中瀏覽器分頁的 MCP 伺服器。extensions/shared– 共享的擴充功能原始碼(背景腳本/彈出視窗)和資源。extensions/chrome/extensions/firefox– 各瀏覽器的封裝層。docs/– 工作區指令、發布檢查清單和功能說明。scripts/– 輔助工具,例如用於發布壓縮檔的package-extensions.sh。
可用的 MCP 工具
browser_snapshot– 擷取目前頁面以無障礙為導向的快照browser_snapshot_diff– 比較最近兩次快照,以突顯 DOM/ARIA 的變更browser_navigate– 在已連線的分頁中載入新的 URL,並回傳更新後的快照browser_go_back/browser_go_forward– 在歷史記錄中移動,同時保持 MCP 同步browser_wait– 將自動化暫停指定的秒數browser_wait_for– 在繼續之前,封鎖直到指定的選擇器出現(可選的可見性條件)browser_press_key– 在聚焦的元素上模擬鍵盤按鍵按下browser_click– 點擊由 CSS 選擇器識別的元素browser_hover– 將指標懸停在目標元素上browser_drag– 將元素拖曳到放置目標上,用於可排序/拖放的 UIbrowser_type– 在可編輯元素中輸入文字(可選用 Enter 鍵提交)browser_fill_form– 在單次呼叫中填寫多個輸入框/下拉選單/核取方塊/單選按鈕browser_select_option– 在<select>元素中選擇一個或多個選項browser_screenshot– 透過 DevTools 協定擷取視窗或全頁螢幕截圖browser_get_console_logs– 回傳最近的主控台輸出,包括帶有堆疊追蹤的錯誤browser_page_state– 傾印已連線頁面的表單、儲存鍵值和 Cookiebrowser_connection_info– 回報橋接 WebSocket 連接埠、連線狀態和擴充功能版本browser_evaluate– 在頁面內執行自訂 JavaScript,並回傳可 JSON 序列化的結果browser_handle_dialog– 接受或關閉alert/confirm/prompt對話框,可附帶提示文字
MCP 瀏覽器擴充功能安裝
Chrome 瀏覽器
- 在此安裝最新的 Chrome 瀏覽器擴充功能:https://chromewebstore.google.com/detail/hpedknkjljpopinabjjmljgckhlancni?utm_source=item-share-cb
- 除非您正在執行多個 YetiBrowser MCP 伺服器實例,否則請將其保持在 自動 連線模式
Firefox 瀏覽器(目前尚不可用)
- 由於 Firefox 穩定版本中 Manifest v3 的功能有限,Firefox 擴充功能將暫緩,直到完整支援普遍可用(Nightly 版本除外)。
MCP 伺服器安裝
Codex CLI
- 編輯您的 ~/.codex/config.toml 並新增 MCP 條目:
[mcp_servers.yetibrowser-mcp] command = "npx" args = ["-y", "@yetidevworks/server"] - 重新啟動
codexCLI 指令;您應該會在/mcp工具下看到yetibrowser-mcp列表。 - 如果您想指定特定的連接埠,請對 args 條目使用此格式:
args = ["-y", "@yetidevworks/server", "--ws-port", "9010"]
Claude Code
- 確保擴充功能已安裝並連線到某個分頁,然後使用
npx -y @yetidevworks/server啟動 MCP 伺服器(或執行本地建置的 CLI)。 - 將伺服器條目新增至
~/Library/Application Support/Claude/claude_desktop_config.json(請參閱docs/publishing.md中的範例)。 - 重新啟動
claude,使其載入新的 MCP 伺服器;一旦擴充功能連線,您應該會在/mcp工具選單下看到yetibrowser-mcp列表。
其他支援 MCP 的客戶端
- 任何 MCP 客戶端都可以透過執行 CLI(
npx -y @yetidevworks/server)來連線,或可選擇性地指定特定連接埠,例如npx -y @yetidevworks/server --ws-port 9010。 - 伺服器透過 stdio 公開標準的 MCP 傳輸,因此請使用您的客戶端支援的任何設定機制,在分頁連線時執行上述指令。
MCP Inspector
- 用於在編碼代理之外進行測試和除錯。
npx @modelcontextprotocol/inspector npx -y @yetidevworks/server -- --ws-port 9010以執行並檢查 MCP 伺服器,並搭配 YetiBrowser MCP 瀏覽器擴充功能使用。
疑難排解
- CLI 會從連接埠
9010-9020開始尋找,直到找到可用的為止,並在推進時記錄switched to。如果您想固定使用特定連接埠,請傳遞--ws-port <port>。 - 瀏覽器擴充功能的彈出視窗會反映該行為:將其保留在「自動」以跟隨 CLI 的連接埠,或選擇「手動」並輸入
browser_connection_info/ CLI 記錄所回報的連接埠來覆蓋它。 - 只需向您的 AI 工具詢問連線連接埠即可。例如:
what is the yetibrowser mcp connction info?,然後將手動連接埠設定為回報的連接埠。
文件與建置腳本
- 工作區指令位於
docs/workspace-commands.md。 - 發布步驟(npm + 擴充功能商店)位於
docs/publishing.md。 - 螢幕截圖行為記錄在
docs/screenshot.md。 - 使用
./scripts/package-extensions.sh產生可發布的 Chrome/Firefox 壓縮檔(輸出至artifacts/)。 - 儲存庫層級的隱私權政策可在
PRIVACY.md中找到。