企业级AI应用:五种MCP Server架构模式及Nacos集成方案

探讨了企业级MCP Server的五种架构,并提出利用Nacos进行服务治理和智能路由的解决方案,助力AI应用落地。

原文标题:MCP Server的五种主流架构与Nacos的选择

原文作者:阿里云开发者

冷月清谈:

本文深入剖析了Model Context Protocol (MCP) Server的五种主流架构模式,并结合Nacos服务治理框架,为企业级MCP部署提供实用指南。文章详细对比了各种架构的优缺点及适用场景,包括MCP Client直连Remote Server (SSE)、通过Proxy连接Remote Server (SSE)、直连Local Server (STDIO)、通过Local Proxy连接Local Server (STDIO)以及通过Local Proxy连接Remote Server (STDIO+SSE)。同时,文章还介绍了如何利用Nacos提供的服务发现、配置管理和服务治理能力,特别是Nacos MCP Router,来实现MCP服务的统一管理和智能路由,简化企业级MCP部署的复杂度。最后,文章基于数据安全、性能和可扩展性等因素,为不同行业的MCP架构选型提供了参考,并展望了MCP在企业级应用中的未来发展趋势。

怜星夜思:

1、文章提到了五种MCP Server架构,你认为哪种架构在未来会成为主流?为什么?
2、Nacos MCP Router在简化MCP部署方面发挥了重要作用,你认为它还有哪些潜在的应用场景?
3、文章提到MCP协议本身还有待完善,你认为未来MCP协议应该在哪些方面进行改进,才能更好地满足企业级应用的需求?

原文内容

在AI大模型应用爆发的今天,Model Context Protocol (MCP) 作为连接AI大模型与应用的关键协议,正在快速普及。然而,如何在企业级环境中高效部署和管理MCP服务,成为技术团队面临的重要挑战。本文将深入剖析MCP Server的五种主流架构模式,并结合Nacos服务治理框架,为企业级MCP部署提供实用指南。

MCP架构的演进与挑战

MCP协议为AI应用提供了标准化的交互方式,但在企业级落地过程中,我们面临着认证鉴权受限、部署模式多样、技术债务风险等多重挑战。目前,MCP Server主要有五种架构模式,每种架构各有优劣,适用于不同的业务场景。

五种MCP架构模式详解

架构一:MCP Client直连Remote Server (SSE)

这种架构就像你直接打电话给专家咨询问题 —— MCP Client通过SSE方式直接连接到远程MCP Server,全程保持HTTP长连接。

优点?

  • 超简单!没有中间层,部署维护成本低;

  • 实时性好,模型的流式输出体验一流;

  • 集中化管理,监控和运维不费劲;

缺点?

  • 网络一卡,体验就崩了;

  • 所有数据都得传到云端,敏感信息有顾虑;

  • 安全风险较高,服务端点直接暴露;

适合谁? 如果你是做SaaS应用、轻量级客户端或公共云服务,对安全要求不那么高,这种架构就挺合适的。

架构二:MCP Client通过Proxy连接Remote Server (SSE)

这种架构就像有个翻译在中间帮你沟通 —— MCP Client先连接到Proxy Server,再由Proxy转接到Remote Server。

优点?

  • 安全性更高,代理层可以做各种防护;

  • 支持智能路由和负载均衡,流量调度更灵活;

  • 可以聚合多个后端服务,一个接口通吃;

缺点?

  • 架构复杂了,维护成本自然上升;

  • 多一层代理可能增加延迟,体验稍差;

  • 代理层可能成为新的故障点;

适合谁? 多租户环境、企业网关集成、需要调用多种模型的场景,这种架构就很给力。

架构三:MCP Client直连Local Server (STDIO)

这种架构就像你家里有个私人助理 —— MCP Client通过STDIO方式直接连接本地MCP Server,进程间直接通信。

优点?

  • 数据安全性拉满!敏感数据不出本地;

  • 几乎零网络延迟,响应速度飞快;

  • 完全离线环境也能用,不依赖外网;

缺点?

  • 本地计算资源得够强,不然跑不动;

  • 每个环境都要单独部署维护,运维成本高;

  • 模型和服务更新很麻烦,得一个个环境去更新;

适合谁? 金融核心系统、医疗数据分析、工业现场系统等对数据安全和隐私有高要求的场景。

架构四:MCP Client通过Local Proxy连接Local Server (STDIO)

这种架构就像你有个私人秘书帮你协调多个本地专家 —— MCP Client先连接到Local Proxy,再由Proxy连接到Local Server。

