快轉到主要內容

MCP Tool Search:Claude Code 如何終結 Token 消耗大爆炸

Ai Claude
好豪
作者
好豪
Google 資料科學家,以部落格寫作記錄自己的知識焦慮,記下我看過的書、寫過的程式碼、以及數據分析工作的見聞。歡迎透過 此表單 點播新文章、或者給部落格任何回饋!
目錄

模型上下文協定(MCP)已成為連接 AI 代理與外部數據的開放標準,但其擴展性一直面臨嚴重挑戰。傳統整合方式要求預先載入所有工具定義,當工具量達到成百上千時,會產生嚴重的「上下文膨脹」問題。Claude Code 近期正式實作了 MCP Tool Search,象徵著工具載入從「靜態預載」轉向「動態發現」的重大轉型。這場技術變革旨在讓 AI 代理能無縫處理數千個工具,而不必在每次對話開始前就塞爆 Token。

為什麼 MCP 「曾經」是 Token 消耗怪獸?
#

在深入討論解決方案之前,我們需要先理解 MCP 是什麼,以及它為何曾經造成如此嚴重的 Token 消耗問題。

MCP:AI 世界的萬用轉接頭
#

MCP(Model Context Protocol)是由 Anthropic 在 2024 年 11 月推出的開放標準,它就像 AI 應用程式的「USB-C 接口」,是一種通用的連接方式,讓 AI 模型能安全、標準化地存取外部即時資料與工具。若你還不熟悉 MCP,建議先閱讀 這篇文章 了解基礎概念。

MCP 萬用轉接頭示意圖
MCP 就像個萬用轉接頭,讓任何工具都能順利接上你的 AI Agent(圖片來源:Norah Sakal

「字典」問題:為何 Token 消耗如此驚人?
#

這裡用「字典」來比喻 MCP 過往的困擾:傳統 MCP 客戶端在啟動時會將所有工具定義(Schema)一次性載入上下文,就像要求 AI 在開始工作前先**「背誦整本字典」**。每個 MCP 伺服器都帶有詳細的工具定義、參數、與描述,這些資訊在對話開始前就會佔用大量空間。

要用 MCP,載入工具定義當然很重要,但問題是:不見得所有工作都會用到這麼多 MCP 啊!

實測數據顯示,這個問題有多嚴重:

  • 連結 5 個常用伺服器(如 GitHub、Slack 等,共 58 個工具)可能在你開口前、就消耗 5.5 萬個 Token
  • 在極端案例中,未經最佳化的工具定義甚至會佔用高達 13.4 萬個 Token
  • 這相當於佔用有效上下文空間的 15~50%

除了空間消耗外,這還會帶來嚴重的副作用:

  • 成本與延遲增加:每次對話都需要傳輸大量工具定義
  • 模型選擇準確度下降:當工具數量超過 30~50 個時,Claude 準確選擇工具的能力會大幅下降(Context Rot
  • 語義混淆:名稱相似的工具(例如 send-usersend-channel 傻傻分不清楚)在龐大的清單中很容易被誤選

解方:Tool Search Tool 如何解決 MCP 的「Token 爆炸」?
#

Anthropic 在 2025 年 11 月推出了多種提升 MCP 執行效率的功能(Advanced Tool Use),其中 Tool Search Tool 是解決「字典問題」的核心方案。

核心概念:從「背字典」到「查字典」
#

Tool Search Tool 的核心理念很簡單:不要求 AI 預先背誦所有工具定義,而是讓它在需要時動態搜尋。開發者只需在工具定義中標記 defer_loading: true,該工具就不會被預載,而是進入「待發現」目錄。

當 Claude 需要特定功能時(如:發送 Slack 訊息),它會先透過搜尋工具找到相關的工具定義,系統才會將該工具的詳細說明書(Schema)載入 Context。這就像從「背字典」變成「查字典」,大幅減少了初始負擔。

Tool Search 的 What / How / Why
(圖表來源:好豪與 Nano Banana Pro 協作))

兩種搜尋變體:Regex 與 BM25
#

Tool Search 並非單一技術,而是提供了兩種主要的搜尋變體,這是實作「動態發現」的關鍵:

Regex(正則表達式)

讓 AI 能建構 Python 的 re.search() 模式來精確檢索工具名稱。例如,建立 get_.*_data 可以一次找出所有「獲取數據」相關工具。這適合開發者明確知道工具命名規則的情境,能夠高效率地批次查找相似功能的工具。

BM25(自然語言搜尋)

讓 AI 能用直覺的關鍵字(如「weather」)找到對應工具。這是一種基於自然語言查詢的算法,對於工具數量龐大、命名不規則的環境特別重要。它降低了 AI 的搜尋門檻,讓模型可以用使用者的日常語言來找工具。

驚人的效能數據
#

Tool Search Tool 的實測效果非常顯著:

  • 初始載入:從 5.5 萬 Token 減少至約 500 Token
  • 節省比例:高達 95%
  • 規模支援:單一目錄可容納高達 1 萬個工具
進階補充:Anthropic 同期推出的其他技術(點擊展開 ▼)

程式化工具調用 (Programmatic Tool Calling, PTC)

  • 讓模型寫 Python 程式碼串聯工具,而非一次次由模型介入調用
  • 中間數據留在沙盒處理,僅將最終結果傳回模型
  • 複雜任務 Token 消耗減少約 37%
  • 參考:Code execution with MCP

工具使用範例 (Tool Use Examples)


實作進程:Claude Code 用戶能用了嗎?
#

Anthropic 工程師 Thariq 於 2026 年 1 月 15 日正式宣布在 Claude Code 逐步更新 MCP Tool Search 功能,回應了開發社群對「MCP 伺服器延遲(動態)載入」的高度需求。

Tool Search 實作時間表
(圖表來源:好豪與 Nano Banana Pro 協作))

