MCP云托管最优解,揭秘国内最大MCP中文社区背后的运行时

作者:封崇

近期,中国第一AI开源社区魔搭(ModelScope)推出全新MCP广场,上架千余款热门的 MCP 服务。从当下火热的高德地图、网页抓取再到独家的支付宝,开发者/机构可以查看近1500种MCP的功能与应用场景,并通过MCP实验场直接上手使用。魔搭的加入无疑对国内 MCP 的发展开启了加速键。

既支持阿里云百炼 MCP服务之后,作为云上托管 MCP 服务的最佳运行时,函数计算 FC 为魔搭(ModelScope) MCP 提供弹性调用能力,实现开源 MCP Server 一键托管到云上,函数计算 FC 会准备好计算资源,并以弹性、可靠的方式运行 MCP 服务,按实际调用时长和次数计费,用户可以直接访问函数计算交付的 SSE 服务。欢迎您在魔搭(ModelScope)和函数计算 FC 上体验 MCP 服务。

云上托管 MCP 服务有什么挑战?

要回答这个问题,首先请跟着我在 ModelScope MCP 广场上创建一个 MCP 服务,并测试,对比自建 MCP 服务,你发现了什么?

1.在ModelScope MCP广场,选择一个MCP服务(比如高德地图)

2.输入高德地图的 API-Key,点击链接

大概1s左右时间,魔搭 MCP 就交付了一个SSE地址,可以用于在 client 进行测试

3.添加MCP服务后,去 MCP Playground 上测试

规模化托管多租 MCP 服务的问题

如果你更换一个其他的 MCP 服务或者换个账号,重复这个流程,发现平台生成的 MCP 地址是完全不同的。这说明魔搭的 MCP 服务是多租隔离的,为每个租户的每个 MCP 服务生成一个独立的 SSE 地址。 这个过程看似简单,实际上背后的技术挑战是非常高的,我们提炼下魔搭的具体需求:

1.上架大量的 MCP 服务,大部分都是开源 MCP 并且采用STDIO模式,使用uv、npx命令就能跑起来;

2.每个托管的 MCP 服务都要自动生成独立的 SSE 测试地址,生成速度要足够快。用户点击测试1s 左右就要完成地址的生成;

3.生成好的 MCP 服务地址能够被魔搭的 Playground 调用,要求托管的 MCP 服务稳定可靠;

要满足这些需求,对于底层的计算平台要求非常高,如果采用纯自建的方案

1.自购服务器:实时弹出服务器时间都是分钟级的,无法满足秒级启动的需求,需要提前创建好一批服务。这样在稀疏调用时会产生极大的资源浪费。另外MCP服务涉及用户的敏感信息需要在启动时加载,因此多个租户复用相同实例来提升利用率的方案是不安全的;

2.自建网关,为每个 MCP 服务创建API并关联后端地址,API需要频繁的创建和销毁,管理API的成本很高;

那么有没有既省资源成本,又省运维成本,还能满足需求的解决方案呢?魔搭选择了函数计算作为 MCP 的运行时托管,并且在短时间内上线了MCP市场, 接下来我们揭秘下魔搭选择函数计算的原因。

为什么魔搭会选择函数计算支持MCP服务?

函数计算作为全托管的 Serverless 服务,有以下运行MCP服务的天然优势:

  1. 事件触发,内置网关,HTTP触发器自动生成公网及内网的http地址:解决MCP网关调用侧需求;

  2. 毫秒级弹性能力,按请求付费,最小支持0.05 vCPU/128M的实例规格:解决MCP服务弹性调度的需求;

  3. 运行时支持单实例多并发:一个实例serve多个MCP请求,减少实例频繁冷启动的开销;

  4. 多租安全隔离:MicroVM安全沙箱,提供虚拟机级别隔离能力;

  5. 完善的语言支持:Node.js、Python、Java、Golang、C#。对于Node.js、Python解释型语言通过WebIDE可以实现快速的调试和运维;

但是这些对于托管MCP还不够,函数计算上线了完整的 MCP 运行时扩展能力 ,针对MCP的特点又做了如下升级:

发布SSE会话亲和性能力,提升 MCP SSE 访问的可靠性

SSE(Server-Sent Events)是一种基于 HTTP 的服务器到客户端的单向实时通信协议:

  • MCP客户端的connect 回向服务端发送Get /sse请求,服务端建立SSE长连接,并且返回带有sessionid的事件流;

  • 后续的客户端请求通过post /message?sessionId=xxx 向服务端发送消息,服务端通过SSE的长连接持续向客户端推送数据;

SSE本质上是一种有状态通信,由服务端维护会话的状态,当同一个会话的客户端post请求调度到不同的服务端实例时,由于会话状态不匹配会到导致服务端连接失败,最终影响client的效果。

Serverless 的弹性调度本身是无状态的,其负载均衡不会感知到SSE的会话状态,因此使用Serverless计算环境托管MCP server时,保证SSE会话的亲和性是一个关键挑战,现在社区以及其他厂商也正在攻克:

  • smithery.ai 采用WebSocket替换了SSE,WebSocket作为全双工通信自带会话亲和性能力,即使突增流量弹出新的实例,相同的client始终会连到同一个服务端实例。WebSocket对于 Serverless运行环境的适配确实更加友好,各个云厂商的Serverless平台也都支持WebSocket,但这种方式的缺点是对client有侵入,需要client进行改造;

  • MCP社区上有个关于MCP Hosting的讨论,关于是否引入WebSocket各方的态度不一,以Glama为代表认为SSE在扩展性要更优;

  • MCP 官方3月底推出了最新的Streamable HTTP协议,计划替代旧版 HTTP+SSE,支持双向流式通信,简化端点管理(单一 /mcp端点),但同样支持主动开启SSE长连接以及旧版SSE协议的向后兼容。

函数计算上线了会话亲和性特性,并且首先支持了MCP SSE策略,保证同一个MCP session请求永远调度到同一个实例。

当开启会话亲和性后,同一个sessionid的请求会被路由到同一个函数实例上

没开启会话亲和性时,突增流量会很容易导致同一个client的sessionid访问到不同实例上,造成5xx错误。

会话亲和性当前处于Beta阶段,目前还在部分region进行灰度,近期会对全部region开放。FaaS环境下的会话亲和性实现非常复杂,不光要考虑session的调度,还要考虑各种场景下的异常行为,函数计算后面会揭秘这部分的技术实现。

函数计算的会话亲和性是针对有状态连接的一种通用能力,并非和MCP SSE完全绑定。官方的Streamable HTTP 针对SSE做了重大升级,但同样支持session的有状态会话,函数计算的会话亲和性后续同样会支持Streamble HTTP的会话亲和性策略。

支持将传统 STDIO 模式的 MCP server 自动转换成SSE服务,业务零改造

通过FunctionAI,可以配置MCP服务的协议类型。当配置STDIO协议时,部署后会自定生成SSE访问地址,函数计算会启动SSE代理,将SSE请求转发到STDIO服务上。

发布Bearer鉴权能力,传统STDIO无鉴权能力的MCP server托管后自带鉴权能力

通过FunctionAI,只需要开启鉴权配置,就可以使用平台提供的只读Token访问MCP 服务,让传统STDIO的服务自带鉴权能力。

发布 Debian12 运行时

函数计算发布了custom.debian12运行时,并且支持了Python3.12/Python3.11/Python3.10、Node.js22/Node.js20/Node.js18、Java11/Java17/Java21 主流运行时版本,内核更小启动速度更快,对于MCP npx/uv直接启动的场景更加友好。

总结

从百炼再到魔搭,越来越多的平台选择了函数计算作为云上MCP托管的解决方案,头部平台的规模化实践印证了 Serverless 在MCP托管领域的技术领先性,函数计算针对MCP做的多项优化价值正在逐渐体现,随着更多的落地案例,函数计算会发布更多AI应用相关的功能,敬请期待。如果您有更多问题与我们交流请添加钉钉群(群号:64970014484)。

原创作者: Serverless 转载于: https://www.cnblogs.com/Serverless/p/18846339
基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)内容概要:本文围绕“基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究”展开,提出了一种结合数据驱动方法与Koopman算子理论的递归神经网络(RNN)模型线性化方法,旨在提升纳米定位系统的预测控制精度与动态响应能力。研究通过构建数据驱动的线性化模型,克服了传统非线性系统建模复杂、计算开销大的问题,并在Matlab平台上实现了完整的算法仿真与验证,展示了该方法在高精度定位控制中的有效性与实用性。; 适合人群:具备一定自动化、控制理论或机器学习背景的科研人员与工程技术人员,尤其是从事精密定位、智能控制、非线性系统建模与预测控制相关领域的研究生与研究人员。; 使用场景及目标:①应用于纳米级精密定位系统(如原子力显微镜、半导体制造设备)中的高性能预测控制;②为复杂非线性系统的数据驱动建模与线性化提供新思路;③结合深度学习与经典控制理论,推动智能控制算法的实际落地。; 阅读建议:建议读者结合Matlab代码实现部分,深入理解Koopman算子与RNN结合的建模范式,重点关注数据预处理、模型训练与控制系统集成等关键环节,并可通过替换实际系统数据进行迁移验证,以掌握该方法的核心思想与工程应用技巧。
基于粒子群算法优化Kmeans聚类的居民用电行为分析研究(Matlb代码实现)内容概要:本文围绕基于粒子群算法(PSO)优化Kmeans聚类的居民用电行为分析展开研究,提出了一种结合智能优化算法与传统聚类方法的技术路径。通过使用粒子群算法优化Kmeans聚类的初始聚类中心,有效克服了传统Kmeans算法易陷入局部最优、对初始值敏感的问题,提升了聚类的稳定性和准确性。研究利用Matlab实现了该算法,并应用于居民用电数据的行为模式识别与分类,有助于精细化电力需求管理、用户画像构建及个性化用电服务设计。文档还提及相关应用场景如负荷预测、电力系统优化等,并提供了配套代码资源。; 适合人群:具备一定Matlab编程基础,从事电力系统、智能优化算法、数据分析等相关领域的研究人员或工程技术人员,尤其适合研究生及科研人员。; 使用场景及目标:①用于居民用电行为的高效聚类分析,挖掘典型用电模式;②提升Kmeans聚类算法的性能,避免局部最优问题;③为电力公司开展需求响应、负荷预测和用户分群管理提供技术支持;④作为智能优化算法与机器学习结合应用的教学与科研案例。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,深入理解PSO优化Kmeans的核心机制,关注参数设置对聚类效果的影响,并尝试将其应用于其他相似的数据聚类问题中,以加深理解和拓展应用能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值