【翻译、转载】【译文】图解模型上下文协议(MCP)
原文地址:
https://blog.dailydoseofds.com/p/visual-guide-to-model-context-protocol
图解模型上下文协议(MCP)
…以及理解 API 与 MCP 的对比。
作者:Avi Chawla
2025年3月15日
模型上下文协议 (MCP)
最近,关于模型上下文协议(MCP)的讨论非常热烈。您一定听说过它。
今天,让我们来了解一下它是什么。
直观地说,MCP 就像是您 AI 应用的 USB-C 端口。
正如 USB-C 提供了一种将设备连接到各种配件的标准化方式,MCP 也标准化了您的 AI 应用连接到不同数据源和工具的方式。
让我们更深入地从技术层面探讨一下。
其核心是,MCP 遵循客户端-服务器架构,其中主机应用程序可以连接到多个服务器。
它有三个关键组件:
- 主机 (Host)
- 客户端 (Client)
- 服务器 (Server)
在我们深入探讨之前,先看一个概览👇
主机代表任何 AI 应用(如 Claude 桌面版、Cursor),它提供 AI 交互的环境,访问工具和数据,并运行 MCP 客户端。
MCP 客户端在主机内运行,以实现与 MCP 服务器的通信。
最后,MCP 服务器公开特定的能力并提供对数据的访问,例如:
- 工具 (Tools):使 LLM 能通过您的服务器执行操作。
- 资源 (Resources):向 LLM 公开来自您服务器的数据和内容。
- 提示 (Prompts):创建可重用的提示模板和工作流。
理解客户端-服务器通信对于构建您自己的 MCP 客户端-服务器至关重要。
那么,让我们来了解客户端和服务器是如何通信的。
在我们逐步分解之前,请看一个图示…
首先,我们有能力交换 (capability exchange),其中:
- 客户端发送初始请求以了解服务器的能力。
- 服务器随后响应其能力详情。
例如,一个天气 API 服务器,在被调用时,可以回复其可用的“工具”、“提示模板”以及任何其他供客户端使用的资源。
一旦此交换完成,客户端确认连接成功,后续的消息交换便继续进行。
这就是这种设置如此强大的原因之一:
在传统的 API 设置中:
-
如果您的 API 最初需要两个参数(例如,天气服务的地点和日期),用户会集成他们的应用程序以发送包含这些确切参数的请求。
-
后来,如果您决定添加第三个必需参数(例如,温度单位的单位,如摄氏度或华氏度),API 的契约 (contract) 就改变了。
-
这意味着所有使用您 API 的用户都必须更新他们的代码以包含新参数。如果他们不更新,他们的请求可能会失败、返回错误或提供不完整的结果。
MCP 的设计通过以下方式解决了这个问题:
MCP 引入了一种动态且灵活的方法,与传统 API 形成鲜明对比。
-
例如,当客户端(如 AI 应用 Claude 桌面版)连接到 MCP 服务器(如您的天气服务)时,它会发送初始请求以了解服务器的能力。
-
服务器会响应其可用工具、资源、提示和参数的详细信息。例如,如果您的天气 API 最初支持地点和日期,服务器会在其能力中传达这些。
-
如果您之后添加了一个单位参数,MCP 服务器可以在下一次交换期间动态更新其能力描述。客户端无需硬编码或预定义参数——它只需查询服务器当前的能力并相应地进行调整。
-
这样,客户端就可以动态调整其行为,使用更新后的能力(例如,在其请求中包含单位),而无需重写或重新部署代码。
我们希望这阐明了 MCP 的作用。
参考来源:
https://blog.dailydoseofds.com/p/visual-guide-to-model-context-protocol