阿里巴巴 MCP 分布式落地实践:快速转换 HSF 到 MCP server
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 领域感兴趣的同学和团队有所启发。
相关文章:
阿里巴巴 MCP 分布式落地实践:快速转换 HSF 到 MCP server
MCP 为资源访问和 Multi Agent 互操作提供了标准化的可能。开源社区目前对 MCP 的生态建设非常火热,mcp.so 已经提供了近 1 万的 mcp server ,其他各种 MCP 生态组件更是层出不穷。AI 大厂们积极拥抱 MCP ,并纷纷提供了自己的 MCP server。对…...
基于阿里云DashScope API构建智能对话指南
背景 公司想对接AI智能体,用于客服系统,经过调研和实施,觉得DashScope 符合需求。 阿里云推出的DashScope灵积模型服务为开发者提供了便捷高效的大模型接入方案。本文将详细介绍如何基于DashScope API构建一个功能完善的智能对话系统&#x…...
RK3588 RGA 测试
RK3588 RGA 测试 一、数据分析总结【由LLM生成】二、考链接三、测试数据四、测试过程4.1 编译librga SDK4.2 运行自带的测试4.3 生成`Resize`测试程序4.4 运行`Resize`测试4.5 遇到的错误一、数据分析总结【由LLM生成】 本次测试针对不同的源图像尺寸、目标图像尺寸和缩放算法…...
【机器学习】集成学习算法及实现过程
一、学习目标 了解什么是集成学习了解机器学习中的两个核⼼任务理解Bagging集成原理理解随机森林构造过程掌握RandomForestClassifier的使⽤掌握boosting集成原理和实现过程理解bagging和boosting集成的区别理解AdaBoost集成原理理解GBDT的算法原理 二、集成学习算法简介 2.…...
Vue:axios(GET请求)
基础 GET 请求 axios.get(https://api.example.com/data).then(response > {console.log(响应数据:, response.data);}).catch(error > {console.error(请求失败:, error);});参数传递方式 axios.get(/api/search, {params: {keyword: vue,page: 1,sort: desc} });// 实…...
iOS工厂模式
iOS工厂模式 文章目录 iOS工厂模式简单工厂模式(Simple Factory)工厂方法模式(Factory Method)抽象工厂模式(Abstract Factory)三种模式对比 简单工厂模式(Simple Factory) 定义&am…...
GitHub 趋势日报 (2025年05月21日)
本日报由 TrendForge 系统生成 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日整体趋势 Top 10 排名项目名称项目描述今日获星总星数语言1microsoft/WSLLinux的Windows子系统⭐ 1731⭐ 25184C2virattt/ai-hedge-fundA…...
iOS 直播弹幕功能的实现
实现iOS直播弹幕功能需要考虑多个方面,包括弹幕的显示、管理、动画效果以及与直播流的同步。 核心实现方案 1. 弹幕显示视图 class BarrageView: UIView {// 弹道(轨道)数组private var tracks: [CALayer] []// 正在显示的弹幕数组 private var displayingBarra…...
借助Azure AI Foundry 如何打造语音交互新体验
在刚刚落幕的微软创想未来峰会上,Contoso 智能家居的现场演示引发了热议。许多观众在会后留言询问如何回看这场精彩演示。今天,微软为您揭秘 Contoso 如何借助微软最新技术实现智能家居的飞跃式创新。 当语音遇上智能体:用户体验焕然一新 如…...
Spring开发系统时如何实现上传和下载文件
代码如下 值得注意的是上传时候不需要参数servletRequest而下载时候却需要servletResponse,这是为什么呢? 这是因为文件上传时,客户端通过 HTTP POST 请求将文件数据放在 请求体(Body) 中。Spring MVC 对上传过程进行…...
CyberSecAsia专访CertiK首席安全官:区块链行业亟需“安全优先”开发范式
近日,权威网络安全媒体CyberSecAsia发布了对CertiK首席安全官Wang Tielei博士的专访,双方围绕企业在进军区块链领域时所面临的关键安全风险与防御策略展开深入探讨。 Wang博士在采访中指出,跨链桥攻击、智能合约漏洞以及私钥管理不当&#x…...
Android 直播播放器FFmpeg静态库编译实战指南(NDK r21b)
一、环境准备与验证 1.1 必要组件安装 # Ubuntu环境依赖 sudo apt update sudo apt install -y git make automake autoconf libtool pkg-config curl unzip# NDK r21b下载 mkdir -p ~/android && cd ~/android wget https://dl.google.com/android/repository/andro…...
Linux中 I/O 多路复用机制的边缘触发与水平触发
边缘触发(Edge Triggered, ET)与水平触发(Level Triggered, LT) Linux中I/O复用机制epoll -CSDN博客 Linux中的 I/O 复用机制 select-CSDN博客 在 epoll 或其他 I/O 多路复用机制中,触发模式是指如何触发文件描述符…...
01-jenkins学习之旅-window-下载-安装
1 jenkins简介 百度百科介绍:Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。 [1] Jenkins官网地址 翻译&…...
实战:Dify智能体+Java=自动化运营工具!
我们在运营某个圈子的时候,可能每天都要将这个圈子的“热门新闻”发送到朋友圈或聊天群里,但依靠传统的实现手段非常耗时耗力,我们通常要先收集热门新闻,再组装要新闻内容,再根据内容设计海报等。 那怎么才能简化并高…...
LInux—shell编程
一、Shell 编程核心特性 解释型语言 无需编译,直接由 bash、sh 等解释器逐行执行。 类似 PHP 的解释执行,不同于 C 的编译型。 系统命令集成 可直接调用 Linux 命令(如 ls、grep、awk),实现系统管理自动化。 与 C/…...
C++028(变量的作用域)
变量的作用域 作用域就是程序中变量的作用范围。局部变量的作用域是局部的,如函数体内;全局变量的作用域则是整个程序。 我们前面接触过的变量基本都是局部变量,这些变量在函数体内声明,无法被其他函数所使用。函数的形参也属于…...
计算机三级数据库免费题库
1.免费题库链接 链接: https://pan.baidu.com/s/1oNpgWmkFePUrCS6G7tfpUQ?pwdb1hg 提取码: b1hg 2.安装教程...
Unity Shader入门(更新中)
参考书籍:UnityShader入门精要(冯乐乐著) 参考视频:Bilibili《Unity Shader 入门精要》 写在前面:前置知识需要一些计算机组成原理、线性代数、Unity的基础 这篇记录一些学历过程中的理解和笔记(更新中&…...
NSSCTF-[陇剑杯 2021]webshell(问6)
下载得到pcap文件 放到Wireshark进行分析 先过滤http contains "1.php"&&http.request.method"POST" 追踪HTTP流 将后面的进行解码 得到flag NSSCTF{192.168.239.123}...
vscode git push 记录
1.先在git上建一个仓库 2.在vscode上登录同一账号 配置好ssh 直接使用 git remote add origin gitgithub.com:18053923230/aiRecipe.git (base) PS D:\gitee\cookbook> git push -u origin master Enter passphrase for key /c/Users/Administrator/.ssh/id_ed25519: …...
前端性能优化方案
一、HTML优化策略 1、减少DOM层级 <!-- 避免 --><div><div><div><p>内容</p></div></div></div><!-- 推荐 --><div class"content">内容</div> 原因:嵌套过深会增加渲染…...
前端vscode学习
1.安装python 打开Python官网:Welcome to Python.org 一定要点PATH,要不然要自己设 点击install now,就自动安装了 键盘winR 输入cmd 点击确定 输入python,回车 显示这样就是安装成功了 2.安装vscode 2.1下载软件 2.2安装中文 2.2.1当安…...
python实现web请求与回复
一、作为客户端发送请求(使用requests库) import requests # 发送GET请求 response requests.get("https://api.example.com/data") print("GET响应状态码:", response.status_code) print("GET响应内容:", response.…...
Python实现Web请求与响应
目录 一、Web 请求与响应基础 (一)Web 请求与响应的定义与组成 (二)HTTP 协议概述 (三)常见的 HTTP 状态码 二、Python 的 requests 库 (一)安装 requests 库 (二…...
AI与.NET技术实操系列(六):实现图像分类模型的部署与调用
引言 人工智能(AI)技术的迅猛发展推动了各行各业的数字化转型。图像分类,作为计算机视觉领域的核心技术之一,能够让机器自动识别图像中的物体、场景或特征,已广泛应用于医疗诊断、安防监控、自动驾驶和电子商务等领域…...
PP-YOLOE-SOD学习笔记1
项目:基于PP-YOLOE-SOD的无人机航拍图像检测案例全流程实操 - 飞桨AI Studio星河社区 一、安装环境 先准备新环境py>3.9 1.先cd到源代码的根目录下 2.pip install -r requirements.txt 3.python setup.py install 这一步需要看自己的GPU情况,去飞浆…...
Axure系统原型设计列表版方案
列表页面是众多系统的核心组成部分,承担着数据呈现与基础交互的重要任务。一个优秀的列表版设计,能够极大提升用户获取信息的效率,优化操作体验。下面,我们将结合一系列精心设计的列表版方案图片,深入探讨如何打造出实…...
腾讯音乐二面
ReentrantLock 的源码及实现 ReentrantLock 是 Java 中的一种可重入的互斥锁。它通过 AQS(AbstractQueuedSynchronizer)框架来实现。AQS 使用一个 FIFO 队列来管理获取锁的线程。ReentrantLock 有公平锁和非公平锁两种模式。非公平锁:当线程尝…...
服务器操作系统调优内核参数(方便查询)
fs.aio-max-nr1048576 #此参数限制并发未完成的异步请求数目,应该设置避免I/O子系统故障 fs.file-max1048575 #该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量 fs.inotify.max_user_watches8192000 #表…...
MySQL5.7导入MySQL8.0的文件不成功
文章目录 问题检查原因及解决方法原因解决办法 问题 检查 检查自己的mysql版本自己检查,搜索“0900_ai_ci”,如果能搜索到,说明这个sql文件是从8的版本导出的 原因及解决方法 原因 MySQL 8.0默认使用utf8mb4字符集和utf8mb4_0900_ai_ci排…...
vscode连接WSL卡住
原因:打开防火墙 解决: 使用sudo ufw disable关闭防火墙...
springAI调用deepseek模型使用硅基流动api的配置信息
查看springai的官方文档,调用deepseek的格式如下: spring.ai.deepseek.api-key${your-api-key} spring.ai.deepseek.chat.options.modeldeepseek-chat spring.ai.deepseek.chat.options.temperature0.8 但是硅基流动的格式不是这样,这个伞兵…...
symbol【ES6】
你一闭眼世界就黑了,你不是主角是什么? 目录 什么是Symbol?Symbol特点:创建方法:注意点:不能进行运算:显示调用toString() --没有意义隐式转换boolean 如果属性名冲突了怎么办?o…...
如何用数据可视化提升你的决策力?
在数字化浪潮席卷全球的当下,数据已然成为企业和组织发展的核心资产。然而,单纯的数据堆积犹如未经雕琢的璞玉,难以直接为决策提供清晰有力的支持。数据可视化作为一种强大的工具,能够将海量、复杂的数据转化为直观、易懂的图形、…...
【C++】vector容器实现
目录 一、vector的成员变量 二、vector手动实现 (1)构造 (2)析构 (3)尾插 (4)扩容 (5)[ ]运算符重载 5.1 迭代器的实现: (6&…...
C语言求1到n的和(附带源码和解析)
在C语言中,使用 for 循环求 1 到 n 的和是一个常见的编程任务。这个任务不仅可以帮助初学者理解循环的基本概念,还能培养他们的逻辑思维能力。 要计算 1 到 n 的和,我们需要创建一个循环,从 1 开始,一直累加到 n。for…...
springboot3+vue3融合项目实战-大事件文章管理系统-文章分类也表查询(条件分页)
在pojo实体类中增加pagebean实体类 Data NoArgsConstructor AllArgsConstructor public class PageBean <T>{private Long total;//总条数private List<T> items;//当前页数据集合 }articlecontroller增加代码 GetMappingpublic Result<PageBean<Article&g…...
java中定时任务的实现及使用场景
在 Java 需要中,定时任务的实现方式有单线程模型的 Timer 类、线程池定时任务的 ScheduleExecutorService、spring 框架提供的注解Schedule 定时任务,第三个框架定时任务比如 XX-Job,Quartz 等。 Java 任务调度组件对比与使用指南 一、核心功能对比 特…...
使用 OpenCV 实现哈哈镜效果
在计算机视觉和图像处理领域,OpenCV 提供了非常强大的图像几何变换能力,不仅可以用于纠正图像,还能制造各种“有趣”的视觉效果。今天,我们就来实现一个经典的“哈哈镜”效果,让图像像在游乐园里一样被拉伸、压缩、扭曲…...
【Java高阶面经:微服务篇】9.微服务高可用全攻略:从架构设计到自动容灾
一、架构层:构建抗故障的分布式基石 1.1 多维度冗余设计 1.1.1 跨可用区部署策略 # Kubernetes跨可用区反亲和性配置 apiVersion: apps/v1 kind: Deployment metadata:name: product-service spec:replicas: 3template:spec:affinity:podAntiAffinity:requiredDuringSchedu…...
读一本书第一遍是快读还是细读?
在时间充足且计划对重要书籍进行多遍阅读的前提下,第一遍阅读的策略可以结合**「快读搭建框架」与「标记重点」**,为后续细读奠定基础。以下是具体建议及操作逻辑: 一、第一遍:快读为主,目标是「建立全局认知」 1. 快…...
COMPUTEX 2025 | 广和通5G AI MiFi解决方案助力移动宽带终端迈向AI新未来
随着5G与AI不断融合,稳定高速、智能的移动网络已成为商务、旅行、户外作业等场景的刚需。广和通5G AI MiFi方案凭借领先技术与创新设计,重新定义5G移动网络体验。 广和通5G AI MiFi 方案搭载高通 4nm制程QCM4490平台,融合手机级超低功耗技术…...
JAVA批量发送邮件(含excel内容)
EmailSenderHtmlV1 是读取配置文件《批量发送邮件.xlsx》,配置sheet获取 发件人邮箱 邮箱账号 口令,发送excel数据sheet获取收件人邮箱 抄送人邮箱 邮件标题 第N行开始(N>1,N0默认表头) 第M行结束(M>1,M0默认表头) 附件文件夹…...
MyBatis 关联映射深度解析:_association_ 与 _collection_ 实战教程
一、核心概念与适用场景 在 MyBatis 中,<association> 和 <collection> 用于处理对象间的关联关系,简化复杂查询到对象结构的映射。 标签用途对应关系示例场景<association>映射 单个嵌套对象(“有一个”关系)一对一、多对一员工 (Emp) 属于一个部门 (D…...
NSSCTF [watevrCTF 2019]Wat-sql
90.[watevrCTF 2019]Wat-sql(逻辑漏洞) [watevrCTF 2019]Wat-sql (1) 1.准备 motalymotaly-VMware-Virtual-Platform:~$ file sql sql: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linu…...
C++ 前缀和数组
一. 一维数组前缀和 1.1. 定义 前缀和算法通过预处理数组,计算从起始位置到每个位置的和,生成一个新的数组(前缀和数组)。利用该数组,可以快速计算任意区间的和,快速求出数组中某一段连续区间的和。 1.2. …...
免费使用GPU的探索笔记
多种有免费时长的平台 https://www.cnblogs.com/java-note/p/18760386 Kaggle免费使用GPU的探索 https://www.kaggle.com/ 注册Kaggle账号 访问Kaggle官网,使用邮箱注册账号。 发现gpu都是灰色的 返回home,右上角的头像点开 验证手机号 再次code-you…...
【css】 flex布局基本知识
Flexible Box 模型,是一种一维的布局模型。一个 flexbox 一次只能处理一个维度上的元素布局,一行或者一列。 轴线 flex 属性与主轴和交叉轴有关,通过flex-direction定义 主轴由 flex-direction 定义,可以取 4 个值:…...
3D Gaussian Splatting for Real-Time Radiance Field Rendering——文章方法精解
SfM → Point-NeRF → 3D Gaussian Splatting 🟦SfM Structure-from-Motion(运动恢复结构,简称 SfM)是一种计算机视觉技术,可以: 利用多张从不同角度拍摄的图像,恢复出场景的三维结构和相机的…...