ego (lite) 只是一個瀏覽器,ego 則是你跨裝置的個人 Agent。
加入候補名單
MCPCLI瀏覽器擴充人工智慧代理工具使用

MCP、CLI 與瀏覽器擴充功能:Agent 控制方式該怎麼選

2026年9月11日14 min read
MCP 和 CLI 圖示並排顯示,用於 AI 代理工具控制

當代理主機需要具有協定級功能和同意位置的可發現、類型化工具時,請使用 MCP。 當任務已經適合命令、檔案、管道、退出程式碼和受控 shell 時,請使用 CLI。 瀏覽器擴充功能通常不是第三個對等選項:它可以在代理透過 MCP 或 CLI 存取的工具下授予或附加瀏覽器存取權限。

AI代理應該使用MCP還是CLI?

從經營邊界開始,沒有贏家。 如果主機必須列舉工具、驗證 JSON 參數、提供使用者批准以及在伺服器之間切換,MCP 提供共享合約。 如果編碼代理程式已經具有受限的 shell,並且操作自然地由具有穩定 stdout 和退出代碼的命令表示,則 CLI 通常是更簡單的路徑。

需要偏好MCP偏好CLI
運行時發現打字工具目錄幫助文字或載入的技能就足夠了
組成主機協調結構化調用管道、檔案、腳本和退出程式碼
遠端邊界協定傳輸與伺服器生命週期SSH、容器、作業或本地處理控制
輸出控制架構加工具結果契約命令特定的原始或 JSON 輸出

MCP、CLI 和擴展是否具有可比性?

不在一個等級。 MCP 和 CLI 是呼叫表面:它們告訴代理主機如何要求工作。瀏覽器擴充功能是瀏覽器內部的執行或存取元件。 它可以附加到使用者的標籤、請求主機權限、注入內容腳本或將瀏覽器狀態橋接到另一個進程。

這種差異可以防止錯誤比較。 「MCP 支援模式,而擴充功能可以點選頁面」將協定屬性與實作功能進行比較。 一個公平的設計問題是:哪個呼叫路徑應該在什麼權限和使用者控制邊界下公開哪個瀏覽器實作?

MCP 和 CLI 有何不同?

MCP 用戶端初始化會話、協商功能、列出工具並向伺服器發送結構化呼叫。 目前的工具規格允許伺服器發布名稱、描述、JSON 輸入模式、可選輸出模式和註釋。 主機仍然負責提供適當的同意,並且必須將工具註釋視為不可信,除非伺服器可信。

Complete desktop screenshot with Claude Code on the left and an ego (lite) Space showing the official Playwright MCP setup on the right
Playwright MCP 在 Claude Code 中註冊為具名伺服器,因此工具探索與結構化瀏覽器呼叫都由 MCP 用戶端處理。

CLI 程序從作業系統接收字串和環境狀態。 它的合約可以透過 --help、手冊頁、範例、退出程式碼和可選的 JSON 輸出來記錄。 shell 透過重定向、管道、腳本、進程隔離和標準日誌記錄添加了成熟的組合,但也創建了主機必須限制的參考、路徑、環境和注入風險。

Complete desktop screenshot with Claude Code on the left and the official Playwright CLI installation and invocation documentation on the right
Playwright CLI 為程式設計 Agent 提供 Shell 命令介面。Agent 從已安裝的 Skill 或命令說明中學習用法,再直接呼叫這些命令。

兩者都可以包裝相同的實作。 在我們的實驗中,Playwright 為兩條路線提供動力。 瀏覽器任務的能力並沒有因為一個指令跨越 JSON-RPC 而另一個指令跨過 shell 而變得更強或更弱;發現、輸出、會話和政策面發生了變化。

發現和情境成本有何不同?

MCP 讓發現變成機器可讀。 這有助於主持人決定可以調用什麼,並給出模型描述和參數形狀。 代價是,如果客戶端急切地載入大型目錄或冗長的工具結果,則它們可能會佔據有意義的上下文。 客戶端可以透過伺服器選擇、搜尋、工具組、結果檔案、有界快照和簡潔輸出來緩解這個問題。

CLI 不會消除上下文。 代理仍然需要命令名稱、標誌、範例和返回的輸出。 精心設計的技能可以只載入相關的命令配方,並向 CLI 請求緊湊的 JSON 或結果檔。 設計不良的 CLI 可能會轉儲兆位元組或強制重複呼叫幫助。 比較實際路由的位元組和模型可見內容,而不是諸如“零令牌 CLI”之類的口號。

