⚠️ 在开始阅读之前,如果你对 实时 Agent / 数字人 / 多模态系统 / LiveKit 架构 感兴趣,
欢迎先到 GitHub 给项目点一个 ⭐ Star,这是对开源作者最大的支持。

🚀 AlphaAvatar 项目地址(强烈建议先收藏,该项目正在持续更新维护):
👉 https://github.com/AlphaAvatar/AlphaAvatar
🚀 AIPapers 项目地址(具有更全的有关LLM/Agent/Speech/Visual/Omni论文分类):
👉 https://github.com/AlphaAvatar/AIPaperNotes

摘要

模型上下文协议 (MCP) 是一个标准化接口,旨在实现人工智能模型与外部工具和资源之间的无缝交互,打破数据孤岛,促进不同系统之间的互操作性。本文全面概述了 MCP,重点介绍其核心组件、工作流程以及 MCP 服务器的生命周期,该生命周期包含三个关键阶段:创建、运行和更新。我们分析了每个阶段相关的安全和隐私风险,并提出了缓解潜在威胁的策略。本文还探讨了当前的 MCP 发展态势,包括行业领导者对其的采用情况和各种用例,以及支持其集成的工具和平台。我们探索了 MCP 的未来发展方向,重点介绍了将影响其在更广泛的人工智能生态系统中应用和发展的挑战和机遇。最后,我们为 MCP 利益相关者提出了建议,以确保其在人工智能格局不断发展的同时实现安全和可持续发展。

1.介绍

在这里插入图片描述
  近年来,能够与各种工具和数据源交互的自主人工智能 Agent 的愿景获得了显著发展。随着 OpenAI 于 2023 年引入函数调用,加速了这一进程,该函数调用允许语言模型以结构化方式调用外部 API。这一进步扩展了 LLM 的功能,使其能够检索实时数据、执行计算并与外部系统交互。随着函数调用的普及,一个围绕它的生态系统逐渐形成。OpenAI 推出了 ChatGPT 插件,允许开发者为 ChatGPT 构建可调用的工具。Coze 和 Yuanqi 等 LLM 应用商店也推出了各自的插件商店,支持专为其平台设计的工具。LangChain 和 LlamaIndex 等框架提供了标准化的工具接口,使 LLM 与外部服务的集成更加容易。其他 AI 提供商,包括 Anthropic、Google 和 Meta,也引入了类似的机制,进一步推动了 LLM 的普及。尽管取得了这些进展,但集成工具仍然较为分散。开发者必须手动定义接口、管理身份验证并处理每个服务的执行逻辑。函数调用机制因平台而异,需要进行冗余实现。此外,当前的方法依赖于预定义的工作流程,限制了人工智能 Agent 在动态发现和协调工具方面的灵活性。
  2024年末,Anthropic 推出了模型上下文协议 (MCP),这是一种标准化 AI 工具交互的通用协议。受语言服务器协议 (LSP) 的启发,MCP 为 AI 应用程序提供了一个灵活的框架,使其能够与外部工具进行动态通信。MCP 不再依赖于预定义的工具映射,而是允许 AI Agent 根据任务上下文自主发现、选择和编排工具。它还支持人机交互机制,使用户能够根据需要注入数据或批准操作。通过统一接口,MCP 简化了 AI 应用程序的开发,并提高了其处理复杂工作流程的灵活性。自发布以来,MCP 已从一个小众协议迅速发展成为 AI 原生应用程序开发的关键基础。一个蓬勃发展的生态系统已经出现,数千个由社区驱动的 MCP 服务器支持模型访问 GitHub、Slack 等系统,甚至 Blender 等 3D 设计工具。 Cursor 和 Claude Desktop 等工具展示了 MCP 客户端如何通过安装新服务器、将开发人员工具、生产力平台和创意环境转变为多模式 AI Agent来扩展其功能。
  尽管 MCP 的普及速度很快,但其生态系统仍处于早期阶段,安全性、工具可发现性和远程部署等关键领域缺乏全面的解决方案。这些问题为进一步的研究和开发提供了尚未开发的机遇。尽管 MCP 的潜力在业界得到广泛认可,但学术界尚未对其进行深入分析。正是由于这一研究空白,本文首次对 MCP 生态系统进行了分析,考察了其架构和工作流程,定义了 MCP 服务器的生命周期,并识别了每个阶段的潜在安全风险,例如安装程序欺骗和工具名称冲突。通过这项研究,我们对 MCP 的现状进行了深入探讨,并提出了前瞻性的愿景,强调了其关键影响,概述了未来的研究方向,并解决了确保其可持续发展必须克服的挑战。
  我们的贡献如下:

  1. 我们对 MCP 生态系统进行了首次分析,详细介绍了其架构、组件和工作流程。
  2. 我们识别 MCP 服务器的关键组件,并定义其生命周期,涵盖创建、运行和更新阶段。我们还重点介绍了每个阶段的潜在安全风险,为保障 AI 与工具交互的安全提供见解。
  3. 我们研究了当前的 MCP 生态系统格局,分析了各个行业和平台的采用情况、多样性和用例。
  4. 我们讨论了 MCP 快速采用的影响,确定了利益相关者面临的主要挑战,并概述了安全性、可扩展性和治理方面的未来研究方向,以确保其可持续增长。

