目录
1、MCP概念
MCP(Model Context Protocol,模型上下文协议)是由 Anthropic 公司于 2024 年 11 月推出的开放标准协议,旨在为大型语言模型(LLM)提供统一接口,实现与外部数据源、工具及系统的标准化连接,类似于“AI 领域的 USB-C 接口”。它的目标是建立一个通用的“语言”,MCP 为 AI 模型连接各种数据源和工具提供了标准化的接口,让 AI 系统和数据库能够无缝沟通,减少集成过程中的摩擦和技术障碍。通过统一协议连接大语言模型与本地文件、数据库、API等资源,打破数据孤岛,实现“即插即用”的智能交互。构建在一个灵活且可扩展的架构上,使 LLM 应用和集成之间的无缝通信成为可能。
官网资料:
Introduction - Model Context Protocol
2、为什么选择 MCP
MCP 帮助你在 LLM 的基础上构建代理(agents)和复杂的工作流。LLM 经常需要与数据和工具集成,而 MCP 提供了:
- 持续增长的预构建集成列表,LLM 可直接使用
- 灵活切换不同的 LLM 提供商和厂商
- 在你的基础设施内安全地处理数据的最佳实践
讲 MCP 肯定会提及 Function Calling,23 年 OpenAI 发布的 GPT Function Calling 也可以实现类似的功能:通过指定的格式将外部工具传给 LLM 用于扩展其能力的边界。但 Function Calling 是模型能力而非标准协议,不同供应商的 LLM 支持 Function Calling 的格式各不相同。为了适配一个外部平台同一类工作可能要重复多遍,还有隐含的调优成本,因此基于 Function Calling 的产品化成本高昂。但 MCP 通过统一协议让低成本接入成为可能,当一种成本被快速降低时,想象力的空间就会急速上升。无论是 Function Calling 还是 MCP,落脚点都是为 LLM 提供更多的业务理解。在已经初步具备与人相近理解能力的基础上,再赋予其足够多、足够广的业务能力,智能体就能脱离于个人展现出通用的生产力,我理解这才是 MCP 如此广泛被讨论的原因。
3、MCP架构
以这张图为例,作为算力核心的 LLM,既需要调用本地数据(如磁盘存储),也需对接远程服务(如邮件服务器),而 MCP 正是实现这种多源能力整合的转换器。其价值在于可以通过标准化协议广泛地接入外部资源,让 LLM 在完成训练后还可以突破被固有的能力边界。MCP 官网展示的就是最经典的案例:通过接入气象数据接口 LLM 就可以准确回答 “明天会下雨吗” 这类即时性问题。
MCP 采用经典高效的客户端-服务器架构,通过标准化协议实现 LLM 与外部资源的高效互联,其通常包含三个核心组件:
Hosts 是 LLM 应用(如 Claude Desktop 或 IDEs),它们发起连接。Clients 在 host 应用中与 servers 保持 1:1 的连接Servers 为 clients 提供上下文、tools 和 prompts。具体介绍如下:
3.1、MCP主机(Hosts)
如Claude桌面或Cursor等AI应用,提供AI交互环境,运行MCP客户端。它就像是企业的办公环境和基础设施,提供了用户与AI交互的界面和环境,同时也为Agent和MCP Client提供了运行空间。Host 通常承担最终用户交互界面的角色,其既可以是独立的 LLM Desktop,也可以是基于 LLM 构建的生产力工具(如 IDE)。它代表的是需求方,是 MCP Client 的运行时环境,负责协调用户、LLM 与外部资源之间的交互。
3.2、MCP客户端(MCP Client)
在主机Host 内运行,负责与MCP服务器通信。Host 内部负责与 MCP Server 交互的组件。Client 由 Host 创建并与 Server 建立一对一的有状态会话,会将 Host 的请求转换为符合 MCP 标准的消息发送给 Server,再将 Server 的响应解析为 Host 可以理解的格式。它是AI助手与MCP服务器之间的通信桥梁,负责将用户请求转化为MCP服务器可识别的标准化API调用,并返回结果。可以把它想象成秘书使用的标准化供应商,不参与决策,不理解任务本质,只负责按照秘书的指示,以正确的格式和协议与各种服务提供商通信。
3.3、MCP服务器(MCP Server)
LLM 需要的外部能力的具象化。这里指的能力可以是读取本地磁盘文件,写入本地数据库,查询天气/股票价格等等,但 Server 不是能力/资源本身,Server 是通过统一的标准协议将能力对外暴露的代理。轻量级程序,暴露特定的功能(如工具、资源和提示),并提供对数据源的访问。每个服务器专注于一种资源类型或功能,例如文件系统、数据库、Web搜索等。服务器的模块化设计确保了协议的可扩展性,如同各个专业部门或外部服务提供商,每一个都负责特定类型的服务。
MCP Server 是为 LLM 赋能的关键,Server 本身对外暴露的能力又分为三种:
3.3.1、Resources
可供加工的数据。一般是静态或者半动态的原始数据,这些数据可以直接被 LLM 理解并放在上下文中用于推理。比如是日志或配置等基础信息,类似于一个只读的文件或者数据库。从你的 server 向 LLMs 暴露数据和内容,Resources 是 Model Context Protocol (MCP) 中的一个核心原语,它允许服务器暴露可以被 clients 读取并用作 LLM 交互上下文的数据和内容。
3.3.2、Tools
执行一个具体的任务。当 LLM 将用户需求拆分为多个具体的子步骤时,可以通过调用 Tools 实现其中的一步或者多步。可以是写入数据库,可以是基于敏感信息进行计算然后输出脱敏信息,也可以是调用另外一个没有提供 MCP 接口的系统。通常一个 Server 中的 Tools 通常具有相关性,它们在一起描述了一个服务拥有的所有能力。Tools 是 Model Context Protocol (MCP) 中的一个强大原语,它使 servers 能够向 clients 暴露可执行功能。通过 tools,LLMs 可以与外部系统交互、执行计算并在现实世界中采取行动。
3.3.3、Prompts
可复用的 LLM 提示模板。通常 LLM 在处理不同任务时会使用预定义的 Prompt 模板进行引导,但当处理一些私域场景时可能需要一些特化逻辑,比如输入/输出格式或上下文片段等,这些逻辑可以固化为 Prompts 保存在 MCP Server 中。Prompts 允许 servers 定义可复用的提示模板和工作流,clients 可以轻松地将它们呈现给用户和 LLMs。它们提供了一种强大的方式来标准化和共享常见的 LLM 交互。
用做饭来比喻的话,Resources 是各种未处理/预处理的食材,Tools 定义了 “菜刀”,而 Prompts 定义了偏好。当我向一个基于 LLM 扮演厨师的 Agent 提出想吃 “凉拌黄瓜” 时,Agent 基于 LLM 理解了做饭的流程,通过 Prompts 知道了成品一定要放香菜,通过 Resources 得到了老家产的黄瓜,调用了多次 Tools 切出黄瓜块。需要指出的是,与 MCP Server 的哪些资源/能力进行交互是 LLM 自己判断并选择的,因此对资源/能力的描述要准确无误。如果提供了 “黄瓜牌西红柿”,也是有可能得到 “凉拌西红柿” 的。
4、MCP 的实际应用场景
软件开发:通过将AI模型连接到代码存储库或问题跟踪器来增强代码生成工具,从而提高开发效率和代码质量。例如,在开发环境中,可以同时使用文件系统服务器、数据库服务器和开发工具服务器,实现完整的开发工作流程。Cursor集成案例中,通过MCP配置GitHub Server,AI代码助手可直接提交Pull Request、读取仓库历史,代码生成准确率提升37%。
数据分析:允许AI助手访问和分析来自数据库或云存储的数据集,使得数据分析更加高效和深入。在数据分析系统中,MCP协议可以处理来自多个数据源的大规模数据,确保数据的快速传输和处理,提升系统性能和响应速度。
企业自动化:将AI与CRM系统或项目管理平台等业务工具相结合,实现企业流程的自动化和优化。例如,在电商场景下,AI可以自动预警库存异常并触发补货流程;某零售企业通过MCP连接ERP、CRM系统,实时同步库存、订单数据,生成可视化分析报告,报表生成时间从8小时缩短至15分钟。
智能客服系统:在智能客服系统中,MCP协议可以帮助从多个数据源获取用户信息、订单记录和商品数据,实现不同数据源之间的无缝对接,提高开发效率和系统稳定性。例如客户支持机器人可以通过MCP访问FAQ数据库或工单系统,在对话中实时提取相关答案,而不局限于模型训练内容。
内容生成平台:在内容生成平台中,MCP协议可以解决数据连接问题,使得开发者可以更高效地处理文本、图片和视频数据,加快开发进度并提升平台性能。
医疗场景:通过MCP提供患者病史,模型可以更精准地生成诊断建议,同时可以集成实验室检测系统和医学影像分析工具,为医生提供全面的患者信息和诊断支持。
教育场景:使用MCP集成专业知识或工具,可以设计课程内容、生成多语言学习材料、解答学生问题,扩大AI在教育领域的应用潜力。
金融场景:在金融领域,MCP可以协作完成市场趋势分析、投资报告生成和多语言客户支持,提高金融服务的质量和效率。
5、MCP应用广场
5.1、百度MCP广场
地址:百度搜索开放平台
5.2、阿里MCP广场
地址:大模型服务平台百炼控制台
5.3、腾讯MCP广场
地址:腾讯云开发者社区-腾讯云开发者 MCP广场_开发者MCP服务_MCP 服务器- 腾讯云
参考资料: