MCP 与 API:全面技术解析(定义、区别与用例)

了解 MCP 与 API 的区别、它们如何协同工作,以及在 AI 集成和软件工作流中何时使用各自的方案。

Diagram comparing an MCP host, client, and server connected to tools, resources, and prompts with an API client-server flow.

MCP 全称模型上下文协议(Model Context Protocol),是一个开放标准,AI 智能体利用该标准访问外部系统:应用程序功能(工具)、资源(包括数据库)以及提示词。

API 通过设定的端点和参数连接两个应用程序,而与此不同,MCP 允许 LLM 在运行时发现最新的工具。MCP 还可以大幅减少集成维护所需的时间。

MCP 和 API 并不是对立的技术。MCP 旨在为基于 AI 的应用程序提供对外部功能和信息的全面访问,同时减少对定制 API 配置的需求。通常,MCP 请求会触发服务器端 API 调用,在某些重要的开发者用例中,API 仍然比 MCP 更受青睐。

MCP 与 API:主要区别是什么?

  • MCP 是一种开源协议(一组规则),允许 AI 工具安全、自主地调用数据库、软件功能和提示词等工具。
  • 与预配置的 API 相比,MCP 允许 LLM 根据任务需求选择当前的外部功能,而不会使上下文窗口过于臃肿。
  • 对于传统的软件集成以及某些固定的、迭代式的 LLM 工作流,API 是更佳选择。
  • 如果应用中的 AI 功能不断扩展、你管理大量的集成,或者供应商功能频繁变化,那么 MCP 无疑是更好的选择。
  • 在开发者圈子之外,在主流 AI 聊天机器人(Claude、ChatGPT、Perplexity 等)中个人使用 MCP 连接器不需要任何复杂的编程知识。大多数都支持一键集成。

什么是模型上下文协议 (MCP)?

MCP 是一种广泛使用的协议,用于 AI 模型与 MCP 服务器之间的通信。该协议使 MCP 客户端能够调用 MCP 服务器上可用的任何工具和资源。

构成 MCP 工作流的三个组件包括:

  • 主机:最终用户触发操作或输入自然语言提示(例如“告诉我伦敦的天气”)的包装应用(例如 Perplexity)。主机向 LLM 提供可用工具列表,LLM 决定哪个工具最适合完成任务。
  • 客户端:使用 MCP 协议连接到 MCP 服务器的协议处理程序(内置于主机中)。
  • 服务器:接收 MCP 请求并提供或“公开”其可访问的各种功能的应用程序。

值得一提的是,MCP 服务器通常使用 API 与工具进行通信。例如,如果你将 Perplexity 连接到 Slack MCP,客户端将与 MCP server 通信,然后后者将使用 Slack API 发出原始 MCP 请求中详述的请求。

什么是应用程序编程接口 (API)?

API 是两个应用程序之间的接口。与 MCP 一样,它定义了一个系统如何向另一个系统请求数据或操作的规则。客户端使用供应商指定的参数发送请求,服务器则返回响应。

以下是 API 请求和响应各个元素的概览:

  • 端点:你发送请求的目标 URL。
  • 方法:你希望服务器应用程序采取的操作。
  • 参数:你发送供服务器处理的输入。
  • 请求头:诸如授权和响应格式之类的附加信息。
  • 请求体:执行请求所需的数据(这些数据有时是可选的)。
  • 响应:服务器返回的信息或成功/失败状态。

从宏观层面来看,API 所做的一切几乎都归结为与系统交换数据或请求系统执行操作。

表面上看,这可能类似于 MCP 连接器的功能。然而,至关重要的区别在于,采用基于 API 的方法时,不同的任务需要不同的端点、方法和参数,所有这些都必须在客户端进行维护。MCP 服务器向 LLM 展示其所有可用功能或数据,而无需进行任何客户端更新。

用例、优势和缺点

MCP

API

主要应用

基于 LLM 的工具中的工作流

软件平台之间定义的请求

工作原理

基于 LLM 推理访问多个工具;所有功能都是最新的,因为供应商控制着 MCP 服务器

软件使用预定义的端点、方法和参数发送特定于服务的请求

发现

LLM 可以看到并使用服务器公开的所有工具,包括新工具

软件只能发出预配置的 API 请求

主要用例

基于 AI 和智能体的工作流;基于自然语言提示的动态工具选择;AI 工具的供应商集成

高容量数据传输;固定、可重复的工作流;传统软件集成

其他用例

能够访问多个文件和代码库的编码助手;企业系统的自然语言访问;AI 工具的内部可重用集成

自定义集成;在线交易;定期数据检索;针对不支持 MCP 的 AI 工具的供应商集成

设置时间

建立 MCP 连接后微乎其微

需要在应用中单独配置 API 才能访问新功能

缺点

复杂任务的 Token 成本通常很高;对于明确定义的重复性数据任务,资源消耗过大

对于具有复杂集成的应用,维护成本极高;不保证能访问当前功能

优势

通用标准,能够处理复杂的工作流,对工具的访问权限更大,设置完成后无需人工干预

对于 AI 工具中的固定和高容量工作流,Token 消耗更低

MCP 与 API 的实际图解

让我们看一个阐述 MCP 与 API 之间区别的简单示例。在此场景中,请求实际上更适合 API(它很简单且不需要上下文)。但是,这两个示例清楚地表明了 MCP 如何针对多阶段 LLM 工作流实现最优。

以下是一个使用 Open-Meteo API 发送天气信息 API 请求的脚本(用 Python 编写):

python
import requests url = "https://api.open-meteo.com/v1/forecast" params = { "latitude": 51.5072, "longitude": -0.1276, "current": "temperature_2m"} response = requests.get(url, params=params) data = response.json() temperature = data["current"]["temperature_2m"] print(f"Temperature in London: {temperature}°C")

此示例使用精确的请求格式通过 HTTPS 查询 Open-Meteo,以获取纬度 51.5072 和经度 -0.1276(伦敦)当前的 2 米温度。

相反,MCP 客户端可以向能够访问天气数据库的服务器发送如下 tools/call JSON-RPC 请求:

json
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_weather", "arguments": { "city": "London" } } }

在这个虚构的示例中,客户端请求服务器在其注册表中使用特定工具 (get-weather) 来执行任务(描述伦敦的天气)。

关键的区别在于,这项功能将是 MCP 服务器提供的众多功能之一。MCP 客户端无需了解特定的端点、参数、响应结构或身份验证方法即可生成请求。LLM 可以查看注册表中工具的描述,挑选其认为最适合完成用自然语言描述的任务的工具。

如何在 MCP 和 API 之间做出选择

MCP 和 API 并非对立面。MCP 旨在简化集成的发现和维护。因此,对于非 AI 软件连接以及依赖特定稳定 API 群组的固定 LLM 任务和工作流,API 通常是最佳选择。

何时使用 MCP

  • 你需要管理大型或不断增长的工具集:MCP 客户端可以在运行时发现供应商服务器公开的所有工具,随着工具集的增长,从而减少单个 API 配置开销。
  • 工具选择取决于用户请求:当任务步骤无法预先确定时(例如用户向聊天机器人发送各种各样的请求),MCP 非常有用。LLM 可以检查可用的工具名称、描述和架构,然后选择最适合任务的工具。
  • 供应商功能频繁变化:当供应商向其应用添加新功能时,可以通过 MCP 立即使用。你无需添加新 API 或重新配置现有 API。
  • 你希望在多个 AI 应用程序中使用相同的集成:一个 MCP 服务器可以向多个智能体或应用程序公开相同的功能,从而减少重复的集成工作。

何时使用直接 API

  • 你需要检索结构化数据:如果你的 AI 工具在用户工作流的既定阶段检索可预测的结构化信息(例如物流状态或客户支持工单号),那么标准 API 请求消耗的 Token 和时间较少。
  • 你的工作流按固定顺序组织:如果你的工作流遵循具有精确 API 和确切结果的严格、可重复的顺序,则无需使用 MCP。
  • 你的应用执行高容量工作流:对于高容量任务,Token 消耗可能会非常高。如果复杂的工作流需要结合推理进行迭代式的高容量输入或输出,最好结合使用 MCP 和 API 调用。
  • AI 推理毫无益处:如果普通的应用程序逻辑可以充分完成任务,那么直接调用 API 通常更简单且资源消耗更少。

在 Perplexity 中使用 MCP 连接器

MCP 与 API 之争主要关乎构建具备 AI 功能应用的开发者。不过,你可能也在纠结,在所选的 AI 工具中进行专业工作流时,是否应该使用 MCP。

通用规则同样适用:如果你想要覆盖面广、随时获取的第三方应用程序功能,那么 MCP 是不二之选。对于常规和高容量任务,简单的 API 设置将消耗更少的 Token。

大多数 AI 工具(包括 Perplexity)允许用户零编码设置和使用 MCP 连接器。这使得在不离开聊天界面的情况下编排多步骤工作流成为可能。例如,只需点击几下即可与 Gmail、Hubspot 和 Supabase 等平台集成。

为什么 MCP 让基于 LLM 的应用功能更强大

MCP 的核心优势在于动态发现和降低 API 维护开销。通过将应用程序连接到 MCP server,你可以访问所选供应商(或本地系统)提供的所有最新工具、数据和提示词。

不过,API 仍然至关重要。它们构成了应用互联的基础架构。MCP 充当应用程序与外部功能之间的中间层,它允许 AI 智能体以适合复杂工作流的格式访问尽可能广泛的工具集。