优点?

  • 服务抽象做得好,客户端不用关心实现细节;

  • 支持本地多实例部署,自动故障转移;

  • 可以实现不同业务线或部门的资源隔离;

缺点?

  • 本地环境更复杂了,维护难度加大;

  • 本地代理需要额外的计算资源;

  • 多层架构让问题定位和调试变得更困难;

适合谁? 大型企业内部平台、高可用要求场景、需要统一管理本地AI资源的场景。

架构五:MCP Client通过Local Proxy连接Remote Server (STDIO+SSE)

这种架构就像你有个超级助手,既能处理本地事务又能帮你对接外部专家 —— MCP Client通过STDIO连接Local Proxy,Local Proxy再通过SSE连接Remote Server。

优点?

  • 混合云战略的最佳选择,本地云端资源随意切换;

  • 企业从本地向云端迁移的平滑过渡方案;

  • 客户端体验一致,不用关心服务在哪里;

缺点?

  • 架构最复杂,维护和排障难度最大;

  • 需要确保本地和云端服务的一致性;

  • 性能受网络状况影响,可能有波动;

适合谁? 实施混合云战略的大型企业、需要弹性扩展的业务、多区域部署的全球企业。

Nacos如何赋能MCP架构

在企业级MCP部署中,MCP Server 的自动发现与选择及其 Server 的动态安装能力比较高效的解决了各个架构中遇到的场景。 Nacos 3.0 之前的版本,主要围绕着分布式应用的服务注册发现以及配置管理,提供了三大核心能力:

1. 服务发现与注册支持服务的自动注册和发现,实现服务的动态扩缩容;

2. 配置管理支持配置的动态更新和推送,无需重启应用;

3. 服务治理提供服务路由、负载均衡、流量控制等治理能力;

这些能力与MCP架构的需求高度契合,特别是在多MCP服务器的场景下。

Nacos MCP Router:连接 MCP 与 Nacos 的桥梁

