最近爆火的MCP究竟是什么?!

525 阅读7分钟

1. 什么是Model Context Protocol (MCP)

Model Context Protocol (MCP) 是一个社区共建的开放协议,由 Anthropic 在 2024 年 11 月推出,旨在使 AI 模型,尤其是大型语言模型(LLMs),能够更容易地与外部数据(如文件、数据库或 API)连接。它就像一个通用插头,可以让 AI“与”不同的系统交流,而不需要为每个系统进行定制设置。

并且,MCP 是开源的,这意味着任何人都可以使用和改进它,并且它旨在通过访问实时数据来帮助 AI 提供更好的、更相关的答案。

2. MCP解决了什么问题

人工智能的迅速发展,尤其是大型语言模型(LLMs),为生成类人类文本、解决复杂问题和跨行业提升生产力打开了前所未有的潜力。然而,一个持续存在的挑战是:这些模型往往与驱动现代工作流的实时动态数据隔离。将 AI 连接到外部系统——无论是数据库、API 还是生产力工具——通常需要特定的集成,这就创建了一个碎片化的环境,阻碍了可扩展性和创新。模型上下文协议(MCP),由 Anthropic 发起的一种开放标准,就是为了解决这个问题的。MCP 承诺通过提供一个通用的、标准化的框架来无缝集成数据,重新定义 AI 与工具的交互方式。就像 TCP/IP 标准化了网络通信或 ODBC 改变了数据库连接一样,MCP 希望成为互联 AI 生态系统的基础。

具体来说,MCP 其实是解决了“MxN”集成问题,其中 M 个不同的 LLM 需要与 N 个不同的工具连接,导致自定义解决方案的组合爆炸。通过提供单一协议,MCP 将这种复杂性降低到 N+M。

  MCP 通过统一的 API 将 LLM 连接到各种应用程序

MCP 通过统一的 API 将 LLM 连接到各种应用程序

3. MCP是如何工作的

3.1 MCP架构

MCP 是基于客户端-服务器的架构,架构图如下所示:

MCP架构

MCP架构

架构包含三个主要组件:

  • MCP Host (宿主应用)
  • MCP Client (MCP 客户端)
  • MCP Server (MCP 服务器)
  1. MCP Host主要是人工智能应用程序(例如,Claude 桌面、集成开发环境),负责管理 MCP 客户端,控制权限、生命周期、安全性和上下文聚合
  2. MCP Clien是Host 内部专门用于与 MCP Server 建立和维持一对一连接的模块。它负责按照 MCP 协议的规范发送请求、接收响应和处理数据。简单来说,MCP Client 是 Host 内部处理 RPC 通信的“代理”,专注于与一个 MCP Server 进行标准化的数据、工具或 prompt 的交换

  1. 最后,MCP Server暴露特定的功能并提供数据访问,比如实时获取天气、浏览网页等等能力

3.2 MCP Server的关键功能

MCP 服务器提供三种主要功能:

功能描述
Resources(资源)提供给 AI 的数据来源,如文件、数据库记录或 API 响应,为 AI 提供上下文
Prompts(提示)指导 AI 响应或任务的模板消息或工作流,增强互动
Tools(工具)用于 AI 执行的功能,如发送电子邮件或与服务交互,以实现可操作性

3.3 MCP通信

理解MCP Server与MCP Client之间的通信对于构建自己的 MCP 客户端和服务器端至关重要。这里我们通过一个示例来分析MCP Server与MCP Client是如何通信的

在正式传输消息前首先进行的是功能交换

  • 客户端发送初始请求以了解服务器的功能
  • 服务器随后会响应其功能详情

例如,当天气 API 服务器被调用时,它可以回复可用的“工具”、“提示模板”和其他资源供客户端使用。一旦此交换完成,MCP Client会确认连接成功,并继续进行进一步的消息交换。我们可以把它类比为TCP通信建立握手的过程,在正式传输消息前,TCP有一个三次握手建立连接的过程,而MCP有一个功能交换的过程。这样做究竟有什么好处呢?

  1. 在传统的 API 服务中,如果你的 API Server最初需要两个参数(例如, location 和 date 用于天气服务),用户需要将他们的应用程序集成以发送带有这些确切参数的请求

  1. 但假设你想要添加第三个必需参数(比如 unit ,用于温度单位,如摄氏度或华氏度),那么API 的请求协议就会发生变化。

  1. 这就意味着所有使用你 API Server的用户都必须更新其代码以包含新参数。如果不更新,他们的请求可能会失败、返回错误或提供不完整的结果

而MCP的这种设计就有效的避免了这种问题,MCP 引入了一种动态且灵活的方法,与传统的 API 形成了鲜明的对比。

  1. 比如,当客户端(例如,AI 应用程序如 Claude Desktop)连接到 MCP 服务器(例如,你的天气服务)时,它会发送一个初始请求以了解服务器的功能
  2. 服务器会响应其可用工具、资源、提示和参数的详细信息。比如,如果你的天气 API 最初支持 location 和 date ,服务器会将其作为功能的一部分进行通信。

  1. 同样,假设后来你添加了一个 unit 参数,MCP 服务器可以在下一次交换中动态更新其能力描述。客户端不需要硬编码或预先定义这些参数,它只需查询服务器当前的能力并相应地进行调整。

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

这就是MCP通信方式中最重要的一环,有效地提高了程序通信的扩展性

4. 小结

模型上下文协议(MCP)在 AI 集成方面迈出了重要一步,通过提供一个标准化的开源框架,MCP 简化了将 LLMs 连接到外部数据源、工具和工作流的过程,消除了复杂的一次性集成的需要。 随着 AI 的不断发展,无缝地与动态的现实世界数据进行交互的能力对于构建真正智能和响应的应用程序至关重要。MCP 为更互联的 AI 生态系统奠定了基础,使开发人员能够以最小的摩擦创建更智能、更强大的 AI 系统。随着越来越多的采用和持续的创新,MCP 有可能成为 AI 工具集成的行业标准,就像 TCP/IP 对网络通信所做的那样。

资源分享

为了便于大家学习AI应用方面的知识,秀才整理了从入门到精通再到面试的大模型学习资料

感兴趣的同学可以关注公众号IT杨秀才,回复:大模型即可领取

学习交流

如果您觉得文章有帮助,点个关注哦。可以关注公众号:IT杨秀才,秀才后面会在公众号分享MCP实践案例的系列知识。也会持续更新更多硬核文章,一起聊聊互联网那些事儿!

往期推荐
大模型初体验:DeepSeek本地部署
LangChain+DeepSeek小白入门大模型应用开发(1)
大模型应用开发入门系列(1):Hello LangChain
LangChain框架入门系列(2):Model I/O
LangChain框架入门系列(3):数据连接
LangChain框架入门系列(4):链
LangChain框架入门系列(5):Memory
LangChain框架入门系列(6):RAG
LangChain框架入门系列(7):Agent
LangChain框架入门系列(8):Callbacks
LangChain框架入门系列(9):LCEL