所有文章 > AI驱动 > MCP (模型上下文协议)架构设计深度剖析
MCP (模型上下文协议)架构设计深度剖析

MCP (模型上下文协议)架构设计深度剖析

关键词: MCP 协议 架构设计

最近,AI Agent 和外部工具之间的互动变得越来越流行。从 OpenAI 最先推出的 Function Calling 功能,到各种插件和框架,大家都在努力让 AI 模型能更有效地调用外部的功能。不过,目前这些集成方式还是比较分散,开发者需要为每个服务手动设置接口、处理认证和逻辑,而且不同平台之间还互不兼容,确实挺麻烦的。

image

就在这种情况下,Anthropic 在 2024 年底推出了一个叫做模型上下文协议(Model Context Protocol,简称 MCP)的新东西。这个协议的野心不小,它想做的事情就像编程语言里的 LSP(Language Server Protocol)一样,为 AI 和工具之间的互动设定一个标准,让 AI Agent 能动态地发现、选择和组织工具,甚至还支持人在操作过程中插手。

image

自从 MCP 推出以来,它的发展速度非常快,社区里已经出现了好几千个 MCP 服务器,能连接到 GitHub、Slack 甚至 Blender 这样的 3D 设计工具。像 Cursor、Claude Desktop 这样的应用也开始支持 MCP 了,只要装上新的服务器,就能扩展它们的能力。

—1—MCP 架构设计剖析

1、MCP 架构设计剖析

MCP 架构设计分为核心组件、传输层和通信、MCP 服务器生命周期等构成,下面详细剖析之。

1.1 核心组件

MCP 架构由三个核心组件组成:MCP 主机(MCP Host)、MCP 客户端(MCP Client)和 MCP 服务器(MCP Server)。这些组件协同工作,以促进 AI 应用、外部工具和数据源之间的无缝通信,确保操作的安全性和正确管理。

如图 2 所示,在典型工作流程中,用户向 MCP 客户端发送提示词,客户端分析意图,通过 MCP 服务器选择适当的工具,并调用外部 API 来检索和处理所需的信息,然后通知用户结果。

image

1.1.1 MCP 主机

MCP 主机是一个 AI 应用,它在运行 MCP 客户端的同时,为执行基于 AI 的任务提供环境。它集成交互工具和数据,以实现与外部服务的顺畅通信。

比如:

  • Claude Desktop 用于 AI 辅助内容创建。
  • Cursor 是一个 AI 驱动的 IDE,用于代码补全和软件开发,以及执行复杂任务的 AI Agent。

MCP 主机承载 MCP 客户端,并确保与外部 MCP 服务器通信。

1.1.2 MCP 客户端

MCP 客户端在主机环境中充当中介,管理 MCP 主机与一个或多个 MCP 服务器之间的通信。

  • 它向 MCP 服务器发起请求,查询可用功能,并获取描述服务器能力的响应。
  • 这确保了主机与外部工具之间的无缝互动。

此外,MCP 客户端还:

  • 处理来自 MCP 服务器的通知,提供有关任务进度和系统状态的实时更新。
  • 执行采样,收集有关工具使用和性能的数据,使优化和明智的决策成为可能。

MCP 客户端通过传输层与 MCP 服务器通信,促进主机与外部资源之间的安全、可靠的数据交换和顺畅互动。

1.1.3 MCP 服务器

MCP 服务器使 MCP 主机和客户端能够访问外部系统并执行操作,提供三种核心能力:工具、资源和提示词。

  • 工具:启用外部操作。

    • 工具允许 MCP 服务器调用外部服务和 API,代表 AI 大模型执行操作。
    • 当客户端请求操作时,MCP 服务器识别适当的工具,与服务互动,并返回结果。
    • 比如:如果 AI 大模型需要实时天气数据或情感分析,MCP 服务器连接到相关 API,检索数据,并将其传递给主机。
  • 资源:向 AI 大模型公开数据。

    • 资源提供 MCP 服务器可以向 AI 大模型公开的结构化和非结构化数据集的访问。
    • 这些数据集可能来自本地存储、数据库或云平台。
  • 提示词:用于工作流程优化的可重用模板。

    • 提示词是 MCP 服务器生成和维护的预定义模板和工作流程,以优化 AI 响应并简化重复任务。

