引言
自Anthropic公司在2024年11月推出开源协议MCP及2025年3月Manus的爆火之后,多Agent协同的潜力被再一次激发,很多平台都推出了MCP Server Marketplace,MCP也彻底爆发。MCP被认为可能成为AI时代的“HTTP协议”,加速Agent应用开发及生态扩展。
一、什么是模型上下文协议(Model Context Protocol,MCP)
模型上下文协议(Model Context Protocol,MCP),是由 Anthropic推出的开源协议,旨在实现大语言模型与外部数据源和工具的集成,用来在大模型和数据源之间建立安全双向的连接。
模型上下文协议协议是专为高效获得模型所需要上下文信息而设计的通用接口,可以将推动大语言模型应用的标准化和去中心化。该协议是提供了类似于 OpenAPI 的开放标准,定义了一套通用的通信协议、数据格式和规则,可以有简化开发、灵活、实时响应、安全合规、可扩展的特点,它通过相同的协议同时处理本地资源(例如数据库、文件、服务等)和远程资源(例如Slack或GitHub等API)。
MCP 是一个开放协议,它标准化了应用程序向 LLM 提供上下文的方式。可以将 MCP 视为 AI 应用的 USB-C 端口。正如 USB-C 提供了一种标准化的方式将您的设备连接到各种外围设备和配件一样,MCP 提供了一种标准化的方式将 AI 模型连接到不同的数据源和工具。
MCP采用客户端-服务器架构,主机应用可以连接多个服务器。
小马摊牌了,上面的一大堆文字大部分来自百度百科,需要怎么通俗理解呢?
以下部分文字采用自这篇文章地址。
从本质上来讲,MCP 的灵感部分来源于 USB-C 的类比:如同 USB-C 通过统一接口连接多种设备,MCP 旨在为 AI 应用提供一个“即插即用”的上下文管理框架。
通俗意思就是之前AI与其他工具的通信,都要单独编写工具代码对接。现在不用了,可以随机组合符合协议的MCP服务,这些MCP服务可以是各种本地资源,DB,远程应用等。
更为准确而言,MCP 的核心思想是将模型与外部系统之间的通信抽象为一个客户端-服务器架构,通过标准化的接口(如基于 JSON-RPC 的通信)实现上下文的动态传递和工具的灵活调用。这一架构允许一个宿主应用程序与多个服务器建立连接,从而实现灵活的上下文传递与功能扩展。Anthropic 在发布时提供了初步的规范和 SDK(如 Python 和 TypeScript),并开源了多个预构建的 MCP 服务器(如 Google Drive、GitHub 集成)。
通俗意思是我们都写过RPC应用吧,都写过websocket应用吧?有点类似,MCP也是通过客户端-服务器来通信的,客户端(Client)和服务器(Server)。
二、MCP交互原理
通常而言,MCP 的技术框架围绕三个关键组件构建:主机(Host)、客户端(Client)和服务器(Server)。这些组件共同协作,形成了一个高效、可扩展的生态系统,为 AI 模型与外部资源之间的动态交互提供了坚实的基础。
-
主机(Host)指的是任何能够承载 AI 交互环境的应用程序,例如 Claude Desktop、Cursor 等主流 AI 工具。这些宿主不仅为用户提供与人工智能模型互动的平台,还负责集成外部工具、访问多样化的数据资源,并运行 MCP 客户端(MCP Client)以实现协议的核心功能。作为整个系统的基石,宿主通过提供一个动态、可扩展的操作环境,确保 AI 模型能够无缝调用外部能力,从而提升其实用性和智能化水平。
-
客户端(MCP Client)则是运行于主机内部的关键组件,专门负责与 MCP 服务器(MCP Server)建立高效通信。它充当了宿主与外部资源之间的桥梁,通过标准化的协议接口协调数据传输和指令交互,确保信息的实时性与一致性。
客户端通过 MCP 协议向服务器发送请求,以访问工具或获取信息。这一过程类似于网页浏览器向服务器请求页面内容的机制:用户(或 AI)提出需求,客户端将其转化为标准化的请求,等待服务器的响应。
MCP 客户端的设计充分体现了模块化与轻量化的理念,使宿主应用程序能够灵活对接多个服务器,进而支持复杂任务的执行,例如多源数据整合或跨工具协作。 -
MCP 服务器(MCP Server)扮演着至关重要的角色,通过暴露特定的功能接口和数据访问能力,为整个生态系统注入强大的支持。
MCP 服务器端是系统中的资源供应方,负责连接 AI 模型所需的外部能力和数据。这些轻量级程序通过标准协议暴露服务,具体功能涵盖以下几个方面:
1.能力暴露:通过标准化的接口提供特定功能,例如支持 LLMs 执行复杂任务(如生成报表或调用 API)。
2.工具与数据访问:为 AI 模型提供工具(如计算器、代码解释器)和数据源(如文件内容、实时天气信息)的访问权限。
3.数据库对接:连接企业内部数据库或云端存储,提取结构化数据以供模型使用。
4.服务集成:与外部服务(如 YouTube API、股票价格接口)协作,为模型提供多样化的信息输入。
5.文件操作:支持文件的读写操作,例如从本地磁盘读取文档或将生成内容保存至指定位置。
6.专项任务:执行特定领域的任务,例如图像处理、语音转录等专业化功能。
MCP 服务器的工作流程清晰高效:接收来自客户端的请求,执行相应的操作(如查询数据库或调用工具),然后将结果以标准格式返回给 AI 模型。
MCP的通信层是整个系统的核心所在,通过定义标准协议协调客户端与服务器之间的交互。这一协议不仅是技术实现的基石,也是 MCP 实现跨模型、跨工具兼容性的关键。其主要功能包括:
格式定义:为请求和响应制定统一的结构(如基于 JSON-RPC 的数据格式),确保通信双方能够准确解析彼此的信息。
兼容性保障:通过标准化接口,使不同的 AI 模型(如 Claude、LLaMA)与各种工具无缝协作,消除了异构系统间的障碍。
安全与健壮性:内置安全机制(如认证和加密)以及错误处理逻辑,同时规范数据格式,保障通信的稳定性和可靠性。
这一标准协议的作用类似于互联网中的 HTTP,它为 MCP 生态中的所有参与者提供了一套通用的“语言”,无论使用的是哪种 AI 模型或外部资源,系统各部分都能顺畅协作。
三、MCP与Agent关系
两者可协同工作:MCP为Agent提供标准化工具池(如通过MCP Server集成多个API),而Agent利用MCP接口主动调用工具完成任务。例如,路线规划Agent通过MCP协议调用地图服务接口实现导航功能。
MCP与Agent的协作关系可通过以下几个层次系统阐述:
1、架构分工
MCP:标准化工具池的构建者
MCP通过协议层统一封装外部资源(如数据库、API、文件系统),形成标准化工具池,解决异构系统接入的兼容性问题。例如,Google Drive MCP Server可被多个Agent统一调用,无需重复开发文件读取功能。
Agent:智能调度与执行中枢
Agent基于目标主动调用MCP接口,完成工具选择、流程编排和任务执行。例如,智能客服Agent通过Fetch MCP获取用户订单数据后,调用物流API完成配送状态查询。
2、价值互补
降低开发门槛
MCP屏蔽底层工具差异(如不同数据库的SQL方言),使开发者5分钟即可构建调用多服务的Agent,开发效率提升300%。
增强任务泛化能力
Agent通过MCP动态扩展工具库,突破单一模型能力边界。例如,代码生成Agent结合GitHub MCP获取开源项目数据,实现跨项目代码重构。
构建生态协同
MCP协议支持跨平台互操作(如阿里云MCP服务与腾讯云Agent互通),推动形成“协议统一、能力共享”的AI开发生态。
3、典型案例
aiXcoder智能开发场景
Agent自主规划代码生成→测试→重构流程,期间调用MCP连接的Jira任务管理、Git版本控制、Docker部署等工具,实现全流程自动化。
自动驾驶车队调度
多个Agent通过MCP共享高精度地图数据和传感器信息,协同优化路线规划和车辆避障策略。
四、总结
小马总结,Agent解决了大模型的一个痛点,就是只知道训练时学到的知识,无法获取实时信息或执行具体的操作,而MCP协议用统一的规范告诉AI大模型有哪些工具(tools)和资源(resources)可以调用,并且以什么样的工作流/提示词来使用,以通用统一协议的方式将AI大模型和外界进行连接,只要大模型遵循MCP支持MCP调用,外部server也遵循MCP,它们之间就能随意插拔。
使大模型支持MCP调用的实践流程梳理了一份大致如下便于理解:
- 搭建MCP服务器
创建MCP服务端程序,定义具体功能接口(如天气查询、文件操作)。例如,构建基于.NET的WebAPI项目,注入AddMcpServer并启用Mcp路由。- 集成MCP客户端
插件安装:在AI应用(如VSCode、腾讯云知识引擎)中安装支持MCP的客户端插件(如Cline)。例如,通过VSCode扩展商店添加Cline客户端,实现与大模型的交互。- 定义工具与资源
工具声明:在服务端声明工具函数(如set_background_color),明确参数、触发词(如“颜色”)和权限。例如,动态修改网页背景需定义颜色参数及触发语义。
资源暴露:通过Resources公开数据源(如文件、API),供客户端读取并作为大模型的交互上下文。
Prompt模板:设计动态Prompt模板,支持参数化输入以适配不同任务场景。- 配置交互协议
任务规划:在Agent模式下,大模型自主调用MCP工具(如腾讯位置服务插件),无需代码即可编排流程。- 测试与部署
参考文章:
https://mcp.maomu.com/introduction
https://cloud.tencent.com/developer/article/2505540
https://juejin.cn/post/7494944356534304806
https://modelcontextprotocol.io/quickstart/server