本文其余部分结构如下:§2 比较了有无 MCP 的工具调用,强调了本研究的动机。§3 概述了 MCP 的架构,详细说明了 MCP 主机、客户端和服务器的角色,以及 MCP 服务器的生命周期。§4 考察了当前的 MCP 格局,重点关注关键行业参与者和采用趋势。§5 分析了 MCP 服务器生命周期中的安全和隐私风险,并提出了缓解策略。§6 探讨了在动态 AI 环境中增强 MCP 可扩展性和安全性的影响、未来挑战和建议。§7 回顾了 LLM 应用程序中工具集成和安全性方面的先前工作。最后,§8 对全文进行了总结。

2.BACKGROUND AND MOTIVATION

2.1 AI Tooling

在 MCP 推出之前,AI 应用依赖于各种方法与外部工具交互,例如手动 API 连接、基于插件的接口以及 Agent 框架。如图 1 所示,这些方法需要将每个外部服务与特定的 API 集成,从而增加了复杂性并限制了可扩展性。MCP 通过提供标准化协议来解决这些挑战,该协议支持与多种工具进行无缝且灵活的交互。

2.1.1 Manual API Wiring

在传统的实现中,开发人员必须为 AI 应用程序与之交互的每个工具或服务手动建立 API 连接。此过程需要为每次集成进行自定义身份验证、数据转换和错误处理。随着 API 数量的增加,维护负担变得沉重,常常导致系统紧密耦合且脆弱,难以扩展或修改。MCP 通过提供统一的接口消除了这种复杂性,使 AI 模型能够动态地与多个工具连接,而无需自定义 API 连接。

2.1.2 Standardized Plugin Interfaces

为了降低手动连接的复杂性,基于插件的接口(例如 2023 年 11 月推出的 OpenAI ChatGPT 插件)允许 AI 模型通过 OpenAPI 等标准化 API 模式与外部工具连接。例如,在 OpenAI 插件生态系统中,像 Zapier 这样的插件允许模型执行预定义的操作,例如发送电子邮件或更新 CRM 记录。然而,这些交互通常是单向的,无法维护状态或协调任务中的多个步骤。此外,字节跳动 Coze 和腾讯 Yuanqi 等新的 LLM 应用商店也应运而生,为 Web 服务提供了插件商店。虽然这些平台扩展了可用的工具选项,但它们创建了孤立的生态系统,其中的插件是平台特定的,限制了跨平台兼容性,并需要重复的维护工作。MCP 以其开源和平台无关的特性脱颖而出,使 AI 应用程序能够与外部工具进行丰富的双向交互,从而简化复杂的工作流程。

2.1.3 AI Agent Tool Integration

像 LangChain 这样的 AI Agent框架以及类似的工具编排框架的出现,为模型提供了一种通过预定义接口调用外部工具的结构化方法,从而提高了自动化程度和适应性。然而,这些工具的集成和维护仍然主要依靠手动操作,需要自定义实现,并且随着工具数量的增加,复杂性也随之增加。MCP 通过提供标准化协议简化了这一流程,使 AI Agent能够通过统一的接口无缝地调用、交互和链接多个工具。这减少了手动配置并增强了任务灵活性,使代理无需进行大量的自定义集成即可执行复杂的操作。

2.1.4 Retrieval-Augmented Generation (RAG) and Vector Database

上下文信息检索方法(例如 RAG)利用基于向量的搜索从数据库或知识库中检索相关知识,使模型能够用最新信息补充响应。虽然这种方法解决了知识断层问题并提高了模型准确性,但它仅限于被动检索信息。它本质上不允许模型执行主动操作,例如修改数据或触发工作流。例如,基于 RAG 的系统可以从产品文档数据库中检索相关部分以协助客户支持 AI。但是,如果 AI 需要更新客户记录或将问题上报给人工支持,它除了提供文本响应之外无法采取其他行动。MCP 超越了被动信息检索,使 AI 模型能够主动与外部数据源和工具交互,从而在统一的工作流中促进检索和操作。

