MCP协议
背景
知道MCP还是源于因为之前验证大模型集成时了解到的。因为当时后续计划做AI应用,增加saas平台的噱头的同时成为一个亮点功能,提升用户体验。
基础概念与架构设计
MCP(Model Context Protocol)是一个开放协议,它标准化了应用程序如何向大语言模型(LLMs)提供上下文。可以将MCP比作AI应用的USB-C接口。正如USB-C提供了一种标准化的方式,将你的设备连接到各种外围设备和配件,MCP 也提供了一种标准化的方式,将AI模型连接到不同的数据源和工具。
一、协议本质解构
MCP是一种客户端-服务器架构的数据访问协议,专为AI应用(如大语言模型)设计,其核心是为AI应用提供一种标准化方式来安全访问多种数据源。
关键组件
- MCP 主机:运行AI应用并发起数据请求,如聊天应用或IDE
- MCP 客户端:处理与 MCP 服务器的通信
- MCP 服务器:连接到各种数据源的轻量级程序
- 大型语言模型(LLM):分析问题并选择回答的 AI 模型
- 数据源:包括数据库、外部 API 等
MCP采用简洁的JSON格式进行通信,主要支持两类基本操作:
- 发现操作:客户端识别服务器提供的能力
- 执行操作:请求服务器执行特定工具来访问数据
二、核心作用剖析
访问标准化
- 为不同类型的数据源提供统一的访问接口
- 客户端无需了解每个数据源的具体访问细节
安全控制
- 服务器明确声明其访问能力和权限范围
- 支持基本的认证和授权机制
- 客户端可以限制服务器的访问范围
工具扩展性
- 服务器可以动态注册和提供各种工具
- 客户端可以发现并使用这些工具
- 支持从简单的文件读取到复杂的API调用等多种操作
三、基本工作流程
MCP的典型工作流程如下:内部实现可能会有多次循环
大体流程如下:
- 用户向 MCP 主机(如聊天应用或 IDE)提出问题
- 主机将问题发送给大型语言模型(LLM)进行分析
- LLM 确定需要使用哪些工具来回答问题
- 主机通过 MCP 客户端请求执行相应工具
- MCP 客户端向不同的 MCP 服务器发送工具执行请求
- MCP 服务器访问相应的数据源(数据库或外部 API)
- 数据源返回结果给 MCP 服务器,再传回客户端
- MCP 客户端汇总工具执行结果并返回给主机
- 主机将工具结果发送给 LLM 生成最终回答
- 最终回答显示给用户
四、现实应用场景
MCP适用于以下典型场景:
增强型AI聊天应用
- 让聊天机器人能够访问用户本地文件和数据库
- 使AI可以获取并引用真实、最新的信息
智能开发工具
- IDE中的代码助手可以访问项目代码文件
- 辅助工具可以查询API文档和相关资源
企业AI集成
- 让AI应用安全地访问企业内部数据
- 在保护敏感信息的同时提供个性化服务
五、协议现状与局限
当前MCP协议的特点与局限:
简洁性优先
- 协议设计相对简单,专注于解决基本的数据访问问题
- 尚未包含复杂的加密、动态路由等高级功能
开发阶段
- 协议仍在发展中,标准可能会随时间演进
- 生态系统正在逐步构建
基础功能聚焦
- 当前主要聚焦于基础的数据访问能力
- 缺乏高级的事务处理、分布式一致性等特性
结论
MCP代表了AI工具与数据源之间交互的一个重要标准化尝试。它为构建能够访问和利用各种数据的AI应用提供了基础架构,虽然相对简单,但解决了AI应用难以安全访问多样化数据的关键问题。随着协议的发展,MCP有潜力成为AI应用与数据源之间交互的重要标准,类似于HTTP对于web应用的意义。
但是目前MCP仍处于相对早期阶段,其真正的潜力和影响力将随着更多实现和应用的出现而逐步显现。
参考
https://www.anthropic.com/news/model-context-protocol
https://github.com/modelcontextprotocol
https://modelcontextprotocol.io/introduction
https://www.youtube.com/watch?v=sahuZMMXNpI
https://www.youtube.com/watch?v=eur8dUO9mvE
https://www.youtube.com/watch?v=kQmXtrmQ5Zg&t=2s