什么是 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)会读取这段描述,判断该工具是否符合你的请求(例如“返回指定日历上的单个事件。”)。
  • 输入:工具运行所需的信息,例如搜索笔记时需要的客户名称和日期。输入以 JSON 编写,开发者称之为输入模式(input schema),因为它规定了每项输入的格式(文本、数字或列表)。

有些工具还会附加额外的元数据:显示名称、对其返回结果的描述(输出模式),以及关于工具行为的注解。

AI 模型永远看不到工具背后的代码。它只能依据工具对自身的说明来工作,因此名称或描述含糊不清,就会导致模型选错工具。

MCP 工具有哪些类型

按用途划分,MCP 工具可分为四类:

  • 搜索和查找工具:查找或检索信息(例如搜索笔记、读取文件或查询数据库)。
  • 操作工具:在其他应用中创建或更改内容(例如添加任务、创建日历事件、提交支持工单或发送电子邮件)。
  • 数据处理工具:转换或分析数据(例如分析电子表格文件或执行计算)。
  • 系统工具:与本地系统交互(例如在终端中执行命令)。

MCP 工具与资源、提示词的区别

除了 MCP 工具,MCP 服务器还可以提供另外两种构建模块,协议称之为原语(primitives):资源和提示词。

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

  • 一个名为 issue_write 的工具,用于创建或更新议题(issue),
  • 一个名为 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“本周”列表,并给你的编辑起草一封邮件汇报进展。整个过程如下:

  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 服务器向任何支持远程 MCP 服务器的 AI 应用(例如 Claude Code)提供四个工具(perplexity_search、perplexity_ask、perplexity_research 和 perplexity_reason)。另有一个独立的服务器,让其他 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 文档列出了这些应用,并指出还有许多其他应用也支持 MCP 工具。

AI 模型本身需要支持 MCP 吗?

不需要。AI 模型不需要支持 MCP,因为协议由你的 AI 应用处理。应用会连接服务器,将服务器的工具传递给模型,并将模型的工具请求发回对应的服务器。模型只需支持函数调用即可。

MCP 会被淘汰吗?

不会,MCP 仍在积极开发中。其维护者于 2026 年 7 月发布了新版 MCP 规范,并于 2026 年 8 月公布了更新后的路线图,其中包括让服务器随着对话范围的收窄逐步公开其工具的相关工作。