图解MCP:Model Context Protocol

🧠 向所有学习者致敬!

“学习不是装满一桶水,而是点燃一把火。” —— 叶芝


我的博客主页: https://lizheng.blog.csdn.net

🌐 欢迎点击加入AI人工智能社区

🚀 让我们一起努力,共创AI未来! 🚀


直白点说,MCP 就像是 AI 应用的 USB-C 接口。

就跟 USB-C 能以标准化的方式把各种设备和配件连接起来一样,MCP 也把 AI 应用连接到不同数据源和工具的方式给标准化了。

咱们再深入一点,从技术角度瞅瞅。

说到底,MCP 采用的是客户端 - 服务器架构,一个宿主应用可以连接到多个服务器。

它有三个关键组成部分:

  • 宿主
  • 客户端
  • 服务器

在深入之前,先大致瞅瞅它们的概览👇

宿主 代表任何 AI 应用(比如 Claude 桌面版、Cursor),它为 AI 交互提供环境,访问工具和数据,并运行 MCP 客户端。

MCP 客户端 在宿主内部运行,用来和 MCP 服务器进行通信。

最后,MCP 服务器 暴露特定的能力,并提供对数据的访问,比如:

  • 工具:让 LLM(大型语言模型)能够通过你的服务器执行操作。
  • 资源:将服务器上的数据和内容暴露给 LLM。
  • 提示模板:创建可复用的提示模板和工作流。

搞清楚客户端和服务器之间的通信,对于构建自己的 MCP 客户端 - 服务器来说至关重要。

那咱们就瞅瞅它们是怎么通信的。

在一步步拆解之前,先看看下面这张图…

首先,是能力交换:

  • 客户端发送一个初始请求,去了解服务器的能力。
  • 然后服务器回复它的能力详情。
  • 比如说,一个天气 API 服务器被调用时,就可以回复可用的“工具”、“提示模板”以及任何其他资源,供客户端使用。

完成这个交换后,客户端就会确认连接成功,之后就可以继续进一步的消息交换了。

这玩意儿厉害的地方就在于:

在传统的 API 设置里:

  • 假如你的 API 最初需要两个参数(比如天气服务的 locationdate),用户就得按照这些精确的参数来集成他们的应用。

  • 后来,要是你决定再加一个必填的参数(比如温度单位的 unit,是摄氏度还是华氏度),API 的契约就变了。

  • 这就意味着,所有使用你 API 的用户都得更新他们的代码,把新参数加进去。要是他们不更新,请求可能就会失败,报错,或者返回不完整的结果。

MCP 的设计是这样解决这个问题的:

  • MCP 引入了一种动态且灵活的方法,和传统的 API 形成鲜明对比。
  • 比如说,当一个客户端(比如像 Claude Desktop 这样的 AI 应用)连接到一个 MCP 服务器(比如你的天气服务)时,它会发送一个初始请求,去了解服务器的能力。
  • 服务器会回复它可用的工具、资源、提示和参数的详情。比如,要是你的天气 API 最初支持 locationdate,服务器就会把这些作为它的能力的一部分进行沟通。

  • 要是后来你加了一个 unit 参数,MCP 服务器可以在下一次交换时动态更新它的能力描述。客户端不需要硬编码或者预先定义参数——它只需要查询服务器当前的能力,然后相应地调整就行。

  • 这样一来,客户端就可以在运行时调整自己的行为,使用更新后的能力(比如在请求中加上 unit),而不需要重写或者重新部署代码。

希望这能帮你搞清楚 MCP 是干啥的。

本专栏将继续探索创建自定义的 MCP 服务器,并且动手搞一些演示,记得关注哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI仙人掌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值