当前位置: 首页 > 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

http://www.xdnf.cn/news/277687.html

相关文章:

  • Day3:设置页面全局渐变线性渐变背景色uniapp壁纸实战
  • SALOME源码分析: SolverLab
  • 【Trae+LucidCoder】三分钟编写专业Dashboard页面
  • LabVIEW温控系统热敏电阻滞后问题
  • C++类_嵌套类
  • 【题解】CF196D (哈希)
  • 强化学习机器人模拟器——RobotApp:一个交互式强化学习模拟器
  • stm32卡在SystemClock_Config();的解决方法
  • 华为鸿蒙PC:开启国产操作系统自主化新纪元
  • 【网络】什么是串口链路(Serial Link)?
  • python hasattr()
  • 深入了解 OpenIddict:实现 OAuth 2.0 和 OpenID Connect 协议的 .NET 库
  • 《算法导论(第4版)》阅读笔记:p6-p6
  • 可信执行环境(TEE):保障数据安全的核心技术
  • 【深入浅出MySQL】之数据类型介绍
  • Git推送大文件导致提交回退的完整解决记录
  • n8n工作流自动化平台的实操:生成统计图的两种方式
  • Solr 与 传统数据库的核心区别
  • 前端面试宝典---性能优化
  • OpenLayers:侦听缩放级别的变化
  • 消息队列MQ
  • OpenStack HA高可用集群Train版-0集群环境准备
  • postgresql数据库基本操作
  • 基于开源AI大模型AI智能名片S2B2C商城小程序源码的私域流量稳定性构建研究
  • 个性化推荐:大数据引领电子商务精准营销新时代
  • NPP库中libnppig模块介绍
  • 大连理工大学选修课——图形学:第六章 三维变换和三维观察
  • Langchain4j基于ElasticSearch的向量数据库配置后,启动报错
  • RockyLinux9.3-24小时制
  • HTML02:网页基本信息