Clarence.C11505.8m
在一个万物互联的世界,AI 模型就像是核心不断在分析和推导,Chat,的AI孤岛,如果想让 AI 模型能连接到更多工具和接口就需要用到 MCP,MCP 是AI 模型和外部工具的通讯协议,主要是解决 AI 应用快速而灵活地扩展功能。
MCP (Model Context Protocol, 模型上下文协议)
2024年11月底,由 Anthropic 推出的一种开放标准,旨在统一大型语言模型(LLM)与外部数据源和工具之间的通信协议。MCP 的主要目的在于解决当前 AI 模型因数据孤岛限制而无法充分发挥潜力的难题,MCP 使得 AI 应用能够安全地访问和操作本地及远程数据,为 AI 应用提供了连接万物的接口。
MCP 核心架构
从上图可以看出 MCP 核心架构分几个部分,MCP 遵循客户端-服务器架构(client-server),其中包含以下几个核心概念:
- MCP 主机(MCP Hosts):发起请求的 LLM 应用程序(例如 Claude Desktop、IDE 或 AI 工具)。
- MCP 客户端(MCP Clients):在主机程序内部,与 MCP server 保持 1:1 的连接。
- MCP 服务器(MCP Servers):为 MCP client 提供上下文、工具和 prompt 信息。
- 本地资源(Local Resources):本地计算机中可供 MCP server 安全访问的资源(例如文件、数据库)。
- 远程资源(Remote Resources):MCP server 可以连接到的远程资源(例如通过 API)。
MCP的起源
Anthropic 想做一个类似 LSP(Language Server Protocol)的东西?把这种”AI 应用与扩展之间的通信”标准化。
LSP 是一种用于开发工具的通信协议,由微软在2016年首次提出,并在开源社区中得到了广泛的支持和推广。它主要用于简化和标准化编程语言工具(如代码编辑器、集成开发环境IDE等)与语言服务器之间的交互。
LSP 的功能主要用于做,自动提示代码,代码导航格式化,重构智能提示等功能,LSP 也是采用客户端-服务器模式。客户端通常是代码编辑器或IDE,服务器是语言服务器(Language Server),负责处理与特定编程语言相关的逻辑,客户端和服务器之间通过JSON-RPC协议进行通信。客户端发送请求(如代码补全请求),服务器处理后返回响应。
MCP vs Function Calling vs A2A
对比维度 | MCP Model Context Protocol |
Function Calling | A2A Agent to Agent Protocol |
---|---|---|---|
焦点 | 智能体 ↔ 工具 / 数据 | 智能体扩展功能 | 智能体 ↔ 智能体 |
性质 | 技术协议 | 功能机制,使用 API 调用 | 开放协议 |
范围 | 主要增强单个智能体的能力。 | 主要实现大语言模型与外部工具和服务的交互功能。 | 核心在于多智能体系统和协作。 |
目标 | 为 LLM 提供访问外部能力和上下文的标准方式。 | 为大模型提供工具调用功能,扩展模型的能力和应用场景 | 实现不同智能体间的互操作性与协调,打破智能体之间的"信息孤岛" |
实现 | 基于标准协议,实现 Function Call | 基于选择函数、准备参数、调用函数和整合代码 | 以"任务驱动、消息流转、能力发现"为核心实现 |
常见场景 | 支持复杂场景,跨平台数据访问和操作复杂任务 | 简单任务,机械式操作 | 支持复杂场景,并可以Agent 智能体之间协作操作复杂任务 |