阿里巴巴 MCP 分布式落地实践:快速转换 HSF 到 MCP server

本文涉及的产品
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
可观测可视化 Grafana 版,10个用户账号 1个月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 本文分享了阿里巴巴内部将大规模HSF服务快速转换为MCP Server的实践经验,通过Higress网关实现MCP协议卸载,无需修改代码即可接入MCP生态。文章分析了MCP生态面临的挑战,如协议快速迭代和SDK不稳定性,并详细介绍了操作步骤及组件功能。强调MCP虽非终极解决方案,但作为AI业务工程化的起点具有重要意义。最后总结指出,MCP只是AI原生应用发展的第一步,未来还有更多可能性值得探索。

image.gif


MCP 为资源访问和 Multi Agent 互操作提供了标准化的可能。开源社区目前对 MCP 的生态建设非常火热,mcp.so 已经提供了近 1 万的 mcp server ,其他各种 MCP 生态组件更是层出不穷。AI 大厂们积极拥抱 MCP ,并纷纷提供了自己的 MCP server。对于开发同学,如何让自己的业务能快速进入 MCP 生态,要不要跟进和如何快速跟进,已经成为了必须面对的挑战。


本文产生自阿里巴巴内部 MCP 实践经验,实现了应用不做代码改动,通过 Higress AI 网关实现 MCP 协议卸载,快速将内部的 HSF 服务转换为 MCP Server ,将现有微服务接入 MCP 生态。在业务和技术同时不踏空的前提下,保留对 AI 原生应用基础设施的选择权。


HSF 是阿里巴巴内部以 Apache Dubbo 为内核的 RPC 框架,提供了支持超大规模高性能的 RPC 协议和高质量框架层实现支持,为阿里巴巴内部研发同学和业务提供了稳定易用高效的微服务生态。目前阿里内部 HSF 有百万级别生产级实例,经历了多年双十一百亿级洪峰考验。围绕 HSF,内部也有多年演进出的支持超大规模稳定运行的注册中心和配置中心,Nacos 就是基于其设计思想脱胎而生的开源产品。


Higress 是阿里阿巴开源的 AI 网关。2020 年,Higress 承担了集团跨 VPC 通信的重任,在保证高性能的前提下,其丰富的特性显著降低了业务研发的成本,成为内部跨域通信的网关事实标准。2022 年,在内部稳定运行两年,经历了单集群百万 QPS 的流量验证后,Higress 宣布开源,由于其出色的性能和易用性,迅速就获得了大量用户关注,并成为众多商业化客户的首选网关。 2024 年后,Higress 作为最被广泛使用的 AI 网关,在大模型和 MCP 领域成为官方认证的网关方案。


有关 Higress 的开源经历可以参考这篇文章,https://higress.cn/blog/higress/


在 MCP 生态中, Higress 作为关键的基础设施组件,通过其协议转换能力,实现了将现有服务无代码改动地接入 MCP 生态。 在 MCP 服务托管方案中,Higress 负责接收 MCP 请求并完成协议卸载,提供统一的身份认证、流量调度、参数映射与安全审计等能力,使开发者能在不深入了解 MCP 协议细节的情况下,快速将现有服务暴露为 MCP Server。这种 hosting 模式有效解决了 MCP 协议快速迭代、SDK 不稳定等挑战,为企业在 AI 原生应用发展中提供了灵活选择的空间。



接下来回答一个问题,阿里内部这么多的 HSF 服务,为什么选择 hosting 的方式接入 MCP,而不是原生SDK 的方式接入?


挑战


  • MCP 自身演进非常快,内部用户非常难跟上其迭代节奏。0326 的 SPEC 距离上次发布只过了 4 个月,根据 MCP 2025 的 RoadMap,未来可能还会有 3 次以上的 SPEC 发布,这些 SPEC 不保证协议层面完全前向兼容。很容易遇到现在接入了官方开源的 SDK,后面还需要处理线上的老版本 MCP 如何升级到最新版本的重复投入和稳定性成本问题,对集团内核心应用的研发而言会非常痛苦。
  • 现有 MCP 的 SDK 还比较初级,仅对 SPEC 做了简单实现,在可用性上远远达不到生产级别,需要较长的时间稳定。比如 java-sdk 的 0.7.0 和 0.8.0 的 API 有非常多的改动项,MCP Java SDK Migration Guide: 0.7.0 to 0.8.0。对于应用开发同学而言,不光要升级,还要改接入的代码,成本和风险都是翻倍的。
  • MCP 生态虽然热火朝天,但缺乏系统化和最优实践,达到共识的时间成本和个人的学习成本不可忽视。如何快速掌握 MCP 协议和 MCP 应用开发,最快的方式当然是在现有的业务场景里先跑起来,然后一边运行一边学习。那么如何才能在不懂 MCP 的前提下跑起来自己的 MCP Server?


