MCP(Model Context Protocol,模型上下文协议),2024年11月底,由 Anthropic 推出的一种开放标准,旨在统一大型语言模型(LLM)与外部数据源和工具之间的通信协议。MCP 的主要目的在于解决当前 AI 模型因数据孤岛限制而无法充分发挥潜力的难题,MCP 使得 AI 应用能够安全地访问和操作本地及远程数据,为 AI 应用提供了连接万物的接口。
Function Calling
是AI模型调用函数的机制,MCP是一个标准协议,使大模型与API无缝交互,而AI Agent是一个自主运行的智能系统,利用Function Calling和MCP来分析和执行任务,实现特定目标。
MCP的优势:开放标准利于服务商开发通用API,避免重复造轮子,利用现有MCP服务增强Agent。
MCP为什么那么火?
比如Coze,Dify等,每个平台都自己实现插件,不通用,有了MCP,那实现的插件可以通用了。
MCP 服务器不仅连接了外部资源与 AI 模型,还通过标准化的方式提供多样化的服务,以满足复杂应用场景的需求。
MCP主要功能
- 上下文共享:应用程序可以通过 MCP 向模型提供所需的上下文信息,增强模型的理解能力。
- 工具暴露:MCP将应用程序的功能暴露给模型,模型可以调用这些工具完成复杂任务。
- 可组合的工作流:利用 MCP 集成多个服务和组件,构建灵活、可扩展的 AI 工作流。
- 安全性:通过本地服务器运行,MCP 避免将敏感数据上传至第三方平台,确保数据隐私。
MCP架构
MCP 采用客户端-服务器架构:
MCP 客户端(Client)
:通常是 AI 应用程序(如 Claude 或其他 LLM 工具),负责发起请求并与服务器通信。MCP 服务器(Server)
:轻量级程序,负责暴露特定的数据源或工具功能,并通过标准化协议与客户端交互。
通信格式:基于 JSON-RPC 2.0,支持请求、响应和通知三种消息类型,确保通信的标准化和一致性。
MCP Servers主要功能
MCP Servers 作为一个轻量级的本地服务,旨在为客户端提供数据访问和功能执行的接口。
1. 资源暴露(Resource Exposure)
资源是服务器提供给客户端的数据实体,可以是文件、数据库记录、内存中的对象等。
例如:
- 文件资源:
file:///home/user/report.txt
- 内存资源:
memo://recent-insights
2. 工具提供(Tool Provisioning)
工具是服务器暴露的可执行功能,客户端可以通过调用这些工具完成特定任务。
例如:
- 查询数据库:query_database(参数:SQL 语句,返回:查询结果)
- 文件写入:write_file(参数:文件路径、内容)
3. 动态通知(Dynamic Notification)
当资源发生变化时,服务器可以通过通知机制(如 notification 消息)主动推送更新到客户端。
4. 会话管理(Session Management)
处理客户端的连接初始化、能力协商和会话关闭。