甚麼是 MCP 工具?AI 模型如何使用它們?

了解甚麼是 MCP 工具、AI 模型如何透過 MCP 伺服器尋找和呼叫這些工具,以及如何安全地使用它們。

Diagram of how MCP works: an AI app (the MCP host) sends tool requests through an MCP client to an MCP server, which connects to tools and returns results.

MCP 工具是 AI 模型可以呼叫的函數,用來在對話以外執行任務,例如搜尋你的筆記或查詢數據庫。每個工具都位於 MCP(Model Context Protocol,模型上下文協定)伺服器上,並設有名稱和簡短描述,幫助模型判斷何時使用。

「MCP 工具」一詞亦有其他用法。在日常使用中,人們說「MCP 工具」時,可能是指 MCP 伺服器(提供工具的應用程式),或列出這些伺服器的目錄。MCP Tools 亦是一個命令列程式的名稱,用於列出和呼叫 MCP 伺服器上的工具。

本指南討論的是協定中的函數,而非伺服器、目錄或命令列。內容會說明工具由哪些部分組成、伺服器提供哪些類型的工具,以及工具與資源、提示和函數呼叫有何不同。接著會逐步介紹模型使用工具的步驟,最後講解使用工具時最常見的問題。

甚麼是 MCP 工具?

MCP 工具是一種函數,讓 AI 模型可以透過其他軟件應用程式完成任務。舉例來說,我的 AI 代理程式和工作流程會使用 MCP 工具在 Gmail 中草擬電郵(create_draft)、建立 Trello 卡片(trelloWriteCard),以及從 DataForSEO 擷取即時搜尋結果(serp_organic_live_advanced),這些只是其中幾個例子。

軟件應用程式通常會在其 MCP 伺服器上提供多個 MCP 工具。例如,Trello MCP 伺服器目前有 14 個 MCP 工具,讓 AI 模型可以讀取和更新看板、清單、檢查清單、卡片等。

由於 MCP 將工具的描述和提供方式標準化,任何支援此協定的 AI 應用程式都可以使用同一個 MCP 工具。

MCP 工具包含甚麼

每個 MCP 工具都包含三項內容:

  • 名稱:模型呼叫工具時使用的簡短識別碼(例如 Google Calendar 中的 get_event)。
  • 描述:以淺白語言說明工具的用途和適用時機。大型語言模型(LLM)會閱讀這段描述,判斷該工具是否符合你的要求(例如「Returns a single event on the given calendar.」)。
  • 輸入:工具運行所需的資料,例如搜尋筆記時需要的客戶名稱和日期。輸入以 JSON 編寫,開發人員稱之為輸入結構描述(input schema),因為它為每項輸入設定格式(文字、數字或清單)。

部分工具會加入額外的中繼資料:顯示名稱、所傳回結果的描述(輸出結構描述),以及關於工具行為的註解。

AI 模型永遠看不到工具背後的程式碼。它只能依據工具對自身的說明來運作,因此名稱或描述含糊不清,就會導致模型選錯工具。

MCP 工具有哪些類型

MCP 工具按用途可分為四類:

  • 搜尋和查詢工具:尋找或擷取資訊(例如搜尋筆記、讀取檔案或查詢數據庫)。
  • 操作工具:在其他應用程式中建立或變更內容(例如新增任務、建立日曆活動、開立支援工單或發送電郵)。
  • 數據處理工具:轉換或分析數據(例如分析試算表檔案或執行計算)。
  • 系統工具:與本機系統互動(例如在終端機中執行指令)。

MCP 工具與資源 & 提示的分別

除了 MCP 工具之外,MCP 伺服器還可以提供另外兩種基本構件,協定稱之為原語(primitives):資源和提示。

例如,GitHub 的官方 MCP 伺服器提供:

  • 一個名為 issue_write 的工具,用於建立或更新 issue;
  • 一個名為 repository_content 的資源,可存取儲存庫中的檔案;
  • 一個名為 issue_to_fix_workflow 的提示,用於設定以下步驟:將問題回報為 issue,並讓 GitHub 的 Copilot 編碼代理程式產生拉取請求來修正問題。