转换 HSF Service -> MCP Server



组件


  • Higress 网关:承接 MCP 流量,提供统一身份认证、流量调度、参数映射、安全审计等切面能力。
  • MCP 控制台:AI 应用研发同学创建和维护 MCP server/tools/prompts 的平台,提供工具托管、调试、编排能力。
  • MCP Registry: 注册中心,负责集团内所有 MCP server 的注册和 client 发现,由 HSF 注册中心承担。
  • MCP Metadata Center : 存储提示词、MCP server 元数据、工具元数据、版本化支持等,由 HSF 配置中心承担。


操作步骤


step1:打开对应环境的 HSFOPS 后台,选择 MCP 侧边栏



step2:选择需要转 MCP Tool 的 hsf 应用(自己为 owner/ops 的应用)、服务名和方法名。


注意:工具描述需要准确具体,用于给大模型识别 tool 的用途。



step3:补充标记为 //TODO 部分的 method 的入参的 fieldName 和 description


请求参数结构会自动生成,只需添加名称(key) 和描述 (description)。



step4:利用工具以 mcp sse 方式访问域名


http://{MCP endpoint prefix}/{applicationName}/sse


实际效果


Cherry Studio



AI Infra 视角对 MCP 的思考


  • MCP 不是银弹。从分布式领域和 AI 基础设施的角度看,MCP 作为一个通信协议或 AI 智能体协议都不够成熟,远达不到生产级别落地的标准。因此,无论是业务还是基础设施团队,盲目的选择 All in MCP 是不负责任的表现。通过快速跟进,快速试错实现 AI 业务场景的原型落地是更好的选择。因此,AI infra 团队关注的重点应是如何降低业务创新的成本,而不是拉上业务一起为自己的错误决策埋单。将这一点落实到技术决策,选择由 Higress 网关承担 MCP 协议卸载,再适配内部已有协议是对阿里内部全局较优的选择。无论是 MCP 发展到足够成熟还是被其他的生态取代,业务都可以灵活的选择跟进或切换,整个公司的基础设施不会发生 vendor lock-in 。
  • Market 重要吗?重要也不重要。AI 智能体解决的是如何扩展 LLMs 的边界,从而解决更复杂的实际问题。MCP 合理的定位是解决 MxN 的重复建设和标准化资源访问的问题,MCP Market 是一个自然而然的产品,其存在是有必要性的。但认为掌握了 Market 就掌握了一切,这是本末倒置的想法。合理的路径是基础设施适配先做到位,让业务研发同学能够有更多的选择权,更快的迭代速度,自然会有完善易用的 Market 作为门户存在。前面的积累如果没有做扎实,后者只能是空中楼阁。
  • 看起来只关注了 Tool 的转换, Prompts/Roots 和 Sampling 呢?回答这个问题需要扩展阅读一下 MCP 的诞生背景以及使用场景,包括 Anthropic 对其的定位和创建 MCP 的目标。MCP 是 AI 业务工程化的起点里程碑,但不是终点,在投入 MCP 的同时关注 A2A 和 ANP 这些 AI Agent 交互协议的发展是做 Infra 的团队的必然选择。


总结


本文提供了阿里内部大规模 HSF 服务快速转换为 MCP Server 的实践,用于帮助业务同学降低改造成本,快速融入 MCP 生态,紧跟 AI 原生应用的发展速度。目前看来,MCP 只是第一步,AI 原生应用的路还很长,希望这篇文章能对 AI Infra 领域感兴趣的同学和团队有所启发。


