1. MCP概念介绍
MCP(Model Context Protocol)【1,2】是Anthropic在2024年11月25日推出的面向连接AI助手与各种数据源系统的一套开放标准协议。
MCP作为一个开放协议,标准化了应用程序如何向大型语言模型(LLMs)提供上下文。可以将MCP想象为AI应用的USB-C端口。就像USB-C提供了将设备连接到各种外围设备和配件的标准方式一样,MCP提供了将AI模型连接到不同数据源和工具的标准方式,包括内容仓库、商业工具和开发环境。其目标是帮助大模型生成更优质、更相关的回应。
2. 为什么选择MCP
随着AI助手的主流化,最近DeepSeek爆火出圈,也加速了AI助手的普及,之所以这么出圈,主要还是因为免费+好用,免费是第一位,一下子拉低了应用的成本门槛。DeepSeek在to C领域应用还好,因为对于结果输出不需要非常严格,能用就行。但to B或者to G,DeepSeek可能不能直接用,生成与生产之间的gap还需要用专业的知识进行解决。此外也不能忽视安全对齐问题,最近Anthropic CEO提到DeepSeek对于安全的审查是比较弱的【3】,对于to B或者to G,安全审查应该说是高要求,此外,B或者G端对于结果的极高标准的准确性,也是有相当高的要求。不管怎么说,DeepSeek加速了大模型应用落地的进程。
行业在模型能力上投入巨大,实现了推理和质量上的快速进步。然而,即便是最先进的模型也受限于与数据的隔离——被信息孤岛和遗留系统所困。每个新的数据源都需要自己的定制实现,使得真正连接的系统难以扩展。MCP解决了这一挑战。提供了一个通用的、开放的标准,用于将AI系统与数据源连接起来,用单一协议取代了碎片化的集成。为AI系统提供所需数据的途径更简单、更可靠。
MCP帮助在LLMs之上构建代理和复杂的工作流程。LLMs经常需要与数据和工具集成,MCP提供了:
- 一个不断增长的预构建集成列表,LLM可以直接接入
- 在不同LLM提供商和厂商之间切换的灵活性
- 在基础设施内保护数据的最佳实践
用更通俗的话来说:
1. 建立开放的集成标准: 通过标准化应用程序与LLM之间的上下文交互方式,提升模型的上下文感知能力和任务协作能力。
2. 加强数据安全与控制: 所有操作均需用户授权,且MCP服务部署于本地,有效避免数据外泄风险,保障数据安全。
3. 构建丰富的工具生态: 解决了过去LLM工具不兼容的问题,提供多样化的工具选择。
3. 总体架构
MCP的核心遵循客户端-服务器架构,其中主机应用程序可以连接到多个服务器:
- MCP主机:像Claude Desktop、集成开发环境(IDEs)或希望通过MCP访问数据的AI工具这样的程序。
- MCP客户端:与服务器保持1:1连接的协议客户端。
- MCP服务器:通过标准化的模型上下文协议(MCP)暴露特定能力的轻量级程序。
- 本地数据源(注:目前主要还是本地化操作,对于云端操作还是有局限性):计算机上的文件、数据库和服务,MCP服务器可以安全地访问。
- 远程服务:通过互联网可用的外部系统(例如,通过APIs),MCP服务器可以连接到这些系统。
基于MCP的Agent需要关注的问题:
(1)暂不支持复杂调用: 例如循环、if-else等结构目前尚未支持。
(2)不支持内存存储: 遇到大变量时,可能会出现效果和效率方面的问题。
(3)需要本地启动多个服务器:依赖于本地环境,并需解决兼容性问题。
4. MCP应用
模型上下文协议是一个开放标准,使开发者能够在其数据源和AI驱动工具之间建立安全、双向的连接。架构简单明了:开发者可以通过MCP服务器暴露其数据,或者构建连接到这些服务器的AI应用(MCP客户端)。
模型上下文协议的三个主要组件:
- 模型上下文协议规范和SDK
- 本地MCP服务器支持
- MCP服务器的开源仓库
开发者现在可以针对标准协议进行构建,而不是为每个数据源维护单独的连接器,如果用过s3存储协议可能会有很深的体感,只需要实现一套方法,就可以接入支持该协议的一堆第三方存储,非常方便,MCP其实实现的也是该目标。随着生态系统的成熟,AI系统在在不同工具和数据集之间移动时将保持上下文,用更可持续的架构取代当今碎片化的集成。
Claude提供了相当丰富的教程和案例【2】,有兴趣可以关注和实战,本文主要是引出该协议概念,后续会分享相关的实战,比如实现“代码自动化工具Agent”。
5. 参考材料
【1】Introducing the Model Context Protocol