什么是 MCP 工具?AI 模型如何使用它们?
了解什么是 MCP 工具、AI 模型如何通过 MCP 服务器发现和调用这些工具,以及如何安全地使用它们。

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“本周”列表,并给你的编辑起草一封邮件汇报进展。整个过程如下:
- 发现:当你的 AI 应用通过 MCP 客户端连接到 MCP 服务器时,它会请求获取服务器的可用工具列表(该请求称为
tools/list)。LLM 只能看到应用传递给它的内容:每个工具的名称、描述和输入。 - 工具选择:AI 模型将你的请求与这些描述进行比对,并选出合适的工具。在本例中,就是用 Trello 的
trelloReadList读取列表,用 Gmail 的create_draft撰写邮件。模型还会填写输入,例如要读取哪个列表。 - 调用:模型会回复一个运行该工具的结构化请求(这一步称为“函数调用”)。你的 AI 应用将该请求发送到对应的服务器(即
tools/call请求)。应用还应向你展示这次调用,并允许你拒绝。 - 结果:服务器运行该函数并返回
result,在本例中就是你列表上的卡片。你的 AI 应用将结果添加到对话中,再由模型决定下一步:回复你,或调用另一个工具,例如调用create_draft,根据这些卡片撰写邮件。 - 错误处理:如果工具运行了但执行失败(例如因为列表不存在),错误会作为结果的一部分返回。模型可以读取错误信息,并使用不同的输入重试。如果请求本身有问题(例如调用了服务器上不存在的工具),应用收到的则是协议错误,模型也更难从中恢复。
关键在于,模型仅根据工具的描述来选择工具,而与服务器的所有通信都由你的 AI 应用完成。
常见的 MCP 工具问题及规避方法
MCP 工具的问题主要归结为四个方面:连接了多少工具、工具如何命名和描述、工具返回多少数据,以及工具来自哪些服务器。
以下是每种问题的表现及应对方法:
问题 | 表现 | 应对方法 |
连接的工具过多 | 在你提出任何请求之前,每个工具定义就已占用模型的上下文窗口,而且工具列表越长,工具选择的效果就越差。 | 只连接任务所需的服务器,并在 AI 应用允许的情况下关闭不使用的工具。示例:GitHub 的 MCP 服务器允许你只启用所需的工具组(toolsets)。 |
描述含糊或相互重叠 | 由于两段描述听起来相似,或者某段描述信息太少,模型调用了错误的工具,或者调用了正确的工具却传入了错误的输入。 | 提供清晰、具体的名称和描述,最好附上何时使用该工具的示例。如果某个服务器的工具频繁出错,可以使用官方测试工具 MCP Inspector,它会准确显示每个工具对自身的说明。 |
两个服务器上的工具同名 | 两个服务器都提供名为 | 在工具名称前加上服务器名称作为前缀。示例:Trello 的服务器( |
结果过大 | 工具返回的内容超出任务所需,例如包含格式信息的完整邮件往来,从而挤占模型的上下文。 | 使用提供精简格式的工具。示例:Gmail 的 |
不可信的服务器 | 粗心或恶意的服务器可能会利用工具调用,从你的对话中窃取数据。 | 只连接来自可信来源的服务器,并对会更改内容或向外发送数据的工具始终开启审批。 |
为什么 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 月公布了更新后的路线图,其中包括让服务器随着对话范围的收窄逐步公开其工具的相关工作。