MCP 現在是業界標準嗎?還是只有 Anthropic 在用?
MCP 是 Anthropic 在 2024 年底發布的開源協定,並不是只有 Anthropic 在用。Anthropic 設計它的目標之一就是讓它成為 AI 工具互動的業界標準,並且一開始就用開源方式發布讓社群可以參與。
目前的採用情況:除了 Claude 系列產品(Desktop、Code)之外,包括 Cursor、Cline 等 AI 編程工具,以及一些企業 AI 平台,都已經支援 MCP。主要的雲端服務商和開發工具生態也陸續有 MCP Server 的整合出現。雖然還沒有到「每個人都支援」的程度,但 MCP 的採用速度在 AI 生態裡是相當快的。如果你在設計一個長期使用的工具層,把 MCP 納入考量是合理的未來佈局。
我已經有一套直接 API 的整合,值得遷移到 MCP 嗎?
這個問題的答案取決於你目前的情境,不是「值得」或「不值得」的二選一。有幾個判斷維度:
如果你的工具目前只給一個應用用、這個應用運作良好、沒有計畫擴展到其他 AI 客戶端,遷移的邊際效益低,不建議為了遷移而遷移。
如果你有計畫把同樣的工具接到 Claude Desktop 讓非工程師也能用、或者你正在考慮未來用其他 AI 模型、或者你已經在維護多套幾乎相同的整合程式碼,這些都是遷移到 MCP 的好理由。
實務上最常見的做法是:不做完整遷移,而是把可以共用的工具層抽出來做成 MCP Server,原有的直接 API 整合繼續運作,兩套並行。
MCP Server 的工具定義需要多詳細,Claude 才能正確呼叫它?
這是 MCP 實作裡最容易被低估的環節。Claude 要靠你的工具定義來判斷「什麼時候用這個工具、要帶什麼參數」。定義太模糊,Claude 就會猜,猜錯了就出現奇怪的呼叫行為。
好的工具定義要做到三件事:第一,把工具的用途和適用情境說清楚(例如「查詢單一客戶的詳細資訊,適合已知客戶 ID 的情況;如果要搜尋多個客戶請用 search_customers」);第二,每個參數都要說明是什麼、什麼格式、必填還是選填;第三,如果參數有限制(日期格式、數值範圍),直接在定義裡寫明。一個好的工具定義,讀起來要像是「給一個看不到你內部系統的人寫的 API 文件」——他只能靠你的文字理解這個工具,寫得越清楚,Claude 用得越準。
進階:在多人共用的企業環境裡,MCP Server 的安全設計有什麼特別要注意的?
多人共用的 MCP Server 比個人用的有更高的安全要求,幾個關鍵點:
第一,認證和授權要區分清楚。認證是確認「你是誰」,授權是確認「你能做什麼」。多人環境下,不同用戶可能應該只能用某些工具、查某些範圍的資料。這不是靠跟 Claude 說「請不要查 A 的資料給 B 看」來解決的,而是要在你的 Server 程式碼裡,根據每個請求帶的身分 token 來判斷權限。
第二,敏感資料不應該出現在工具的輸入或輸出裡超過必要的程度。例如,如果 Claude 需要查客戶資料,回傳應該只包含這次任務需要的欄位,不是把整個 DB row 都丟出來。
第三,所有工具呼叫都要有完整的審計日誌——誰呼叫了什麼工具、帶了什麼參數、回傳了什麼、什麼時候。在企業環境裡,這不是可選的,是合規要求和出事時排查的基礎。
如果你開始認真接觸 Claude 的技術整合,你很快會遇到兩條路:直接用 Claude API 把工具邏輯寫進你的程式碼,或者透過 MCP(模型情境協定)把工具和資料暴露給 Claude。兩種方法都可以讓 Claude 「連上你的系統」,但背後的架構邏輯很不一樣。這篇文章幫你搞清楚差別在哪,讓你在設計時做出更有根據的選擇。
直接 API 整合是最傳統的做法:你的程式碼呼叫 Claude API,把提示詞送過去,拿回文字回應,然後你的程式碼決定接下來要做什麼。如果你想讓 Claude 有工具能力(例如查資料庫、呼叫外部 API),你在呼叫時定義 function schema,Claude 的回應裡會包含它想呼叫哪個 function 以及參數,再由你的程式碼實際去執行那個操作,再把結果送回給 Claude。
整個控制流程在你手裡:你的程式碼是中間人,決定什麼時候呼叫 Claude、什麼時候執行工具、什麼時候把結果合併。這給你最大的靈活性,但也意味著每個新的整合都要從頭寫這套控制邏輯。
MCP 是 Anthropic 推出的一個開放協定,讓你把工具和資料來源封裝成一個「MCP Server」,然後任何支援 MCP 的 AI 客戶端(Claude Desktop、Claude Code、其他支援 MCP 的工具)都可以直接呼叫它,而不需要你幫每個客戶端重新寫整合程式碼。
最關鍵的差別是:在 MCP 架構裡,工具定義和執行邏輯在你的 Server 裡,不在呼叫它的 AI 客戶端裡。Claude 透過標準化的 MCP 協定告訴你的 Server「我想用這個工具」,你的 Server 執行後把結果送回來,Claude 根據結果繼續推理。AI 客戶端和你的工具之間是鬆耦合的:你可以換掉 Claude、接上另一個支援 MCP 的模型,你的 Server 不需要改。
假設你有一個內部的客戶資料庫,你想讓 AI 能查詢客戶資訊。
用直接 API:你在你的後端應用裡,定義一個 get_customer 的 function schema,寫查詢資料庫的程式碼,然後每次呼叫 Claude 時帶著這個 function 定義,接住 Claude 的 function call 回應,執行查詢,把結果送回 Claude,再讓 Claude 繼續回答。這整套邏輯綁定在你的後端應用裡。
用 MCP:你建一個 MCP Server,在裡面定義 get_customer 工具和查詢邏輯。之後,Claude Desktop 的用戶可以直接用它、你的 Claude Code 工作流程可以直接用它、你未來想接的其他 AI 工具也可以直接用它——因為它們都說 MCP 這個共同語言。你只需要維護一個 Server,不需要每個客戶端各自整合一遍。
選直接 API 的情境:你在做一個特定應用,工具邏輯只給這個應用用;你需要精細控制整個對話流程(例如複雜的多輪邏輯、根據前一步驟動態決定工具使用);你不想引入額外的基礎設施(MCP Server 需要另外跑一個服務)。
選MCP 的情境:你的工具需要被多個不同的 AI 客戶端共用(Claude Desktop、Claude Code、未來可能的其他工具);你重視模型無關性——今天用 Claude,明天可能換成另一個支援 MCP 的模型;你想讓你的工具符合一個未來可能成為業界標準的協定。
如果你現在只是在做一個特定應用的 Claude 整合,直接 API 是更快、更簡單的路徑。如果你在建立一套打算長期使用、跨多個入口的 AI 工具基礎設施,MCP 讓你「寫一次、各處使用」,而且當 AI 生態系演化時,你的工具不需要每次跟著大改。兩者不是互斥的——很多實際系統是混合的,用直接 API 做緊密整合的核心邏輯,用 MCP 暴露可重用的工具層。