2.2 Motivation

MCP 因其能够标准化 AI 模型与外部工具交互、获取数据和执行操作的方式,在 AI 社区迅速获得关注。通过突破手动 API 连接、插件接口和 Agent 框架的局限性,MCP 有望重新定义 AI 与工具之间的交互,并实现更加自主和智能的 Agent 工作流。尽管 MCP 的应用日益广泛且潜力巨大,但它仍处于早期阶段,其生态系统仍在不断发展完善。许多关键方面,例如安全性和工具可发现性,尚未得到充分解决,为未来的研究和改进留下了充足的空间。此外,尽管 MCP 在业界已迅速普及,但在学术界仍未得到充分探索。
  鉴于此,本文首次分析了当前的MCP格局,审视了其新兴的生态系统,并识别了潜在的安全风险。此外,我们概述了MCP的未来发展愿景,并强调了为支持其长期成功必须应对的关键挑战。

3.MCP ARCHITECTURE

3.1 Core Components

在这里插入图片描述
  MCP 架构由三个核心组件组成:MCP 主机、MCP 客户端和 MCP 服务器。这些组件相互协作,促进 AI 应用程序、外部工具和数据源之间的无缝通信,确保操作安全且管理得当。如图 2 所示,在典型的工作流程中,用户向 MCP 客户端发送提示,客户端分析意图,通过 MCP 服务器选择合适的工具,并调用外部 API 来检索和处理所需信息,然后将结果通知给用户。

3.1.1 MCP Host

MCP 主机是一款 AI 应用程序,在运行 MCP 客户端的同时,提供执行 AI 任务的环境。它集成了交互式工具和数据,以实现与外部服务的顺畅通信。例如,用于 AI 辅助内容创作的 Claude Desktop、用于代码补全和软件开发的 AI 驱动 IDE Cursor,以及作为自主系统执行复杂任务的 AI Agent。MCP 主机托管 MCP 客户端并确保与外部 MCP 服务器的通信。

3.1.2 MCP Client

MCP 客户端充当主机环境中的中介,管理 MCP 主机与一个或多个 MCP 服务器之间的通信。它向 MCP 服务器发起请求,查询可用功能,并检索描述服务器功能的响应。这确保了主机与外部工具之间的无缝交互。除了管理请求和响应之外,MCP 客户端还处理来自 MCP 服务器的通知,提供有关任务进度和系统状态的实时更新。它还执行采样以收集工具使用情况和性能数据,从而实现优化和明智的决策。MCP 客户端通过传输层与 MCP 服务器通信,从而促进主机与外部资源之间安全可靠的数据交换和顺畅的交互。

3.1.3 MCP Server

MCP 服务器支持 MCP 主机和客户端访问外部系统并执行操作,提供工具、资源、提示三大核心能力

  • Tools: Enabling external operations。工具允许 MCP 服务器调用外部服务和 API,代表 AI 模型执行操作。当客户端请求操作时,MCP 服务器会识别相应的工具,与服务交互并返回结果。例如,如果 AI 模型需要实时天气数据或情绪分析,MCP 服务器会连接到相关的 API,检索数据并将其传递给主机。与需要多个步骤且调用与执行分离的传统函数调用不同,MCP 服务器的工具简化了此过程,允许模型根据上下文自主选择和调用相应的工具。配置完成后,这些工具将遵循标准化的供应和消费模型,使其模块化、可重用且易于被其他应用程序访问,从而提高系统效率和灵活性。
  • Resources: Exposing data to AI models。资源提供对结构化和非结构化数据集的访问,MCP 服务器可将这些数据集提供给 AI 模型。这些数据集可能来自本地存储、数据库或云平台。当 AI 模型请求特定数据时,MCP 服务器会检索并处理相关信息,从而使模型能够做出数据驱动的决策。例如,推荐系统可以访问客户交互日志,文档摘要任务可以查询文本存储库。
  • Prompts: Reusable templates for workflow optimization。提示是 MCP 服务器生成并维护的预定义模板和工作流,用于优化 AI 响应并简化重复性任务。它们确保响应的一致性并提高任务执行效率。例如,客户支持聊天机器人可以使用提示模板来提供统一且准确的响应,而标注任务可以依赖预定义的提示来保持数据标注的一致性。

