MCP(Model Context Protocol,模型上下文协议)
2024年11月底,由 Anthropic 推出的一种开放标准,旨在统一大模型与外部数据源和工具之间的通信协议。
MCP 的主要目的在于解决当前 AI 模型因数据孤岛限制而无法充分发挥潜力的难题,MCP 使得 AI 应用能够安全地访问和操作本地及远程数据,为 AI 应用提供了连接万物的接口。
对于 LLM 开发者,MCP 是一个变革性的协议。
它消除了为每个数据源或工具进行定制集成的需要,减少了开发时间和维护成本。
从本质上来说,MCP是一种技术协议,一种智能体Agent开发过程中共同约定的一种规范。
在统一的规范下,协作效率就能大幅提高,最终提升智能体Agent的开发效率。
MCP协议本质就是Function calling技术的更高层封装和实现。
传统的Function calling技术要求围绕不同的外部工具API单独创建一个外部函数,类似一把锁单独配一把钥匙,而一个智能体又往往涉及到多个外部工具设计,因此开发工作量很大。

MCP 的灵感部分来源于 USB-C 的类比:如同 USB-C 通过统一接口连接多种设备,MCP 旨在为 AI 应用提供一个“即插即用”的上下文管理框架。

MCP 的核心思想是将模型与外部系统之间的通信抽象为一个客户端-服务器架构,通过标准化的接口(如基于 JSON-RPC 的通信)实现上下文的动态传递和工具的灵活调用。Anthropic 在发布时提供了初步的规范和 SDK(如 Python 和 TypeScript),并开源了多个预构建的 MCP 服务器(如 Google Drive、GitHub 集成),以加速该协议的推广。
MCP服务器与客户端
MCP技术体系中对大模型和外部工具的一种划分方式,也就是说在MCP技术体系中,会将外部工具称作服务器,而接入这些外部工具的大模型运行环境称作客户端。

MCP 客户端调用服务器工具的流程如下:
1、建立连接 :与 MCP 服务器搭建通信链路。
2、查询工具 :获取服务器上所有外部工具的数量信息。
3、生成列表 :将查询到的外部工具整理成列表,并融入当前对话场景。
4、调用工具 :通过 Function calling 技术调用所需的外部工具。
一个客户端可以接入多个不同类型的服务器的,但要求是都要遵循MCP通信协议。MCP服务器的输出内容是一种标准格式的内容,只能被MCP客户端所识别。在客户端和服务器都遵循MCP协议的时候,客户端就能够像Function calling中大模型调用外部工具一样,调用MCP服务器里面的工具。
VS Function calling

Function Calling是AI大模型模型调用函数的机制,
MCP是一个标准协议,使大模型与API无缝交互,
而AI Agent是一个自主运行的智能系统,利用Function Calling和MCP来分析和执行任务,实现特定目标。