相关文章
|
24天前
|
监控 Linux 应用服务中间件
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
262 56
|
18天前
|
安全 JavaScript 前端开发
HarmonyOS NEXT~HarmonyOS 语言仓颉:下一代分布式开发语言的技术解析与应用实践
HarmonyOS语言仓颉是华为专为HarmonyOS生态系统设计的新型编程语言,旨在解决分布式环境下的开发挑战。它以“编码创造”为理念,具备分布式原生、高性能与高效率、安全可靠三大核心特性。仓颉语言通过内置分布式能力简化跨设备开发,提供统一的编程模型和开发体验。文章从语言基础、关键特性、开发实践及未来展望四个方面剖析其技术优势,助力开发者掌握这一新兴工具,构建全场景分布式应用。
139 35
|
22天前
|
人工智能 负载均衡 Java
Spring AI Alibaba 发布企业级 MCP 分布式部署方案
本文介绍了Spring AI Alibaba MCP的开发与应用,旨在解决企业级AI Agent在分布式环境下的部署和动态更新问题。通过集成Nacos,Spring AI Alibaba实现了流量负载均衡及节点变更动态感知等功能。开发者可方便地将企业内部业务系统发布为MCP服务或开发自己的AI Agent。文章详细描述了如何通过代理应用接入存量业务系统,以及全新MCP服务的开发流程,并提供了完整的配置示例和源码链接。未来,Spring AI Alibaba计划结合Nacos3的mcp-registry与mcp-router能力,进一步优化Agent开发体验。
616 13
|
2月前
|
存储 负载均衡 测试技术
ACK Gateway with Inference Extension:优化多机分布式大模型推理服务实践
本文介绍了如何利用阿里云容器服务ACK推出的ACK Gateway with Inference Extension组件,在Kubernetes环境中为多机分布式部署的LLM推理服务提供智能路由和负载均衡能力。文章以部署和优化QwQ-32B模型为例,详细展示了从环境准备到性能测试的完整实践过程。
|
3月前
|
并行计算 PyTorch 算法框架/工具
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
本文探讨了如何通过技术手段混合使用AMD与NVIDIA GPU集群以支持PyTorch分布式训练。面对CUDA与ROCm框架互操作性不足的问题,文章提出利用UCC和UCX等统一通信框架实现高效数据传输,并在异构Kubernetes集群中部署任务。通过解决轻度与强度异构环境下的挑战,如计算能力不平衡、内存容量差异及通信性能优化,文章展示了如何无需重构代码即可充分利用异构硬件资源。尽管存在RDMA验证不足、通信性能次优等局限性,但该方案为最大化GPU资源利用率、降低供应商锁定提供了可行路径。源代码已公开,供读者参考实践。
222 3
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
|
3月前
|
人工智能 运维 监控
领先AI企业经验谈:探究AI分布式推理网络架构实践
当前,AI行业正处于快速发展的关键时期。继DeepSeek大放异彩之后,又一款备受瞩目的AI智能体产品Manus横空出世。Manus具备独立思考、规划和执行复杂任务的能力,其多智能体架构能够自主调用工具。在GAIA基准测试中,Manus的性能超越了OpenAI同层次的大模型,展现出卓越的技术实力。
|
5月前
|
数据采集 人工智能 分布式计算
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
阿里云推出的MaxFrame是链接大数据与AI的分布式Python计算框架,提供类似Pandas的操作接口和分布式处理能力。本文从部署、功能验证到实际场景全面评测MaxFrame,涵盖分布式Pandas操作、大语言模型数据预处理及企业级应用。结果显示,MaxFrame在处理大规模数据时性能显著提升,代码兼容性强,适合从数据清洗到训练数据生成的全链路场景...
226 5
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
|
5月前
|
存储 运维 安全
盘古分布式存储系统的稳定性实践
本文介绍了阿里云飞天盘古分布式存储系统的稳定性实践。盘古作为阿里云的核心组件,支撑了阿里巴巴集团的众多业务,确保数据高可靠性、系统高可用性和安全生产运维是其关键目标。文章详细探讨了数据不丢不错、系统高可用性的实现方法,以及通过故障演练、自动化发布和健康检查等手段保障生产安全。总结指出,稳定性是一项系统工程,需要持续迭代演进,盘古经过十年以上的线上锤炼,积累了丰富的实践经验。
291 7
|
6月前
|
运维 Kubernetes 调度
阿里云容器服务 ACK One 分布式云容器企业落地实践
阿里云容器服务ACK提供强大的产品能力,支持弹性、调度、可观测、成本治理和安全合规。针对拥有IDC或三方资源的企业,ACK One分布式云容器平台能够有效解决资源管理、多云多集群管理及边缘计算等挑战,实现云上云下统一管理,提升业务效率与稳定性。
|
7月前
|
NoSQL Java 数据处理
基于Redis海量数据场景分布式ID架构实践
【11月更文挑战第30天】在现代分布式系统中,生成全局唯一的ID是一个常见且重要的需求。在微服务架构中,各个服务可能需要生成唯一标识符,如用户ID、订单ID等。传统的自增ID已经无法满足在集群环境下保持唯一性的要求,而分布式ID解决方案能够确保即使在多个实例间也能生成全局唯一的标识符。本文将深入探讨如何利用Redis实现分布式ID生成,并通过Java语言展示多个示例,同时分析每个实践方案的优缺点。
207 8