Nacos3 中的 MCP 核心能力还在持续演进中,接下来,Spring AI Alibaba 计划结合 Nacos3 mcp-registry 与 mcp-router 能力,构建更灵活强大的 Agent 开发体验。
微信扫码
添加专属顾问
我要投稿
Spring AI Alibaba 为企业级 AI Agent 带来分布式部署新方案。 核心内容: 1. 通过集成 MCP SDK,简化 Spring Boot 开发者开发 MCP 服务流程 2. 分布式部署需求与微服务架构的一致性分析 3. Spring AI Alibaba MCP 整体方案及其在企业级应用中的实施案例
Spring AI 通过集成 MCP 官方的 java sdk,让 Spring Boot 开发者可以非常方便的开发自己的 MCP 服务,把自己企业内部的业务系统通过标准 MCP 形式发布为 AI Agent 能够接入的工具;另一方面,开发者也可以使用 Spring AI 开发自己的 AI Agent,去接入提供各种能力的 MCP 服务。
在企业级 AI Agent 的应用与落地场景,只是能发布或者调通 MCP 服务是远远不够的,其中一个非常重要的原因就是企业级的系统部署往往都是分布式的,不论是 Agent 还是 MCP Server,作为企业内部的一个个应用,它们都是要部署在多个机器上,要支持分布式的调用(这包括流量的负载均衡、节点变更动态感知等)。这么分析起来,Agent 与 MCP 需要的分布式能力与我们熟知微服务架构基本是一致的,Spring AI MCP 只是解决了 Agent 与 MCP 服务的编码与通信协议问题,我们还需要为 MCP 服务构建起一套地址自动发现、负载均衡调用的体系,这就是 Spring AI Alibaba MCP 整体方案解决的问题,接下来我们将在这篇文章中详细展开。
企业级 MCP 部署需要的分布式能力
Cloud Native
市面上有很多公开可用的 MCP 服务,如生活类的高德地图、天气预报等 MCP 服务,这类服务的一个特点是他们都通过公开可访问的域名地址提供服务,因此对于消费端来说只需要配置访问地址即可使用。
区别于此类公共服务,Spring AI Alibaba MCP 解决的是企业内部 MCP 服务的部署与访问架构问题,接下来我们通过一个 Agent 的开发示例,一起来看一下 Spring AI Alibaba MCP 的整体架构。
在整个系统中,我们有一个使用 Spring AI Alibaba 开发的 MCP Server 应用,它为企业内提供机票预订的服务,该应用部署在多个实例,在实例启动过程中,Spring AI Alibaba 框架会将当前 IP 实例、工具列表等元数据注册到 Nacos,机票助手是一个基于 Spring AI Alibaba 开发的智能体应用,借助 Spring AI Alibaba 封装的分布式 MCP 能力,机票助手能够动态感知 MCP 订票系统的实例变化、工具变化,并基于内置的负载均衡策略对多个 MCP 实例节点发起调用。
适用业务场景
Cloud Native
对于任何需要在企业内部构建 MCP 业务系统的开发者,都可以使用 Spring AI Alibaba MCP。
接下来,我们从企业现实情况出发,分析在不同场景下,应该如何发布自己的 MCP 服务,并将 Agent 接入 MCP 服务:
通过 MCP 接入存量业务系统
对于存量应用或接口的接入,我们推荐使用增加代理应用的模式实现平滑接入,如下架构图所示,在存量应用和 Agent 之间部署一个新应用,这个应用主要有两个职责:
以下是一个代码片段,展示如何在新开发的 MCP Server 应用中定义 MCP 服务并代理转发到后端微服务(rest 或 dubbo):
public RestTemplate restTemplate() {return new RestTemplate();}// ......private RestTemplate restTemplate;(description = "获取指定订单号的订单详情")public Order getAirQuality((description = "订单号") String orderId) {return restTemplate.getForObject("http://order-service/order?id" + orderId, Order.class)}
其中,restTemplate 基于 Spring Cloud Alibaba 的服务发现能力,可以动态发现后端 order-service 服务与实例地址。而 @Tool 和 @ToolParam 注解将发布为可被 Agent 使用的 MCP 工具。
开发全新 MCP
如果您不需要考虑存量的应用或服务,则整体会更简单,只需要使用 Spring AI Alibaba MCP 开发一个 MCP server,并将业务逻辑发布为 MCP tool 就可以了。
以下是使用 Spring AI Alibaba 开发的整体架构图:
完整开发指南
Cloud Native
以下示例完整源码地址:
https://github.com/springaialibaba/spring-ai-alibaba-examples/tree/main/spring-ai-alibaba-mcp-example/starter-example
首先,您需要安装部署 Nacos,访问 Nacos Server 控制台,创建 MCP 服务专属的命名空间 nacos-default-mcp。
注册 nacos-default-mcp 命名空间后,记住命名空间 ID:9ba5f1aa-b37d-493b-9057-72918a40ef35
开发 Spring AI Alibaba MCP Server
添加如下 spring-ai-alibaba-starter-nacos-mcp-server 关键 starter 依赖到项目中:
<properties> <spring-ai.version>1.0.0-M8</spring-ai.version> <ai-alibaba.version>1.0.0-M8.1-SNAPSHOT</ai-alibaba.version></properties><dependencies> <dependency> <groupId>com.alibaba.cloud.ai</groupId> <artifactId>spring-ai-alibaba-starter-nacos-mcp-server</artifactId> <version>${ai-alibaba.version}</version> </dependency></dependencies>
application.yml 文件在 application.yml 文件中,增加 Nacos 地址配置,这样应用就可以连接到 Nacos Server 并实现 MCP 地址与元数据自动注册。
server:port: ${SERVER_PORT:19000}spring:application:name: mcp-server-provider---spring:main:banner-mode: offai:mcp:server:name: mcp-server-providerversion: 1.0.1sse-message-endpoint: /mcp/messages_type: SYNCalibaba:mcp:nacos:enabled: trueserver-addr: 127.0.0.1:8848username: nacospassword: nacosregistry:service-namespace: 9ba5f1aa-b37d-493b-9057-72918a40ef35_# 调试日志_logging:level:io:modelcontextprotocol:client: DEBUGspec: DEBUGserver: DEBUG
这里注意两个配置:
打开 Nacos 控制台,可以看到 MCP Server 自动注册服务与实例信息。
打开 Nacos 控制台,可以查看 MCP Server 自动注册上来的元数据信息。
开发 Spring AI Alibaba MCP Client
<properties> <spring-ai.version>1.0.0-M8</spring-ai.version> <ai-alibaba.version>1.0.0-M8.1-SNAPSHOT</ai-alibaba.version></properties><dependencies> <dependency> <groupId>com.alibaba.cloud.ai</groupId> <artifactId>spring-ai-alibaba-starter-nacos-mcp-client</artifactId> <version>${ai-alibaba.version}</version> </dependency></dependencies>spring-ai-alibaba-starter-nacos-mcp-client 依赖。在 application.yml 文件中,增加 Nacos 地址配置,这样应用就可以连接到 Nacos Server 并实现 MCP 地址与元数据自动发现。
server:port: 8080spring:application:name: mcp-client-webfluxai:openai:api-key: ${DASHSCOPE_API_KEY}base-url: https://dashscope.aliyuncs.com/compatible-modechat:options:model: qwen-maxalibaba:mcp:nacos:enabled: trueservice-namespace: 9ba5f1aa-b37d-493b-9057-72918a40ef35 # nacos的命名空间IDserver-addr: 127.0.0.1:8848username: nacospassword: nacosclient:sse:connections:server1: mcp-server-provider # 对应的MCP Server服务名mcp:client:enabled: truename: mcp-client-webfluxversion: 0.0.1initialized: truerequest-timeout: 600snacos-enabled: truetype: synctoolcallback:enabled: trueroot-change-notification: true# 调试日志logging:level:io:modelcontextprotocol:client: DEBUGspec: DEBUG
请注意,我们需要在配置中指定要连接的 MCP 服务,这样 Client 将只订阅该服务相关地址与元数据的更新。
client: sse: connections: server1: mcp-server-provider # 对应的MCP Server服务名
MCP Client 注入
private List<LoadbalancedMcpSyncClient> mcpClients; // For sync client// ORprivate List<LoadbalancedMcpAsyncClient> mcpClients; // For async client
ToolCallbackProvider 注入
# sync类型,Bean名称为"loadbalancedSyncMcpToolCallbacks"@Autowiredprivate LoadbalancedSyncMcpToolCallbackProvider toolCallbackProvider;ToolCallback[] toolCallbacks = toolCallbackProvider.getToolCallbacks();// OR# Async类型,Bean名称为"loadbalancedMcpAsyncToolCallbacks"@Autowiredprivate LoadbalancedAsyncMcpToolCallbackProvider toolCallbackProvider;ToolCallback[] toolCallbacks = toolCallbackProvider.getToolCallbacks();
MCP Client 注入
ToolCallbackProvider 注入
总结
Cloud Native
Spring AI Alibaba MCP 联合 Nacos,解决了企业级 AI Agent 的应用与落地场景中 MCP 分布式部署与动态更新的关键问题,其中包括流量的负载均衡、节点变更动态感知等关键解决方案。
Nacos3 中的 MCP 核心能力还在持续演进中,接下来,Spring AI Alibaba 计划结合 Nacos3 mcp-registry 与 mcp-router 能力,构建更灵活强大的 Agent 开发体验。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-10-29
KnowFlow 无缝衔接 Dify,分块支持添加父标题、Title 切块支持自定义标题层级切割、图片理解新增支持上下文
2025-10-28
邪修榨干元宝AI录音笔:白天工作,晚上陪聊
2025-10-27
免费又好用的AI录音笔都出来了,这下哪还有理由不学习?
2025-10-24
Aiops探索:我用Dify结合k8s的api做了一个非常简单的Aiops智能体
2025-10-24
阿里夸克AI眼镜开售:叠加补贴后3699元,它能打破AI眼镜的魔咒吗?
2025-10-23
Dify平台集成阿里云AI安全护栏,构建AI Runtime安全防线
2025-10-13
Dify + 飞书组合拳:企业级 AI 安全大脑落地全指南,助力安管效率提升 300%
2025-09-23
专访Plaud中国区CEO:我们只做“必须做”和“不做要死”的事
2025-09-19
2025-09-02
2025-10-13
2025-09-02
2025-10-24
2025-09-05
2025-08-25
2025-09-02
2025-08-22
2025-08-28