預設自動開啟:v2.1.7 的重大更新
#

v2.1.7 版本中,Tool Search 模式已改為預設自動開啟。Claude Code 實作了一套智慧觸發機制:

  • 10% 門檻自動觸發:當系統偵測到 MCP 工具描述佔用 Context Window 超過 10% 時,會自動改用搜尋模式載入
  • 智慧平衡:低於門檻時維持預載,換取更快的響應速度

在更新的 v2.1.21 版本中,Anthropic 進一步最佳化了使用者體驗:

  • 將 Tool Search 的搜尋過程改為簡短通知,而非直接顯示在對話流中
  • 保持介面整潔,讓使用者專注於任務本身


使用技巧:如何用得更好?
#

Tool Search Tool 雖然強大,但也需要一些配置策略才能發揮最大效益。

1. 保留核心工具策略
#

一定有一些 MCP 工具你超常用、天天用,常用到你會覺得 AI 根本不需要「考慮」該不該載入、MCP 用就對了。

因此,Claude 開發團隊建議將 3~5 個最常用的工具設為 defer_loading: false(即預載載入)。這能確保最常見的任務(如檔案讀取、基本查詢)不需要額外的搜尋推理步驟,在保持系統回應速度與節省 Token 之間取得最佳平衡。

2. 精準描述的撰寫技巧
#

Tool Search 需要名稱與描述進行「連連看」,因此開發者應在描述中加入清楚的語義關鍵字,符合使用者描述任務的方式:

  • ✅ 好的描述:「搜尋客戶訂單記錄並回傳詳細資訊」
  • ❌ 不好的描述:「執行查詢」

對於 Regex 變體,可以使用 (?i)slack 進行不區分大小寫的搜尋,提高匹配靈活性。

3. 自訂觸發門檻(auto:N
#

進階使用者可以使用 auto:N 語法來調整自動啟用的百分比門檻:

  • 例如:auto:20 代表佔用 20% 時才開啟搜尋模式
  • 讓工具管理更符合個別專案的需求

4. 緩存最佳化提醒
#

Tool Search 特別設計為不會破壞 Prompt Caching

  • 系統指令和 3~5 個核心工具可以被固定在快取中
  • 動態加入的工具則會自動在後續對話中擴展並重複使用,不會導致快取失效

不是 Claude Code 用戶也有解方:mcp-cli
#

對於非 Claude Code 的使用者,有一個由 Google 資深 AI 工程師 Philipp Schmid 開發的開源專案 mcp-cli,它實現了 Tool Search 解決方案,是作者將它稱為 Dynamic Discovery。

mcp-cli 實作原理(圖片來源:mcp-cli GitHub

適用工具
#

mcp-cli 適用於以下 AI 工具:

  • Gemini CLI(Google)
  • 自建 AI Agent(使用 Bash 執行能力)
  • 任何支援命令列工具調用的寫程式 Agent

運作原理:與 Claude Code 相同
#

mcp-cli 的核心邏輯與 Claude Code Tool Search 相同:動態發現 + 按需求載入。它透過 CLI 介面模擬 Tool Search 的搜尋機制,提供了三步工作流:

  1. Discover(發現)mcp-cli info 列出所有可用的伺服器與工具清單
  2. Inspect(檢查)mcp-cli info <server> <tool> 獲取特定工具的 JSON Schema 與參數定義
  3. Execute(執行)mcp-cli call 正式啟動工具調用

更多細節請參考 Philipp Schmid 的介紹文章

(同樣)驚人的效能數據
#

根據作者所述,mcp-cli 的實測效果甚至優於 Claude Code 官方實作:

  • 6 個 MCP 伺服器(60 個工具):從 47,000 Token 降至 400 Token
  • 節省比例:高達 99%

這證明了「動態發現」不一定要依賴模型內建功能,透過一個設計精良的 CLI 橋接器,即使不是 Anthropic 的 AI Agent,也能享受減少 Token 消耗的紅利。


結語
#

Context 管理已成為 AI 開發的核心能力。透過延遲載入與動態發現,AI 代理的能力上限將不再受限於 Token 數量,是讓 AI 代理邁向規模化應用的關鍵轉捩點。無論是 Claude Code 的內建 Tool Search,還是 mcp-cli 的開源實作,都給了 AI 開發者們一個清晰的方向:未來的 AI 代理將能夠處理成千上萬個工具,而開發者不需要再為上下文膨脹而焦慮。

參考資料: