一. 什么是MCP
MCP(Model Context Protocol)即模型上下文协议 ,2024年11月底,由 Anthropic 推出的一种开放标准,旨在统一大模型与外部数据源和工具之间的通信协议。MCP 的主要目的在于解决当前 AI 模型因数据孤岛限制而无法充分发挥潜力的难题,MCP 使得 AI 应用能够安全地访问和操作本地及远程数据,为 AI 应用提供了连接万物的接口。
MCP是一个AI大模型领域新的开放标准协议,用来在大模型和数据源之间建立安全双向的链接。它规范了应用程序向 大模型(LLM) 提供上下文的方式。MCP 就像 AI 应用程序的 USB-C 端口一样。正如 USB-C 提供了一种标准化的方式将您的设备连接到各种外围设备和配件一样,MCP 也提供了一种标准化的方式将 AI 模型连接到不同的数据源和工具。MCP 可帮助您在大模型(LLM)之上构建代理和复杂的工作流。
MCP旨在替换碎片化的 Agent 代码集成,从而使 AI 系统更可靠,更有效。通过建立通用标准,服务商可以基于协议来推出它们自己服务的 AI 能力,从而支持开发者更快的构建更强大的 AI 应用。开发者也不需要重复造轮子,通过开源项目可以建立强大的 AI Agent 生态。MCP 可以在不同的应用 / 服务之间保持上下文,增强整体自主执行任务的能力。
大模型(LLM)通常需要与数据和工具集成,而 MCP 可提供以下功能:
- 让越来越多的预建集成应用可供你的 LLM 直接插入;
- 提供在大模型(LLM)提供商和供应商之间切换的灵活性;
- 保护基础架构内数据的最佳实践。
MCP的意义是大模型(LLM)能够使用“远程工具”:这些工具可以使用不同语言、部署在不同设备、具有不同的功能,通过MCP把它们集成一起,供大模型(LLM)选用;同样的,如果你已经有一批工具,那么也可以MCP把它们提供给任何一个大模型(LLM)。
总的来说,MCP像USB一样,提供了各个LLM和各个工具之间的快速接入。如果把大模型(LLM) 比作人的大脑,MCP 就是手脚。LLM 不断提升智能下限,MCP 则是不断提升创意上限。
二、MCP的核心架构
MCP 采用C/S(客户端/服务端)架构,以下是 MCP 官方展示的架构:
MCP 采用 C/S 架构,包含 MCP 主机(Hosts)、MCP 客户端(Clients)和 MCP 服务器(Servers) 三个核心组件。其中,MCP 主机是发起请求的大模型(LLM)应用程序,如 Claude Desktop、IDE 或 AI 工具等;MCP 客户端在主机程序内部,与 MCP 服务器保持 1:1 的连接;MCP 服务器则为 MCP 客户端提供上下文、工具和 prompt 信息。MCP通信基于JSON-RPC 2.0
协议,支持请求、响应和通知三种消息类型,确保通信的标准化和一致性。
- MCP 主机(MCP Host):发起请求的 AI 应用程序,比如聊天机器人、AI 驱动的IDE等。
- MCP Client(客户端):作为调用方,是用户与 MCP 生态的交互入口。例如,聊天应用类,提供自然语言交互服务,让用户通过对话调用 AI 能力;编码工具类,在 IDE 里调用外部应用和系统的能力;任务自动化类,帮用户自动化执行重复性任务,如数据处理、流程调度,以提升效率。
- MCP Server(服务端):作为被调用方,提供后端服务支撑,包含各类核心功能模块。例如,数据库类(如 ClickHouse、Supabase)负责数据存储、查询与管理;设计类(如 Figma、Blender)支撑设计创作、文件协作等功能;生产力工具类(如 Notion、Obsidian)提供笔记管理、知识整理等办公协作服务;支付类(如 Stripe),处理在线支付交易,支持商业场景的资金流转。
- Local MCP Server(本地数据源):MCP 服务器可以安全访问本地计算机上的文件、数据库和服务。
- Remote MCP Server(远程服务源):MCP 服务器可以通过互联网(例如通过 API)连接到外部系统。
1. MCP Client
MCP client 充当 LLM 和 MCP server 之间的桥梁,MCP client 的工作流程如下:
- MCP Client 首先从 MCP server 获取可用的工具列表。
- 将用户的查询连同工具描述通过Function Calling 一起发送给 LLM。
- LLM 决定是否需要使用工具以及使用哪些工具。
- 如果需要使用工具,MCP Client 会通过 MCP server 执行相应的工具调用。
- 工具调用的结果会被发送回 LLM。
- LLM 基于所有信息生成自然语言响应。
- 最后将响应展示给用户。
当前Claude Desktop
和Cursor
都支持了MCP Server接入能力,它们就是作为 MCP client来连接某个MCP Server感知和实现调用。
2. MCP Server
MCP Server 是 MCP 架构中的关键组件,它可以提供 3 种主要类型的功能:
- 资源(Resources):类似文件的数据,可以被客户端读取,如 API 响应或文件内容。
- 工具(Tools):可以被 LLM 调用的函数。
- 提示(Prompts):预先编写的模板,帮助用户完成特定任务。
这些功能使 MCP server 能够为 AI 应用提供丰富的上下文信息和操作能力,从而增强 LLM 的实用性和灵活性。
3. MCP通信机制
MCP 协议支持两种主要的通信机制:基于标准输入输出的本地通信和基于SSE(Server-Sent Events)的远程通信。这两种机制都使用 JSON-RPC 2.0
协议格式进行消息传输,确保了通信的标准化和可扩展性。
- 本地通信:通过
stdio
传输数据,适用于在同一台机器上运行的客户端和服务器之间的通信。 - 远程通信:利用 SSE 与 HTTP 结合,实现跨网络的实时数据传输,适用于需要访问远程资源或分布式部署的场景。
三. MCP的工作原理
MCP 协议采用了一种独特的架构设计,它将 LLM 与资源之间的通信划分为三个主要部分:客户端、服务器和资源
。
MCP Client(MCP客户端)负责发送请求给 MCP Server(MCP服务器),MCP服务器则将这些请求转发给相应的资源。这种分层的设计使得 MCP 协议能够更好地控制访问权限,确保只有经过授权的用户才能访问特定的资源。
以下是 MCP 的基本工作流程:
- 初始化连接:客户端向服务器发送连接请求,建立通信通道。
- 发送请求:客户端根据需求构建请求消息,并发送给服务器。
- 处理请求:服务器接收到请求后,解析请求内容,执行相应的操作(如查询数据库、读取文件等)。
- 返回结果:服务器将处理结果封装成响应消息,发送回客户端。
- 断开连接:任务完成后,客户端可以主动关闭连接或等待服务器超时关闭。
三. MCP的优势
MCP(模型上下文协议)具有以下优势:
- 标准化集成 :为大模型与外部工具的集成提供了统一的标准,降低了开发和维护成本,避免了因不同模型和工具提供商带来的碎片化问题。
- 提高可扩展性 :新的工具和资源可以轻松地按照 MCP 协议进行开发和接入,使得系统能够不断扩展功能,满足多样化的应用需求。
- 增强灵活性 :MCP 协议的标准化设计使得工具和资源的调用更加灵活,LLM 可以根据不同的任务需求自动选择和组合使用各种工具,提高了系统的适应性和智能化水平。
- 支持多模型协作 :允许多个不同的大模型通过 MCP 协议共同访问和使用相同的工具和资源,实现了多模型之间的协作和信息共享,为构建更复杂的 AI 应用提供了可能。
四. MCP 的主要功能
MCP具有以下的功能:
(1). 统一标准与互操作性
- 标准化通信协议 :MCP 为大模型与外部工具的交互定义了一套标准化的通信协议,使得不同系统之间能够以统一的方式进行交互,降低了集成的复杂性,提高了互操作性。
- 模块化设计 :MCP 具有标准化与模块化的特点,支持两种传输协议(STDIO 和 SSE),并允许开发者通过插件扩展功能,具备灵活性和扩展性。
(2). 资源与工具共享
- 资源暴露 :MCP Server 可以将本地文件、数据库、API 等资源作为数据实体暴露给 AI 模型,为模型提供丰富的上下文信息和操作能力,突破其训练数据的时空限制。
- 工具提供 :提供工具功能,帮助 AI 完成复杂任务,如数据检索、内容生成、实时更新等。例如,支持对 MySQL、PostgreSQL 等数据库的查询和操作,也支持对本地文件系统的读写和目录管理。
(3). 会话管理与动态通知
- 会话管理 :MCP Server 能够管理客户端与服务器的连接,确保会话的时效性和稳定性,为多轮对话和持续交互提供支持。
- 动态通知 :通过实时推送机制,将最新的资源信息及时传递给 AI 模型,以保证数据的准确性和实时性。
(4). 安全性保障
- 加密认证 :采用加密认证机制,确保数据传输的安全性,避免敏感信息泄露。
- 访问控制 :通过访问控制机制,对资源和工具的访问进行严格管理,确保只有经过授权的请求才能访问特定资源。
- 本地运行支持 :支持本地运行,避免将敏感数据上传至第三方平台,从而更好地保护用户隐私。
(5). AI 智能体扩展
- AI 助手增强 :为 AI 助手提供上下文支持和工具调用能力,能够扩展 AI 助手的功能,使其能够更智能地处理各种任务。
- 多场景应用 :可以应用于多种场景,如本地资源集成、云服务交互、AI 助手扩展等,帮助开发者构建更加智能和实用的 AI 应用。
(6). 提示词与工作流管理
- 提示词定义 :提示词在 MCP 中是一种可复用的、参数化的模板,用于引导用户和 LLM 完成特定的、预设好的工作流。服务器开发者可以预先封装好最佳的交互模式,提高任务执行的效率和准确性。
- 工作流编排 :通过提示词和工具的组合,MCP 能够实现复杂的工作流编排,使 AI 能够按照预定义的步骤自动执行任务。
(7). 采样与反向调用
- 采样功能 :采样是 MCP 中一个强大且独特的功能,颠覆了通常的请求流,允许服务器请求客户端去调用 LLM 生成内容。这种机制使得服务器开发者可以构建出需要 AI 能力的复杂工具,而无需自己维护和支付昂贵的 LLM API 密钥。
- 人机协作 :在采样过程中,客户端必须将请求呈现给用户进行审核和批准,用户可以查看甚至编辑即将发送给 LLM 的提示,并对 LLM 生成的结果进行最终确认,实现了人机协作和 “人在环路” 的安全保障。
(8). 操作边界设定
- 根目录定义 :根目录是客户端向服务器建议的操作范围或工作空间,通常是一个或多个 URI 列表。它为 AI 的操作设定了清晰的边界,确保 AI 的操作集中在特定的工作范围内,提高了操作的针对性和安全性。
五. MCP与Function Calling的区别
Function Calling
主要用于让AI大模型可以识别外部工具,然后让我们的应用程序可以和外部的API接口进行交互,从而实现更多复杂的功能,比如发送邮件、查看今天的天气,进行知识库搜索等等。
Function Calling较MCP功能单一,不具备上下文管理能力,一次只执行一个任务,一般是同步进行调用。没有特定的标准,需要厂商或者我们自己去开发实现。生态相对封闭,没有多少开源项目,定制化比较多。而MCP 功能复杂,可以支持多轮对话,一次能调用多个任务,也可以异步执行。它有统一的标准,只要是适配了 MCP协议的 MCP Server 都可以用统一的代码去调用。而且 MCP 本身的社区生态更繁荣,当前社区已经 2000+ 以上的MCP Servers 供大家使用。
Function Calling需要大模型具有工具调用的能力,能识别出来当前用户请求是需要调用哪个工具去完成任务。而且并不是所有的大模型都会支持工具调用。而MCP则更加灵活,可以借用 Function Calling 的方式去进行工具调用,也可以使用自然语言描述的提示词去告诉 LLM,提供了哪些工具供它使用,应该以何种格式返回结果这种就更依赖大模型的语言理解能力。例如你告诉大模型要求返回 JSON 格式的信息,它给你返回的并不是JSON结构,那就导致 MCP解析失败。
以下是MCP与Function Calling的一些区别:
对比维度 | MCP | Function Calling |
---|---|---|
概念 | 统一大模型与外部数据源和工具通信的开放标准,强调连接与上下文管理 | 程序调用函数执行特定任务的机制,强调单次任务执行 |
架构 | 作为中间件或适配层,客户端和服务器使用标准化协议链接,服务器不直接与大模型交互 | 直接与大模型对接,大模型需具备工具调用能力 |
执行方式 | 异步,发送请求后程序继续执行其他代码,结果出来再处理 | 同步,调用函数后程序等待函数执行完返回结果才继续执行后续代码 |
上下文管理 | 可细粒度控制模型行为,实现多轮对话,能调用多个任务且异步执行 | 缺乏上下文管理能力,难以处理复杂多步骤任务 |
工具调用 | 整合大模型函数调用标准,兼容性强,提示词封装工具调用,大模型依提示词选择调用工具 | 每个工具对应特定功能,开发者需为每个工具单独开发适配代码 |
开发与使用 | 有统一标准,适配 MCP 的 Server 可用统一代码调用,社区生态繁荣 | 实现简单,定义好函数及描述即可,但需针对每个工具定制开发 |
数据安全 | 通过标准化数据访问接口减少接触敏感数据环节,内置安全机制确保数据传输安全 | 依赖大模型提供商的安全措施,若其受攻击,存在数据泄露风险 |
六. MCP的主要应用场景
MCP(模型上下文协议)作为一种连接 AI 模型与外部资源的标准协议,具有广泛的应用场景:
(1). 办公自动化与集成
- 代码开发与管理:如 VS Code 发布智能体模式 + MCP 扩展,开发者可自由管理工具配置,可添加浏览器操作、数据库连接等工具。开发团队能更高效地处理代码相关任务,比如跨文件重构代码。
- 文档处理与协作:MCP 可连接 Google Drive 等文件存储服务,AI 智能体能够读取、编辑和管理文档,帮助用户快速查找相关信息、生成文档内容或协同编辑文档,提高办公效率。
- 项目管理与任务调度:通过集成项目管理工具,AI 智能体可以协助用户创建任务、分配资源、跟踪进度等,实现项目管理的自动化和智能化。
(2). 生活助手与服务
- 出行规划与导航:如将高德地图的 MCP Server 集成到实时对话式 AI 智能体中,智能体可以精准理解用户需求,提供实时的地图查询、路线规划、交通路况等服务,帮助用户更好地安排出行。
- 天气与生活信息服务:MCP Server 可以获取实时天气信息、当前日期时间等,AI 智能体能够根据用户查询提供准确的生活信息,方便日常出行和生活安排。
- 智能家居控制:MCP 与物联网设备集成,AI 助手可直接控制灯光、空调等设备,构建虚实融合的智能空间,让用户通过语音或文字指令便捷地操控家居设备。
(3). 商业服务与运营
- 电商与购物助手:AI 智能体可通过 MCP 连接电商平台的 API,帮助用户搜索商品、比价、下单购买等,提供个性化的购物建议和推荐,提升电商购物体验。
- 客户关系管理:集成 CRM 系统后,AI 智能体可以协助企业管理人员查询客户信息、跟进销售线索、安排客户拜访等,优化客户关系管理流程。
- 市场营销与推广:MCP 可接入社交媒体平台、广告投放系统等,AI 智能体能够帮助企业自动发布营销内容、监测营销效果、调整广告策略,提高营销效率和效果。
(4). 内容创作与分发
- 文案创作与编辑:MCP 连接语言模型和写作工具,AI 智能体可生成文章、广告文案、社交媒体内容等,并根据用户反馈进行优化和调整,提升内容创作质量。
- 多媒体制作与处理:集成图像、音频、视频编辑工具,AI 智能体可以协助创作者进行素材选取、剪辑、特效添加等操作,加速多媒体内容生产流程。
- 内容分发与推荐:MCP 与内容分发平台对接,AI 智能体能够根据用户兴趣和行为数据,精准推荐个性化内容,提高内容的传播效果和影响力。
(5). 智能辅导与教育
- 学习资源获取与整理:MCP 连接学术数据库、在线课程平台等,AI 智能体可以帮助学生快速查找学习资料、整理知识点、解答疑问,提供个性化的学习支持。
- 语言学习与交流:集成语音识别、翻译等工具,AI 智能体能够为语言学习者提供实时的语音对话练习、翻译服务、语法纠错等,辅助语言学习过程。
- 技能培训与指导:MCP 接入专业技能培训平台或工具,AI 智能体可以为学员提供技能操作演示、练习指导、考核评估等服务,助力技能提升。
(6). 医疗辅助与健康咨询
- 医疗信息查询与分析:MCP 连接医学数据库、电子病历系统等,AI 智能体可以协助医生快速获取患者病历信息、查询医学文献、分析检查检验结果,为临床诊断提供参考。
- 健康咨询与建议:集成健康管理工具,AI 智能体能够根据用户的身体状况和健康数据,提供健康咨询、饮食建议、运动指导等服务,促进健康管理。
- 医学研究与协作:MCP 促进不同医疗机构和科研团队之间的数据共享与协作,AI 智能体可以协助研究人员进行数据分析、文献综述、研究方案设计等,推动医学研究进展。
(7). 金融分析与决策支持
- 财经数据获取与分析:MCP 接入金融数据平台,AI 智能体可以实时获取股票行情、外汇汇率、宏观经济数据等,进行数据分析和趋势预测,为投资者提供决策参考。
- 风险评估与管理:集成风险管理工具,AI 智能体能够根据市场动态和用户投资组合,评估风险水平,提出风险控制建议,帮助用户优化投资策略。
- 金融服务与咨询:连接银行、证券等金融机构的系统,AI 智能体可以为用户提供更便捷的金融服务,如账户查询、转账汇款、理财咨询等。
(8). 数字孪生
- 工业自动化与监控:MCP 与工业控制系统集成,AI 智能体可以监控生产设备的运行状态、进行故障预警与诊断、优化生产流程,提高工业生产效率和质量。
- 智能交通管理:连接交通管理部门的系统,AI 智能体能够实时监测交通流量、优化交通信号控制、提供交通疏导方案,缓解城市交通拥堵问题。
- 环境监测与保护:MCP 接入环境监测设备和数据平台,AI 智能体可以收集环境数据、分析污染源、预测环境变化趋势,为环境保护提供决策支持。