当前位置: 首页 > news >正文

【翻译、转载】【译文】图解模型上下文协议(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),其中:

  1. 客户端发送初始请求以了解服务器的能力。
  2. 服务器随后响应其能力详情。

例如,一个天气 API 服务器,在被调用时,可以回复其可用的“工具”、“提示模板”以及任何其他供客户端使用的资源。

一旦此交换完成,客户端确认连接成功,后续的消息交换便继续进行。


这就是这种设置如此强大的原因之一:

在传统的 API 设置中:

  1. 如果您的 API 最初需要两个参数(例如,天气服务的地点日期),用户会集成他们的应用程序以发送包含这些确切参数的请求。
    在这里插入图片描述

  2. 后来,如果您决定添加第三个必需参数(例如,温度单位的单位,如摄氏度或华氏度),API 的契约 (contract) 就改变了。
    在这里插入图片描述

  3. 这意味着所有使用您 API 的用户都必须更新他们的代码以包含新参数。如果他们不更新,他们的请求可能会失败、返回错误或提供不完整的结果。
    在这里插入图片描述

MCP 的设计通过以下方式解决了这个问题:

MCP 引入了一种动态且灵活的方法,与传统 API 形成鲜明对比。

  1. 例如,当客户端(如 AI 应用 Claude 桌面版)连接到 MCP 服务器(如您的天气服务)时,它会发送初始请求以了解服务器的能力

  2. 服务器会响应其可用工具、资源、提示和参数的详细信息。例如,如果您的天气 API 最初支持地点和日期,服务器会在其能力中传达这些。
    在这里插入图片描述

  3. 如果您之后添加了一个单位参数,MCP 服务器可以在下一次交换期间动态更新其能力描述。客户端无需硬编码或预定义参数——它只需查询服务器当前的能力并相应地进行调整。
    在这里插入图片描述

  4. 这样,客户端就可以动态调整其行为,使用更新后的能力(例如,在其请求中包含单位),而无需重写或重新部署代码


我们希望这阐明了 MCP 的作用。
在这里插入图片描述
参考来源:
https://blog.dailydoseofds.com/p/visual-guide-to-model-context-protocol

相关文章:

  • Linux线程深度解析:从基础到实践
  • 在两个bean之间进行数据传递的解决方案
  • 【五一培训】Day 4
  • Nginx核心功能 02
  • 《Vue3学习手记8》
  • P1603 斯诺登密码详解
  • C与指针——结构与联合
  • NPP库中libnppist模块介绍
  • Kubernetes 安装 kubectl
  • profile软件开发中的性能剖析与内存分析
  • 牛客周赛91 D题(数组4.0) 题解
  • RPG8.增加武器
  • 什么是右值引用和移动语义?大白话解释
  • Vue 虚拟DOM和DIff算法
  • 学习Linux的第一天
  • 初试C++报错并解决记录
  • 栈Stack
  • Javascript学习笔记1——数据类型
  • 第20节:深度学习基础-反向传播算法详解
  • Linux的时间同步服务器
  • 特朗普关税风暴中的“稳”与“变”:新加坡国会选举观察
  • 2类药物别乱吃,严重可致肝肾衰竭!多人已中招
  • 今晚上海地铁1、2、10、17号线加开定点班车至次日0点
  • 中国驻美国使领馆提醒在美中国公民注意交通安全
  • 澳大利亚联邦选举投票正式开始
  • 李在明涉嫌违反《公职选举法》案将于15日进行首次重审公审