三者的差異在於各自的用途,以及由誰決定何時使用:你、你正在使用的 AI 應用程式(例如 Perplexity),還是在該應用程式內運行的 AI 模型。

  • MCP 工具負責執行操作或查詢資料。AI 模型會自主決定何時呼叫工具,再由你的 AI 應用程式將呼叫傳送至伺服器。AI 模型負責挑選工具;AI 應用程式則應向你顯示每次呼叫,並讓你可以拒絕。
  • 資源是 MCP 伺服器上可用的內容,例如檔案或一組紀錄,各自有專屬地址(URI)。你的 AI 應用程式會詢問伺服器有哪些資源,按地址讀取所需的資源,並將內容加入對話作為上下文。
  • 提示是伺服器提供的現成訊息範本,有時附有讓你填寫的空格。你的 AI 應用程式會向你顯示可用的提示,由你選擇其中一個,通常以斜線指令的形式使用。

AI 模型如何使用 MCP 工具

AI 模型使用 MCP 工具分為五個步驟:探索、選擇工具、調用、結果和錯誤處理。模型與伺服器之間的所有往來,都由你的 AI 應用程式傳遞。

假設你請 AI 應用程式查看你的 Trello「This week」清單,並草擬一封電郵向編輯匯報最新進度。以下是整個過程:

  1. 探索:當你的 AI 應用程式透過 MCP 用戶端連接到 MCP 伺服器時,會向伺服器索取可用工具清單(稱為 tools/list 的請求)。LLM 只會看到應用程式傳遞過來的內容:每個工具的名稱、描述和輸入。
  2. 選擇工具:AI 模型會將你的要求與這些描述比較,挑選合適的工具。在這個例子中,就是用 Trello 的 trelloReadList 讀取清單,以及用 Gmail 的 create_draft 撰寫電郵。模型還會填入輸入內容,例如要讀取哪個清單。
  3. 調用:模型會回覆一個結構化請求來執行工具(這個步驟稱為「函數呼叫」)。你的 AI 應用程式會將該請求傳送到正確的伺服器(即 tools/call 請求),同時亦應向你顯示該呼叫,並讓你可以拒絕。
  4. 結果:伺服器執行函數後傳回 result,在這個例子中就是你清單上的卡片。你的 AI 應用程式會將結果加入對話,再由模型決定下一步:回答你,或呼叫另一個工具,例如以 create_draft 根據這些卡片草擬電郵。
  5. 錯誤處理:如果工具已運行但失敗,例如因為清單不存在,錯誤會作為結果的一部分傳回。模型可以讀取錯誤,並以不同的輸入再試一次。如果請求本身有問題,例如呼叫了伺服器沒有的工具,應用程式則會收到協定錯誤,模型亦較難從中恢復。

重點是,模型只根據工具的描述來選擇工具,而與伺服器的所有溝通都由你的 AI 應用程式負責。

常見的 MCP 工具問題及避免方法

MCP 工具的問題歸根究柢在於四方面:連接了多少工具、工具的命名和描述方式、傳回的數據量,以及工具來自哪些伺服器。

以下是各個問題的具體情況及解決方法:

問題

具體情況

解決方法

連接的工具太多

在你提出任何要求之前,每個工具定義就已佔用模型的上下文視窗,而且清單越長,工具選擇的準確度就越差。

只連接任務所需的伺服器,並在 AI 應用程式允許的情況下關閉未使用的工具。例子:GitHub 的 MCP 伺服器讓你只啟用所需的工具組(toolsets)。

描述含糊或重疊

由於兩個描述聽起來相似,或其中一個說明太少,模型呼叫了錯誤的工具,或以錯誤的輸入呼叫了正確的工具。

提供清晰、具體的名稱和描述,最好附上何時使用該工具的例子。如果某個伺服器的工具經常出錯,可使用官方測試工具 MCP Inspector,準確查看每個工具對自身的說明。

兩個伺服器上有相同的工具名稱

兩個伺服器都提供名為 search 的工具,無從判斷某次呼叫是針對哪一個。

在工具名稱前加上伺服器名稱作為前綴。例子:Trello 的伺服器(trelloSearch、trelloReadList)。

結果過於龐大

工具傳回的內容超出任務所需,例如連同格式的整個電郵對話串,擠佔了模型的上下文。

使用提供精簡格式的工具。例子:Gmail 的 get_thread 工具描述建議使用純文字格式,以「防止上下文耗盡」。

