什麼是 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 工具 vs. 資源 & 提示

除了 MCP 工具之外,MCP 伺服器還能提供另外兩種構成要素,協定稱之為基本元件(primitives):資源和提示。

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

  • 一個名為 issue_write 的工具,用於建立或更新議題;
  • 一個名為 repository_content 的資源,可存取儲存庫中的檔案;
  • 一個名為 issue_to_fix_workflow 的提示,用於設定相關步驟,將問題回報為議題,並讓 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 伺服器可讓你只啟用所需的工具群組(工具集)。

說明含糊或互相重疊

由於兩個說明聽起來相似,或其中一個說明過於簡略,模型呼叫了錯誤的工具,或呼叫了正確的工具卻使用錯誤的輸入。

提供清楚、具體的名稱和說明,最好附上何時使用該工具的範例。如果某個伺服器的工具經常出錯,可以使用官方測試工具 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 月公布了更新的路線圖,其中包括讓伺服器能隨著對話範圍縮小而逐步揭露其工具的相關工作。