
从零开始的机器学习实践指南
Model Context Protocol(MCP)模型上下文协议(如下图所示)是 Anthropic 发布的一种标准化协议,使得 Agent 智能体应用可以更快捷地与下游异构的数据或者工具进行交互。
最近,两大关键事件标志着 MCP 已从事实标准迈向行业标准:一方面,OpenAI 正式宣布跟进 Anthropic 的 MCP 协议,另一方面,Anthropic 发布了新版本 MCP 协议,在 Remote MCP Server 的场景进行了显著改进。
但是,MCP Server 的实施存在着较多的挑战,比如:本地环境依赖、一致性问题、安全风险、维护成本、认证授权、服务可靠性和可观测性等方面,如果能够提供了完整的 MCP Server 云端托管解决方案,将大幅降低开发者构建 MCP Server 的时间和人力成本。
下文对架构设计和开源实现详细剖析之。
随着 MCP 生态的不断发展,从 Local MCP Server 向 Remote MCP Server 的架构设计演进逐渐成为一种趋势。为了更好地理解这一转变,我们首先需要明确这两种 MCP Server 架构设计的概念及其区别。
Local MCP Server 架构是部署在用户本地设备上的 MCP 服务器。在这种架构模式中,MCP 客户端(例如 Claude Desktop 或 Cursor)通过本地进程通信(stdin/stdout)与 MCP 服务器进行交互,而 MCP 服务器则负责连接到互联网上的各种 API 和服务。这种架构设计简单直观,非常适合个人开发者使用,但同时也存在一些局限性。
Remote MCP Server 架构是部署在云端的 MCP 服务器,用户可以通过互联网进行访问。在这种模式下,MCP 客户端可以是各种网页应用或移动应用,它们通过 HTTP 协议与远程 MCP 服务器进行通信。Remote MCP Server架构 通常集成了认证授权、状态管理、数据库访问等企业级功能,能够为多个用户提供服务。
这种架构设计的转变,解决了 Local MCP Server 在企业真实落地环境中的诸多局限性。
虽然 Local MCP Server 架构设计简单易用,但在企业级应用落地中存在诸多挑战:
1、本地环境依赖:需要在用户本地安装 Python 或 Docker 等执行环境来运行 MCP Server,对非技术用户不够友好。
2、安全风险:企业无法将敏感数据库凭证、API 密钥等关键访问令牌配置到每个员工的本地环境,这不仅违反最小权限原则,还增加了凭证泄露的风险。
3、一致性问题:当多个用户需要访问相同的企业资源时,难以保证配置和权限的一致性,容易导致数据不一致或权限混乱。
4、维护成本:为每个用户设备部署和维护 MCP Server 需要大量 IT 资源,版本更新、安全补丁和配置变更都需要在每台设备上单独执行。
Remote MCP Server 架构设计通过集中化部署和管理,有效解决了 Local MCP Server 架构设计在企业级应用中面临的诸多问题:
1、拓宽使用场景:非技术用户无需复杂的本地配置,通过网页或移动应用等,随时随地都能通过互联网便捷地使用 MCP 的强大功能。
2、集中化安全管控:企业能够在远程服务器上实施严格的访问控制、数据加密和审计机制,从而确保敏感凭证的安全,有效降低数据泄露风险。
3、统一权限管理:借助集中化的身份验证和授权系统,企业可以精确地控制每个用户对不同资源的访问权限,确保权限的一致性和数据的安全性。
4、简化部署与维护:只需集中维护中央服务器,即可实现版本更新、安全补丁和配置变更的统一管理,大大降低了运维成本和复杂性。
阿里 AI 原生网关 Higress 开源了 Remote MCP Server 架构设计的托管实现方案,并已更新到 Anthropic 官方的 MCP Server 项目文档中。
Github 地址:https://github.com/alibaba/higress
尽管 Remote MCP Server 架构设计拥有诸多显著优势,但在实际部署过程中也面临着新的挑战,尤其是在认证授权、服务可靠性和可观测性这三个关键领域。而 API 网关在这些方面有着丰富的经验和成熟的技术。Higress 作为专为 AI 设计的原生 API 网关,不仅能够应对这些挑战,还提供了一套完整的开源 MCP Server 架构设计托管解决方案,下面对架构设计详细剖析。
Higress 的 Remote MCP Server 托管实现方案采用了分层架构设计,为 AI Agent 智能体提供了完整的服务访问能力,架构设计如下图所示:
在架构设计的最上层,各种 AI Agent(比如:Claude、Cursor、Cline 等)通过标准的 MCP 协议与 Higress 进行交互。Higress 内部集成了完善的安全与管控层,涵盖了 MCP 会话保持、OAuth2 认证、审计日志、速率限制以及 MCP 路由等核心功能。
在服务层面,Higress 提供了三种灵活的 MCP Server 接入方式:
1、内置 MCP Server:通过 Wasm 插件在 Higress 内部实现,适用于对接现有的 SaaS API 生态,为这些服务提供 MCP 能力。
2、直接转发:将请求直接转发给外部已经支持 MCP 协议的服务,适用于对接已有的外部 MCP 能力。
3、动态发现与配置:通过服务注册中心(比如:Nacos)动态发现外部 MCP Server,并利用 Nacos 配置中心的能力动态更新 MCP Server 的工具定义。这种方式特别适合企业将传统业务 API 升级为 MCP 能力。
这种灵活的架构设计使企业能够根据自身需求选择最适合的部署方式,既可以充分利用 Higress 提供的一站式托管服务,也可以保持现有 MCP Server 的独立性。
Higress(如下图所示) 基于 Envoy 构建,继承了传统 API 网关在认证、授权、限流和可观测性方面的强大能力,并针对 AI 场景进行了优化。这些能力与 MCP 服务的需求高度契合,具体体现在以下4点:
1、统一认证授权:Higress 提供 OAuth2 插件,能够满足新版 MCP 协议对认证鉴权的要求。开发者无需编写复杂的认证代码,只需简单配置,即可实现安全的用户认证和权限控制。
2、精细化流量控制:借助 Higress 的限流插件,可为不同用户、不同工具设置不同的调用配额,有效防止资源滥用和服务过载。
3、全链路可观测性:Higress 集成了 Prometheus 和 OTel 等开源观测方案,提供完整的指标监控和分布式追踪能力。运维团队能够实时监控 MCP 服务的健康状况和性能表现。
4、审计日志:记录所有工具调用行为,满足合规要求,同时为安全分析提供数据支持。
Higress 的一大技术亮点是支持 WebAssembly (Wasm) 插件,这为 MCP Server 提供了强大的扩展能力。通过 Wasm 插件机制,开发者可以实现以下功能:
1、快速添加新 MCP Server:使用多种语言(目前优先提供了 Go 语言的 MCP Server SDK)开发 MCP Server,将其编译为 Wasm 文件后,可动态加载到 Higress 中,无需重启服务。
2、安全隔离:每个 Wasm 插件都在独立的沙箱环境中运行,即使插件出现崩溃,也不会影响网关的稳定性。
3、动态更新:借助 Envoy 对长连接的良好支持以及 Wasm 插件的动态更新机制,MCP Server 逻辑可以在不中断流量的情况下实时更新。
目前 MCP 协议有两个版本:20241105 版本和 20250326 版本。从协议的发展来看,其标准化和优化的速度难以跟上 MCP Server 生态的迅猛发展。这为早期采用 MCP 的用户埋下了隐患,当构建了大量 MCP Server 后,面对未来协议版本升级,可能需要进行大量的升级改造工作。
Higress 作为 AI 原生网关层,可以有效屏蔽多个版本的协议细节,甚至实现 MCP 到 REST/Dubbo 等其他协议的转换。Higress 在网关层完成所有版本的 MCP 协议卸载,类似于传统 API 网关中统一卸载 HTTP1/HTTP2/HTTP3 客户端协议的方式。
目前,Higress 已经可以在一个接入点上同时支持 MCP 的 20241105 版本和 20250326 版本。在协议传输层,Higress 支持目前 AI 工具广泛使用的 POST+SSE 模式,以及最新的 Streamable HTTP 模式。
我们预计,随着应用生态对实时性要求的提高,WebSocket 这种全双工的双向实时通信协议将越来越受欢迎,并得到更广泛的应用。Higress 原生支持 WebSocket,能够实现全双工的双向实时通信。此外,Higress 支持 WebSocket 配置修改后的连接保持以及优雅断开,未来在 MCP 会话保持方面,Higress 的优势将更加明显。
Higress 的 MCP Server Hosting 方案在部署与运维方面展现出诸多显著优势:
1、弹性伸缩方面,其依托 Kubernetes 的自动伸缩机制,能够依据流量情况自动调节实例数量,既保障了服务的高可用性,又提升了资源利用效率。
2、在灰度发布方面,该方案支持 MCP Server 的灰度发布以及 A/B 测试,有效降低了更新过程中的风险。
3、部署环节,提供 Helm Chart,极大地简化了部署流程,降低了运维的难度。
Higress 托管的 MCP Server 可轻松应对每秒数十万次的工具调用请求,且能保持毫秒级的响应时间,充分满足企业级应用的性能要求。
文章转载自: MCP 架构设计演进:从 Local MCP Server 到 Remote MCP Server 开源架构设计实现