不受信任的伺服器

疏忽或惡意的伺服器可能會利用工具呼叫,從你的對話中竊取數據。

只連接來自你信任來源的伺服器,並為會變更內容或向外傳送數據的工具保留批准步驟。

為甚麼 MCP 工具需要你的批准?

MCP 工具需要你的批准,因為如果沒有批准,AI 模型可能會作出你意料之外的更改,或與你無法控制的伺服器分享敏感數據。

誤解要求或描述含糊的工具,都可能觸發錯誤的操作。此外,每次呼叫都會將你的部分資料傳送到伺服器。

因此,協定要求 AI 應用程式確保有人參與把關,並可拒絕任何工具呼叫。

以下是一個實用方法,按所需的檢查程度為工具分類:

  • 只讀取的操作:查詢資料,例如使用 Trello 的 trelloReadList 讀取清單,不會變更任何內容。只要你的 AI 應用程式會顯示運行了哪個工具及查詢了甚麼,這類呼叫可以無需事先詢問就執行。
  • 可以撤銷的操作:使用 Gmail 的 create_draft 建立電郵草稿或新增 Trello 卡片,所作的變更可以還原。請在呼叫執行前檢查輸入內容。
  • 無法撤銷的操作:使用 Gmail 的 send_message 發送電郵、刪除紀錄,或任何涉及付款或敏感數據的操作,都無法還原。每次都要明確授權這類操作。

在 Perplexity 中使用 MCP 工具

Perplexity 支援雙向使用 MCP 工具:它可以使用你所連接 MCP 伺服器上的工具,亦會向其他 AI 應用程式提供自家工具。

  • 將 MCP 伺服器連接到 Perplexity:使用 Pro、Max 和 Enterprise 計劃時,你可以將 Perplexity 連接到任何設有 MCP 伺服器的外部工具或數據來源,並在答案和 Perplexity Computer 代理式工作流程中使用。在 Mac 應用程式中,你亦可以連接在你電腦上運行的 MCP 伺服器
  • 在其他 AI 應用程式中使用 Perplexity 的工具:Perplexity 的 MCP 伺服器提供四個工具(perplexity_search、perplexity_ask、perplexity_research 和 perplexity_reason),供任何支援遠端 MCP 伺服器的 AI 應用程式(例如 Claude Code)使用。另有一個伺服器讓其他 AI 應用程式將多步驟任務交給 Perplexity Computer 處理。

MCP 工具常見問題

MCP 只是工具呼叫嗎?

不,MCP 不只是工具呼叫。工具呼叫是模型請求使用工具的方式,而 MCP 則是 AI 應用程式尋找工具,並將每次呼叫轉送到執行該工具的伺服器的方式。

工具呼叫(又稱函數呼叫)是 AI 模型負責的部分:模型會看到一份工具清單,並回覆執行其中一個工具的請求。如果只有工具呼叫,每個 AI 應用程式都必須自行定義和執行每個工具。

MCP 讓工具存放在伺服器上,因此任何支援 MCP 的 AI 應用程式都可以向其模型提供這些工具,並將模型的請求傳送到正確的伺服器。

MCP 會取代 API 嗎?

不會,MCP 不會取代 API,因為 MCP 與 API 是相輔相成的。MCP 工具通常建構於現有 API 之上,當模型呼叫工具時,MCP 伺服器通常會發出 API 請求。

哪些 AI 應用程式支援 MCP 工具?

MCP 工具可在 Claude、ChatGPT 和 Perplexity 等 AI 助理,以及 Visual Studio Code 和 Cursor 等開發工具中使用。MCP 文件列出了這些應用程式,並指出還有許多其他應用程式亦支援。

AI 模型本身需要支援 MCP 嗎?

不需要。AI 模型無需支援 MCP,因為協定由你的 AI 應用程式處理。應用程式會連接伺服器,將伺服器的工具傳遞給模型,並將模型的工具請求傳回正確的伺服器。模型只需支援函數呼叫即可。

MCP 會被淘汰嗎?

不會,MCP 仍在積極開發中。其維護者於 2026 年 7 月發佈了新版 MCP 規格,並於 2026 年 8 月公佈了更新的路線圖,其中包括讓伺服器隨着對話範圍收窄而逐步揭示其工具的相關工作。