
如何在Python中使用ChatGPT API?
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 协议。
—1—
我们先来了解一下普通的微服务调用过程。
首先,调用方(Consumer)需要知道微服务提供方(Provider)的地址(可以是一个域名或 IP 地址)。然后,调用方根据事先约定好的参数,对微服务接口进行调用。整个调用流程如下图所示:
在日常开发中,我们通常已经熟悉了当前微服务提供方的接口集合以及接口参数的具体作用。因此,我们可以在业务代码中编写调用逻辑,实现服务之间的调用。
对于大模型来说,这些调用上下文同样是必不可少的。大模型需要了解服务提供方的接口集合以及接口的详细描述,才能根据上下文进行接口调用。
对于已经使用 Nacos 作为注册配置中心的存量服务,Nacos 中已经保存了服务的调用地址。我们只需要增加服务的接口信息,就可以实现大模型调用上下文的构建。
为此,Nacos 引入了“应用全局描述”这一概念,用于描述当前应用及其接口的详细信息。通过统一的接口描述协议,我们可以对 Nacos 中的服务进行 MCP 化改造。对于之前未在 Nacos 中注册的服务,我们可以通过 Nacos 的持久化服务发现功能手动进行注册。
在配置完服务相关信息后,MCP 协议所需的数据已经完备。接下来,我们需要考虑如何通过 MCP 协议将这些数据暴露出去。这里,我们利用 Higress 的插件机制来实现 MCP 协议的暴露能力。调用流程图如下:
MCP 协议目前支持多种资源(Tool、Prompt、Resource 等),Nacos 优先实现了使用量较高的 Tool,并借助 Higress 提供的统一 SSE 协议支持,加速了 MCP Server 的构建,整体架构设计如下图所示:
在架构设计上,Nacos 通过在 Higress 中的 MCP Server 插件实现了 Nacos 中管理的 Tools 的暴露。
对外通过 MCP 协议暴露普通 HTTP 服务,需要先完成以下两件事:
暴露 tool/list 接口
协议转化
在整体实现中,Nacos 作为 MCP Registry,扮演控制面的角色,管理 Tool 的元信息。Higress 在数据面负责协议转换和 RPC 调用。存量服务只需添加接口描述,无需进行任何改动。
存量 API 快速构建 MCP Server
MCP 信息动态下发实时生效
MCP 信息历史版本管理
MCP 信息灰度管理
密码配置加密
MCP 返回格式 JSON 转换 XML格式优化
MCP 服务管理及健康检查
通过这些功能,Nacos 和 Higress 的结合为 MCP Server 的构建和管理提供了全面的支持,帮助用户快速、安全地实现 MCP 协议的落地。
—2—
借助 Nacos 与 Higress 的组合方案,能够实现无需代码改造,将显存微服务快速改造成 MCP Server,从而大幅削减现有应用的改造成本。目前,用户需手动配置接口描述信息,但未来 Nacos 计划通过工具化手段进一步简化这一流程,使用户仅需进行微调即可完成配置。
在实际场景中,我们面临着海量的存量服务与接口。按照接口到 Tool 的映射规则,我们将产生大量的 Tool。当 Agent 获取 Tool 列表并将其传递给大模型时,这将导致大量的 token 消耗,进而可能影响大模型的性能。因此,如何在上下文中精准筛选出有效的 Tool 列表,并将其高效返回给 Agent 智能体,将成为后续发展的关键方向之一。
除了 Tool,MCP 协议还涵盖 Prompt、Resource 等多种资源,MCP 社区也在持续对协议进行更新。相信 Nacos 将逐步支持这些新特性,为 MCP 生态的繁荣贡献力量。