Claude Code terminal beside an independent Chrome window controlled through a named Playwright CLI session
在 @playwright/cli 0.1.19 中,具名工作階段會讓同一個有介面的 Chrome 視窗跨多條 Shell 命令持續可用,因此瀏覽器狀態可以在多次呼叫之間保留。

哪個介面比較安全?

這兩個介面本質上都不是安全的。 MCP 可以將工具描述為唯讀或破壞性,但規格警告用戶端不要信任來自不受信任伺服器的註解。 主機仍然需要伺服器信任、使用者同意、身份驗證、目標限制、逾時、日誌記錄以及撤銷憑證的方法。

CLI 可以嚴格包含在狹窄的可執行白名單、固定工作目錄、清理環境、非管理員使用者、檔案系統沙箱和參數驗證。 如果代理程式收到包含機密、命令替換、廣泛文件存取或生產憑證的通用 shell,也可能變得危險。 避免將機密直接放置在提示或命令參數中,因為進程和轉錄日誌可能會保留它們。

瀏覽器擴充功能加入自己的邊界。 檢查請求的權限、主機模式、內容腳本範圍、更新來源、本機訊息傳遞橋以及使用者是否可以查看和中斷操作。 「在我的瀏覽器中運行」既不是安全證明,也不是風險證明;權限和資料流程圖決定。

每種方法的可移植性如何?

MCP 可以在伺服器作為本地進程或服務運行時保持穩定的面向客戶端的合同,但身份驗證、傳輸、文件系統路徑和伺服器安裝仍然因主機而異。 CLI 工具可以在目標作業系統、執行時期、二進位檔案和 shell 相容的情況下順利運作。 腳本必須考慮引用、路徑分隔符號、瀏覽器可用性和版本固定。

擴充功能與瀏覽器的擴充 API、權限模型、商店或企業分發以及使用者設定檔相關。 它們之所以有用,正是因為它們靠近真實的瀏覽器,但這使得它們不太容易移植到無頭伺服器或非瀏覽器任務。

我們的同任務測驗中發生了什麼事?

兩條路線都打開一個自有頁面,填寫一個字段,等待延遲的產品,發現重複的控件,在 DOM 替換中倖存下來,觀察到故意的 HTTP 503 和成功的請求,然後關閉瀏覽器。 每條路線使用九個任務呼叫或命令,重複三次。

觀察中位數Playwright MCP 0.0.80Playwright CLI 0.1.19
任務成功3 / 33 / 3
呼叫/命令99
返回 UTF-8 位元組22,2351,737
工具目錄24 個工具; 18,569 位元組不自動返回
牆上時間2,165 毫秒14,544 毫秒

wall-time 結果指向與位元組結果相反的方向,因為 CLI 線束故意啟動了 9 個單獨的 npx 進程並重新附加到命名會話。 持久包裝器或批次命令可以更改該結果。 可辯護的結論範圍更窄:在此配置中,MCP 暴露了更豐富的發現並返回了更多文本; CLI 返回簡潔的輸出,但將發現移至任務調用之外。

何時該使用 MCP、CLI 或兩者都使用?

首選 MCP 來實現主機導向的功能,該功能必須可在客戶端之間發現、輸入、同意和交換。 對於確定性本地操作、現有工程工具、建置步驟、儲存庫工作或文件和退出程式碼契約已經很強大的指令,首選 CLI。

Complete desktop screenshot with Claude Code on the left and an independent Chrome window showing Playwright CLI skills-less and headed operation on the right
如果不安裝選用的 Skill,Agent 可以先讀取 Playwright CLI 的命令說明,再發出個別的瀏覽器命令。命令探索仍是工作流程中的獨立步驟。

當邊界獲得邊界時使用兩者。 受治理的 MCP 伺服器可以公開狹窄的業務操作,而編碼代理則使用 CLI 命令進行本地驗證。 CLI 可以管理伺服器安裝和診斷,而活動任務則使用 MCP 工具。 避免透過多個不受控制的途徑暴露相同的高風險行為,除非授權和審計行為確實相同。

僅在任務需要現有選項卡、使用者可見狀態或僅限瀏覽器的 API 時才新增瀏覽器擴充功能。 當不需要個人設定檔時,首選乾淨的自動化設定檔或直接協定。

什麼是 ego (lite) 和 ego-browser Skill?