1.2 传输层和通信

传输层确保安全、双向通信,允许主机环境与外部系统之间的实时互动和有效数据交换。

  • 传输层管理客户端的初始请求传输、服务器响应的传递以及保持客户端了解正在进行的更新的通知交换。
  • MCP 客户端和 MCP 服务器之间的通信遵循结构化过程,从客户端查询服务器功能开始。

这种结构化通信确保了高性能互动,并使 AI 大模型与外部资源保持同步,提高 AI 应用的效果。

1.3 MCP 服务器生命周期

如图 3 所示,MCP 服务器的生命周期包括三个关键阶段:创建、运行和更新。

每个阶段定义了确保 MCP 服务器安全和高效运行的关键活动,使 AI 大模型和外部工具、资源和提示之间能够无缝互动。

image

1.3.1 MCP 服务器组件

MCP 服务器负责管理外部工具、数据源和工作流程,为 AI 大模型提供执行任务所需的必要资源,确保高效和安全。

它包括几个关键组件:

  • 元数据:包括有关服务器的基本信息,比如:其名称、版本和描述,允许客户端识别和与适当的服务器互动。
  • 配置:涉及源代码、配置文件和清单,定义服务器的操作参数、环境设置和安全策略。
  • 工具列表:存储可用工具的目录,详细说明其功能、输入输出格式和访问权限。
  • 资源列表:管理对外部数据源的访问,包括 Web API、数据库和本地文件。
  • 提示词和模板:包括预配置的任务模板和工作流程。

1.3.2 创建阶段

创建阶段是 MCP 服务器生命周期的初始阶段,在此阶段,服务器被注册、配置并准备运行。

此阶段涉及三个关键步骤:

  • 服务器注册:为 MCP 服务器分配唯一名称和身份,允许客户端发现并连接到适当的服务器实例。
  • 安装程序部署:确保正确的配置文件、源代码和清单到位。
  • 代码完整性验证:验证服务器代码库的完整性,以防止未经授权的修改或篡改。

1.3.3 运行阶段

运行阶段是 MCP 服务器积极处理请求、执行工具调用并促进 AI 应用与外部资源之间无缝互动的阶段。

  • 工具执行:允许 MCP 服务器根据 AI 应用的请求调用适当的工具,确保所选工具执行其预期操作。
  • 斜杠命令处理:使服务器能够解释和执行多个命令。
  • 沙箱机制执行:确保执行环境隔离和安全。

1.3.4 更新阶段

更新阶段确保 MCP 服务器保持安全、最新,并能够适应不断变化的需求。

此阶段包括三个关键任务:

  • 授权管理:验证更新后访问权限保持有效。
  • 版本控制:维护不同服务器版本之间的一致性。
  • 旧版本管理:停用或删除过时版本。

了解 MCP 服务器的生命周期对于识别潜在漏洞和设计有效的安全措施至关重要。

参考来源:https://arxiv.org/pdf/2503.23278

原文转载自:https://mp.weixin.qq.com/s/lyO_sFrunQFt1zecSN06Lw

#你可能也喜欢这些API文章!

我们有何不同?

API服务商零注册

多API并行试用

数据驱动选型,提升决策效率

查看全部API→
🔥

热门场景实测,选对API

#AI文本生成大模型API

对比大模型API的内容创意新颖性、情感共鸣力、商业转化潜力

25个渠道
一键对比试用API 限时免费

#AI深度推理大模型API

对比大模型API的逻辑推理准确性、分析深度、可视化建议合理性

10个渠道
一键对比试用API 限时免费