3.2 Transport Layer and Communication

传输层确保安全、双向的通信,从而实现主机环境与外部系统之间的实时交互和高效的数据交换。传输层管理来自客户端的初始请求的传输、服务器响应(详细说明可用功能)的传递,以及通知的交换,以便客户端随时了解持续的更新。MCP 客户端和 MCP 服务器之间的通信遵循结构化流程,首先是客户端发出初始请求以查询服务器的功能。收到请求后,服务器会返回初始响应,列出客户端可以利用的可用工具、资源和提示。连接建立后,系统会持续交换通知,以确保服务器状态的变化或更新能够实时反馈给客户端。这种结构化通信确保了高性能交互,并使 AI 模型与外部资源保持同步,从而提升 AI 应用的效率。

3.3 MCP Server Lifecycle

在这里插入图片描述
  MCP 服务器生命周期如图 3 所示,包含创建、运行和更新三个关键阶段。每个阶段都定义了关键活动,以确保 MCP 服务器安全高效地运行,并实现 AI 模型与外部工具、资源和提示之间的无缝交互。

3.3.1 MCP Server Components

MCP 服务器负责管理外部工具、数据源和工作流,为 AI 模型提供高效安全地执行任务所需的资源。它包含几个关键组件,以确保其平稳有效地运行。元数据 (Metadata)包含服务器的基本信息,例如服务器名称、版本和描述,允许客户端识别并与相应的服务器交互。配置 (Configuration)包含源代码、配置文件和清单,用于定义服务器的运行参数、环境设置和安全策略。工具列表 (Tool list) 存储可用工具的目录,详细说明其功能、输入输出格式和访问权限,确保工具的正确管理和安全性。资源列表 (Resources list) 管理对外部数据源(包括 Web API、数据库和本地文件)的访问,并指定允许的端点及其相关权限。最后,提示和模板 (Prompts and Templates) 包含预配置的任务模板和工作流,可提高 AI 模型执行复杂操作的效率。这些组件共同使 MCP 服务器能够为 AI 驱动的应用程序提供无缝的工具集成、数据检索和任务编排。

3.3.2 Creation Phase

创建阶段是 MCP 服务器生命周期的初始阶段,在此阶段,服务器将进行注册、配置并做好运行准备。此阶段包含三个关键步骤。服务器注册 (Server registration) 会为 MCP 服务器分配唯一的名称和身份,以便客户端发现并连接到相应的服务器实例。安装程序部署 (Installer deployment) 包括安装 MCP 服务器及其相关组件,确保配置文件、源代码和清单正确无误。代码完整性验证 (Code integrity verification) 会验证服务器代码库的完整性,以防止在服务器投入运行之前遭到未经授权的修改或篡改。成功完成创建阶段可确保 MCP 服务器能够处理请求并与外部工具和数据源安全地交互。

3.3.3 Operation Phase

在运行阶段,MCP 服务器主动处理请求,执行工具调用,并促进 AI 应用程序与外部资源之间的无缝交互。工具执行 (Tool execution) 允许 MCP 服务器根据 AI 应用程序的请求调用适当的工具,确保所选工具执行其预期操作。斜线命令处理 (Slash command handling) 使服务器能够解释和执行多个命令,包括通过用户界面或 AI Agent 发出的命令,同时管理潜在的命令重叠以防止冲突。沙盒机制 (Sandbox mechanism) 的实施确保执行环境的隔离和安全,防止未经授权的访问并降低潜在风险。在整个运行阶段,MCP 服务器维护稳定可控的环境,从而实现可靠且安全的任务执行。

3.3.4 Update Phase

更新阶段确保 MCP 服务器保持安全、最新状态,并能够适应不断变化的需求。此阶段包含三个关键任务。授权管理 (Authorization management) 验证更新后的访问权限是否仍然有效,防止更新后服务器资源被未经授权使用。版本控制 (Version control) 维护不同服务器版本之间的一致性,确保新的更新不会引入漏洞或冲突。旧版本管理 (Old version management) 停用或删除过时的版本,以防止攻击者利用先前版本中的已知漏洞。
  了解 MCP 服务器的生命周期对于识别潜在漏洞和设计有效的安全措施至关重要。每个阶段都会带来不同的挑战,必须谨慎应对,才能在动态 AI 环境中维护 MCP 服务器的安全性、效率和适应性。

4.CURRENT LANDSCAPE

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