先把產品與控制介面分開來看。ego (lite) 是一款供人與 AI Agent 共同使用的完整本機 Chromium 瀏覽器,產品類別屬於 AI Agent 瀏覽器。它不是 AI Agent 本身,也不是瀏覽器擴充功能、MCP 伺服器或雲端瀏覽器。相容的 Agent 透過 ego-browser——也就是 Skill 與控制介面——在專用、使用者可見且擁有獨立分頁的 Space 中工作。你可以查看過程、暫停任務或隨時接管。雖然 Skill 從 shell 進入點啟動並執行 JavaScript,但它不是逐條執行指令的 CLI 工作流程。

Agent 會先撰寫一段 JavaScript 程式,再透過 shell 入口啟動 Skill 執行環境。程式在 Node.js 中執行,瀏覽器操作則經由 ego (lite) 的本機控制器和內建 CDP 連線完成。一次執行即可完成導覽、等待、檢查、點擊與擷取,最後只把選定結果傳回模型。

ego-browser nodejs <<'EOF'
const task = await taskSpace("review dashboard");
const page = task.page("p1");
await page.goto("https://app.example.com/reports");
const title = await page.title();
console.log({ title });
await task.finish({ keep: [] });
EOF

這是一條有效的第三路線,因為真正需要比較的是執行模型,而不是可執行檔的名稱。MCP 公開可探索的結構化工具,通常每次工具呼叫後都會回傳;逐條指令式 CLI 公開單一 shell 操作;ego-browser Skill 則在模型上下文之外,針對獨立且可見的 Space 執行多步驟 JavaScript 工作流程。shell 只是啟動 Skill,並不會因此把 Skill 變成 CLI 類別。

如需深入了解批次 JavaScript 為何會改變上下文成本和模型往返次數,請閱讀我們對上下文外執行路線的技術拆解.

Complete desktop screenshot with Claude Code beside a live ego (lite) Space showing the official Playwright MCP versus CLI comparison
使用 ego-browser 0.5.0.31 時,Claude Code 透過 Skill 執行任務,過程會顯示在獨立的 ego (lite) Space 中,使用者可以隨時查看或接管。

在 2026 年 9 月 11 日的受控執行中,ego-browser 0.5.0.31 恢復了一個 ego (lite) Space,等待延遲的測試資料,辨識出兩個重複的 Beta 控制項,並開啟了一個經過獨立驗證的結果分頁。

當 Agent 需要使用者授權且可見的瀏覽器 Space、多步驟 JavaScript 應在模型迴圈之外執行,而且人工接管很重要時,選擇這條路線。當宿主需要標準化工具探索和受治理呼叫時選擇 MCP;當工作本來就適合穩定指令、檔案、管線和結束碼時選擇 CLI。如果 API、一般 HTTP 請求、一次性測試瀏覽器或確定性的 Playwright 測試套件能以更小的信任面完成任務,則優先使用它們。

您應該如何驗證選擇?

  1. 凍結一項代表性任務、版本、主機、憑證和停止條件。
  2. 使用聲明的分母對模型可見模式和結果內容進行計數;不要根據字元數來估計標記。
  3. 記錄呼叫失敗、錯誤的工具選擇、權限提示、秘密暴露路徑和復原工作。
  4. 以交替順序重複並保留失敗而不是平均它們。
  5. 測試實際部署邊界:本機、遠端、容器、瀏覽器擴充或現有設定檔。
  6. 選擇滿足發現、安全性、可移植性、可觀察性和維護要求的最簡單的路由。

哪些官方來源定義了這些層?

使用目前的MCP架構規範工具規範用於協議聲明。 測試的實作記錄在官方文件中Playwright MCPPlaywright CLI儲存庫。

將瀏覽器存取視為單獨的權限表面; Chrome 將其模型記錄在聲明權限。 ego-browser 範例已根據目前版本進行檢查ego (lite) 快速入門於 2026 年 9 月 11 日。

常見問題解答

MCP 使用的代幣是否比 CLI 更多?

當客戶端載入大型工具架構或詳細結果時可能會發生這種情況,但沒有通用的百分比。 CLI 幫助和輸出也會消耗上下文。 透過真實的遙測測量實際的客戶端、伺服器、技能和任務。

CLI 可以是 MCP 伺服器嗎?

是的。 MCP 伺服器可以驗證結構化呼叫並呼叫底層的現有 CLI。 包裝器應保留錯誤語意、限制參數並避免重複不安全的通用 shell。

瀏覽器擴充功能比 MCP 更安全嗎?

不依類別。 比較準確的擴充權限、主機策略、憑證、更新路徑、使用者可見度和撤銷。 MCP描述呼叫;擴充描述了瀏覽器端存取。