MCP
概述
MCP(Model Context Protocol)是一种开放协议,它标准化了应用程序向 LLM 提供上下文的方式。可以将 MCP 视为 AI 应用程序的 USB-C 端口。正如 USB-C 提供了一种将设备连接到各种外围设备和配件的标准化方式一样,MCP 提供了一种将 AI 模型连接到不同数据源和工具的标准化方式。
现阶段很多 MCP 应用仍然是基于函数调用的方式实现的,从成本和适用性的考虑这显然是最佳选项,客观反应了在定位上 MCP 与函数调用就不是竞品关系。MCP 旨在为 AI 应用提供一种协议范式,其革新性在于构建了 AI 工具交互的分层解耦架构。
基本的调用流程如下:
- AI 软件将 用户问题 + 可用工具 封装成一个 context 输入给 LLM(支持函数调用的模型);
- LLM 即可根据情况分析出当前需要调用的工具,并生成 执行函数名 + 所需参数 的模型返回;
- API 将其封装成实际的函数调用,并再次将 返回结果 添加到 context 中;
- LLM 根据最终内容判断是否还需其他工具,直到 LLM 判断已获取到所有信息后,最终输出用户期望的回答。
MCP 的基本架构
MCP的官方文档中将架构中的基本结构分为:
- MCP 主机(MCP Hosts):发起请求的 LLM 应用程序(例如 Claude Desktop、 煎蛋智能体)。
- MCP 客户端(MCP Clients):在主机程序内部,与 MCP server 保持 1:1 的连接。
- MCP 服务器(MCP Servers):为 MCP client 提供上下文、工具和 prompt 信息。
- 本地数据源(Local Data Sources):本地计算机中可供 MCP server 安全访问的资源或服务。
- 远程服务(Remote Services):MCP server 可以连接到的远程资源(例如通过 API)。