Nacos MCP Router (https://github.com/nacos-group/nacos-mcp-router) 是一个基于MCP协议的服务器,它与Nacos深度集成,提供了三个核心功能:

1. MCP服务器搜索根据任务描述和关键词搜索合适的 MCP 服务器,重点解决 MCP 工具过多时解决大模型选择工具的效率的问题。

2. MCP服务器添加支持添加stdio和SSE两种协议的 MCP 服务器,配合 Nacos Server 的管理能力,重点解决软件供应链安全的问题。

3. 工具代理调用代理 LLM 对目标 MCP 服务器工具的调用,通过一个本地代理的方式解决 Local Server 与 Remote Server 调用的灵活切换问题。

通过以上的几个能力,我们搭建了一种混合 MCP Server 架构的模式,可以实现MCP服务的统一管理和智能路由,大大简化提升工具选择时的性能与企业级 MCP 部署的复杂度。

Nacos与MCP的实战集成

下面通过一个实际案例,展示如何使用Nacos和Nacos MCP Router构建企业级MCP服务。

部署 Nacos MCP Router

在有 NodeJS 的开发环境中,我们可以通过以下命令手动部署Nacos MCP Router(不过这一步不是必须的)。

$ pnpm i nacos-mcp-router@latest

配置MCP客户端

然后,在MCP客户端配置中添加nacos-mcp-router:

{
  "mcpServers": {
    "nacos-mcp-router": {
      "command": "npx",
      "args": [
        "nacos-mcp-router@latest"
      ],
      "env": {
        "NACOS_ADDR": "127.0.0.1:8848",
        "NACOS_USERNAME": "nacos",
        "NACOS_PASSWORD": "your_password"
      }
    }
  }
}
使用MCP服务

现在,我们可以通过nacos-mcp-router使用各种MCP服务(注:以下步骤为 MCP Client 与 Nacos Router 自动交互时的核心方法,并不是程序员在开发过程中需要硬编码的实现):

1. 搜索MCP服务器:

search_mcp_server(task_description="生成一张猫的图片", 
                  key_words="图像生成")

2. 添加MCP服务器:

add_mcp_server(mcp_server_name="image-generator")

3. 使用MCP服务器工具:

use_tool(mcp_server_name="image-generator",     
         mcp_tool_name="generate_image", 
         params={"prompt": "一只橙色的猫"})

线上 MCP 架构选型指南

MCP 社区还在飞速的发展之中,在生产场景的能力上的诸多核心功能还暂时未形成统一的标准,基于目前的能力,我们在选择适合企业的MCP架构进行落地时,我们需要考虑以下关键因素:

1. 数据安全与隐私

  • 高敏感数据:优先考虑本地部署架构(架构三、架构四);

  • 一般业务数据:可考虑云端或混合架构(架构一、架构二、架构五);

2. 性能与延迟要求

  • 低延迟关键应用:优先考虑本地部署架构;

  • 一般性能要求:云端架构通常足够;

3. 可扩展性需求

  • 需要快速弹性扩展:优先考虑云端架构;

  • 可预测的稳定负载:本地部署可能更经济;

基于这些因素,不同行业可能的选择可能的参考如下:

  • 金融行业架构四(本地代理+本地服务器)最为适合,满足严格的数据安全要求;

  • 互联网行业架构二(代理+远程服务器)支持快速弹性扩展,适合高并发场景;

  • 制造业架构五(混合模式)平衡了本地实时控制和云端智能分析的需求;

  • 政府部门架构三(直连本地服务器)提供最高级别的数据安全和隐私保护。

结论与展望

MCP 目前默认成为了 AI 大模型与存量业务数据互通的管道,但由于目前的 MCP 协议本身从设计上未太多考虑企业级落地的情况,导致很多的企业还处在观望的状态。MCP要想完整落地,中心化的注册中心、可控的软件供应链、安全的访问控制这三方面的建设必不可少。在我们的方案中,主要通过 Nacos 作为 MCP 的未来企业 MCP 的注册中心,通过 Nacos Server 对 MCP 服务器的管理能力,结合 Nacos Router 做到软件供应链的精准控制;同时配合 Higress 做到 MCP 的安全访问,以此给我们的企业级客户带来 MCP 完整的解决方案。

特别致谢:

Lingma-Agents (https://github.com/apps/lingma-agents) 在 Nacos Router 实现的过程中提供自动化的 Code Review 能力。

企业级分布式应用服务 EDAS


企业级分布式应用服务EDAS(Enterprise Distributed Application Service)是一个应用PaaS平台,一站式集成微服务、可观测、任务调度等技术;以专业易用的应用全生命周期管理、流量及容量治理等功能,配合业务视角的验收、资源管控与成本优化能力,助力企业应用架构云原生化升级。


点击阅读原文查看详情。

个人觉得,MCP协议应该加强对认证鉴权的支持。企业级应用对安全性要求很高,MCP协议应该提供更完善的认证机制,例如支持OAuth、JWT等标准协议,方便与企业现有的安全体系集成。

从长远来看,架构的选择还是取决于具体的应用场景和需求。如果对数据安全性有极致要求,架构三(MCP Client直连Local Server (STDIO))可能是唯一选择。但如果追求弹性扩展和易管理性,云端架构可能更适合。所以,我认为不会有一种架构成为绝对的主流,而是多种架构并存,根据需求灵活选择。

可以考虑结合权限管理系统,利用 Nacos MCP Router实现更细粒度的访问控制。例如,可以控制哪些用户可以使用哪些AI模型,或者限制特定模型的调用频率,从而保障资源的安全和合理利用。感觉这方面很有想象空间。

除了安全,MCP协议还应该考虑可观测性。在复杂的分布式环境中,我们需要能够监控MCP服务的运行状态,了解请求的延迟、错误率等指标。MCP协议可以定义一些标准的监控指标和日志格式,方便企业进行监控和告警。

除了模型管理,Nacos MCP Router 还可以用于AI服务的动态扩容和缩容。当流量高峰来临时,它可以自动发现并注册新的 MCP Server,实现服务的弹性伸缩,提高系统的可用性。这在大促或者突发流量场景下非常有用。

个人觉得架构五(MCP Client通过Local Proxy连接Remote Server (STDIO+SSE))更有潜力。现在混合云是大趋势,这种架构能灵活切换本地和云端资源,对企业来说很实用。当然,前提是网络状况要好,不然体验会打折扣。

Nacos MCP Router 不仅能简化 MCP 部署,我觉得它在AI模型的灰度发布和A/B测试方面也能发挥作用。通过它可以更方便地将流量导向不同的模型版本,帮助我们评估新模型的效果,降低上线风险。

我倾向于架构二(MCP Client通过Proxy连接Remote Server (SSE)),主要考虑安全性。在AI应用中,数据安全至关重要,Proxy可以提供各种防护,降低安全风险。虽然架构复杂一些,但为了安全,这点成本是值得的。

我觉得标准化也很重要。文章里也说了,现在社区还在快速发展,很多核心功能还没有统一标准。MCP协议应该尽快制定完善的标准,减少不同厂商之间的差异,方便企业选择和集成不同的MCP服务,避免被vendor lock-in。