所有文章 > AI驱动 > MCP 分布式落地实践:0代码实现微服务改造成 MCP Server
MCP 分布式落地实践:0代码实现微服务改造成 MCP Server

MCP 分布式落地实践:0代码实现微服务改造成 MCP Server

MCP(Model Context Protocol)提供了一种标准化的框架,用于资源访问和多智能体(Multi-Agent)之间的协作。目前,开源社区正在积极推动 MCP 生态系统的建设,mcp.so 平台已经支持了近万个 MCP Server,各种相关的 MCP 组件也在不断涌现。大厂 AI 公司也在积极采用 MCP,并提供了自己的 MCP Server。

对于开发者来说,如何将他们的业务快速融入 MCP 生态系统,以及是否需要跟进和如何快速跟进,已经成为他们必须面对的重要挑战。这不仅涉及到技术层面的适配和集成,还包括对 MCP 生态系统的理解和规划。开发者需要评估 MCP 对他们业务的潜在价值,以及如何利用 MCP 来增强他们的产品和服务。

本文介绍了一种无需修改应用代码即可实现 MCP 协议的方法。通过使用 Higress AI 网关,可以将微服务无缝转换为 MCP Server,从而快速将现有的微服务集成到 MCP 生态系统中。

这种方法的优势在于,它允许业务在不中断现有技术栈的情况下,平滑过渡到 MCP 生态。这意味着企业可以在不影响业务连续性和技术债务的前提下,探索和利用 AI 原生应用的基础设施。通过保留对 AI 原生应用基础设施的选择权,企业可以灵活地评估和选择最适合其业务需求的技术解决方案。

在 MCP 生态系统中,Higress 扮演着至关重要的角色,作为一个基础设施组件,它通过强大的协议转换功能,使得现有微服务能够无需修改代码即可融入 MCP 生态。Higress 的核心能力在于它能够接收 MCP 请求并执行协议转换,同时提供一系列关键的服务,包括统一的身份验证、流量管理和参数映射,以及安全审计等。

这种服务托管方案极大地简化了开发者的工作流程,他们无需深入理解 MCP 协议的复杂细节,就能迅速将现有的服务转化为 MCP Server。这不仅提高了开发效率,还降低了技术门槛,使得更多的微服务能够快速接入 MCP 生态。

Higress 的托管模式还有效应对了 MCP 协议快速迭代和 SDK 不稳定的挑战。它为企业提供了一个灵活的选择空间,使他们能够在 AI 原生应用的发展中,根据业务需求和技术发展灵活地选择合适的技术和服务。这种模式不仅加速了企业对新技术的采纳,还为企业提供了更大的灵活性和自主性,以适应不断变化的市场和技术环境。

阿里 Nacos(Naming and Configuration Service)作为云原生注册配置中心,最近发布了 MCP Registry,让存量业务 API “0改动”就可以适配 MCP Server。

Nacos 在作为 MCP Registry ,承担着控制面板的关键角色。它不仅负责管理 Tool 的元信息,还能将现有的微服务 API 转化为符合 MCP 协议的接口。借助 Nacos,云原生存量业务应用可以迅速将其已有的业务 API 接口转换为 MCP 协议接口,并通过与 Higress AI 网关的结合,实现 MCP 协议与现有协议之间的无缝转换。在这个过程中,Nacos 提供了对现有微服务的管理以及动态服务信息的定义,使得业务能够在不改动现有接口的前提下,通过 Nacos 的服务管理功能,动态地应用 Higress 网关生成的 MCP Server 协议。

一、零代码实现微服务改造成 MCP Server 架构设计

第一、Nacos 0代码适配 MCP Server 的架构原理剖析

我们先来了解一下普通的微服务调用过程。首先,调用方(Consumer)需要知道微服务提供方(Provider)的地址(可以是一个域名或 IP 地址)。然后,调用方根据事先约定好的参数,对微服务接口进行调用。整个调用流程如下图所示:

在日常开发中,我们通常已经熟悉了当前微服务提供方的接口集合以及接口参数的具体作用。因此,我们可以在业务代码中编写调用逻辑,实现服务之间的调用。对于大模型来说,这些调用上下文同样是必不可少的。大模型需要了解服务提供方的接口集合以及接口的详细描述,才能根据上下文进行接口调用。

对于已经使用 Nacos 作为注册配置中心的存量服务,Nacos 中已经保存了服务的调用地址。我们只需要增加服务的接口信息,就可以实现大模型调用上下文的构建。

为此,Nacos 引入了“应用全局描述”这一概念,用于描述当前应用及其接口的详细信息。通过统一的接口描述协议,我们可以对 Nacos 中的服务进行 MCP 化改造。对于之前未在 Nacos 中注册的服务,我们可以通过 Nacos 的持久化服务发现功能手动进行注册。在配置完服务相关信息后,MCP 协议所需的数据已经完备。接下来,我们需要考虑如何通过 MCP 协议将这些数据暴露出去。这里,我们利用 Higress 的插件机制来实现 MCP 协议的暴露能力。调用流程图如下:

第二、Nacos MCP Registry 整体架构设计剖析

1、Nacos MCP Regisry 架构设计

MCP 协议目前支持多种资源(Tool、Prompt、Resource 等),Nacos 优先实现了使用量较高的 Tool,并借助 Higress 提供的统一 SSE 协议支持,加速了 MCP Server 的构建,整体架构设计如下图所示:

在架构设计上,Nacos 通过在 Higress 中的 MCP Server 插件实现了 Nacos 中管理的 Tools 的暴露。对外通过 MCP 协议暴露普通 HTTP 服务,需要先完成以下两件事:

  • 暴露 tool/list 接口

功能:由 Higress AI 网关返回所有的 Tool 列表。

实现:tool/list 方法主要负责将当前 MCP Server 支持的 Tool 的详细信息列表返回给 MCP Client。返回信息包含 Tool 的作用描述和 Tool 的参数描述(包含类型、作用等)。通过将 Nacos 存储的描述信息转化为标准的 MCP 协议里的 tool/list 结果,返回给 MCP Client。

  • 协议转化

功能:将 MCP 协议的 JSON RPC 转化为普通 HTTP 请求,并转发到后端服务。

实现:当 MCP Client 调用 Tool 时,Higress 将 tool/call 的 JSON RPC 请求解析出来,通过用户配置的参数映射信息、Path、后端地址等信息,Higress 生成后端的 HTTP 调用请求,并进行调用。调用完成后,再将后端的调用结果包装成标准的 tool/call 接口调用的返回结果。

在整体实现中,Nacos 作为 MCP Registry,扮演控制面的角色,管理 Tool 的元信息。Higress 在数据面负责协议转换和 RPC 调用。存量服务只需添加接口描述,无需进行任何改动。

2、使用 Nacos MCP Registr 架构设计的优势

  • 存量 API 快速构建 MCP Server

Nacos 集成 Higress 的方案:通过 Nacos 和 Higress 的集成,用户可以实现零代码快速构建 MCP Server,迅速跟进 MCP 协议,无缝对接存量 API。

  • MCP 信息动态下发实时生效

动态调试与优化:MCP 描述信息、Tools 以及 Prompt 都需要经过调试才能达到最佳效果。Nacos 能够帮助管理和下发这些信息,实现动态调整和实时生效,提高调试效率。

  • MCP 信息历史版本管理

版本管理与回滚:Nacos 会管理和存储 MCP 信息的历史版本,方便进行 Diff 对比差异,在出现问题时能够快速回滚到之前的版本,确保系统的稳定性和可靠性。

  • MCP 信息灰度管理

灰度分批生效:在 MCP 信息生效时,Nacos 支持灰度分批生效,允许逐步推广新配置,方便对比不同版本的效果,降低风险。

  • 密码配置加密

敏感信息保护:在 MCP 信息和 API 调用过程中,涉及密码等敏感信息时,Nacos 提供了 敏感信息加密 的能力,确保数据的安全性。

  • MCP 返回格式 JSON 转换 XML

格式优化:在与大模型交互时,JSON 格式可能不如 XML 格式直观。Nacos 可以帮助将 MCP 的返回格式从 JSON 转换为 XML,使大模型更容易理解和处理。

  • MCP 服务管理及健康检查

服务管理与监控:随着 MCP 服务数量的增加,Nacos 提供了大规模服务管理能力,包括健康检查、实时更新和负载均衡,确保 MCP 服务的高效运行,同时作为 MCP 服务发现中心的托管平台。

通过这些功能,Nacos 和 Higress 的结合为 MCP Server 的构建和管理提供了全面的支持,帮助用户快速、安全地实现 MCP 协议的落地。

二、总结

借助 Nacos 与 Higress 的组合方案,能够实现无需代码改造,将显存微服务快速改造成 MCP Server,从而大幅削减现有应用的改造成本。目前,用户需手动配置接口描述信息,但未来 Nacos 计划通过工具化手段进一步简化这一流程,使用户仅需进行微调即可完成配置。在实际场景中,我们面临着海量的存量服务与接口。按照接口到 Tool 的映射规则,我们将产生大量的 Tool。当 Agent 获取 Tool 列表并将其传递给大模型时,这将导致大量的 token 消耗,进而可能影响大模型的性能。因此,如何在上下文中精准筛选出有效的 Tool 列表,并将其高效返回给 Agent 智能体,将成为后续发展的关键方向之一。除了 Tool,MCP 协议还涵盖 Prompt、Resource 等多种资源,MCP 社区也在持续对协议进行更新。相信 Nacos 将逐步支持这些新特性,为 MCP 生态的繁荣贡献力量。

文章转载自:MCP 分布式落地实践:0代码实现微服务改造成 MCP Server

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

我们有何不同?

API服务商零注册

多API并行试用

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

查看全部API→
🔥

热门场景实测,选对API

#AI文本生成大模型API

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

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

#AI深度推理大模型API

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

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