diff --git a/pom.xml b/pom.xml
index 926b1aab9d..6d740640d5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -229,7 +229,7 @@
2.5.1
- 3.0.2
+ 3.0.3
1.0.4
2023.0.1.3
diff --git a/spring-ai-alibaba-mcp/spring-ai-alibaba-mcp-common/src/main/java/com/alibaba/cloud/ai/mcp/nacos/service/NacosMcpOperationService.java b/spring-ai-alibaba-mcp/spring-ai-alibaba-mcp-common/src/main/java/com/alibaba/cloud/ai/mcp/nacos/service/NacosMcpOperationService.java
index c9a395a40e..6c26d6fbb6 100644
--- a/spring-ai-alibaba-mcp/spring-ai-alibaba-mcp-common/src/main/java/com/alibaba/cloud/ai/mcp/nacos/service/NacosMcpOperationService.java
+++ b/spring-ai-alibaba-mcp/spring-ai-alibaba-mcp-common/src/main/java/com/alibaba/cloud/ai/mcp/nacos/service/NacosMcpOperationService.java
@@ -174,7 +174,7 @@ public McpEndpointInfo selectEndpoint(McpServiceRef mcpServiceRef) throws NacosE
return mcpEndpointInfo;
}
- public boolean createMcpServer(String mcpName, McpServerBasicInfo serverSpec, McpToolSpecification toolSpec,
+ public String createMcpServer(String mcpName, McpServerBasicInfo serverSpec, McpToolSpecification toolSpec,
McpEndpointSpec endpointSpec) throws NacosException {
endpointSpec.getData().put("namespaceId", this.namespace);
return aiMaintainerService.createMcpServer(this.namespace, mcpName, serverSpec, toolSpec, endpointSpec);
diff --git a/spring-ai-alibaba-mcp/spring-ai-alibaba-mcp-registry/src/main/java/com/alibaba/cloud/ai/mcp/discovery/client/transport/LoadbalancedMcpAsyncClient.java b/spring-ai-alibaba-mcp/spring-ai-alibaba-mcp-registry/src/main/java/com/alibaba/cloud/ai/mcp/discovery/client/transport/LoadbalancedMcpAsyncClient.java
index 7b9066471b..2a81f140a2 100644
--- a/spring-ai-alibaba-mcp/spring-ai-alibaba-mcp-registry/src/main/java/com/alibaba/cloud/ai/mcp/discovery/client/transport/LoadbalancedMcpAsyncClient.java
+++ b/spring-ai-alibaba-mcp/spring-ai-alibaba-mcp-registry/src/main/java/com/alibaba/cloud/ai/mcp/discovery/client/transport/LoadbalancedMcpAsyncClient.java
@@ -354,8 +354,8 @@ private void updateAll(NacosMcpServerEndpoint newServerEndpoint) {
private McpAsyncClient clientByEndpoint(McpEndpointInfo mcpEndpointInfo, String exportPath) {
McpAsyncClient asyncClient;
-
- String baseUrl = "http://" + mcpEndpointInfo.getAddress() + ":" + mcpEndpointInfo.getPort();
+ String protocol = NacosMcpClientUtils.checkProtocol(mcpEndpointInfo);
+ String baseUrl = protocol + "://" + mcpEndpointInfo.getAddress() + ":" + mcpEndpointInfo.getPort();
WebClient.Builder webClientBuilder = webClientBuilderTemplate.clone().baseUrl(baseUrl);
WebFluxSseClientTransport transport;
diff --git a/spring-ai-alibaba-mcp/spring-ai-alibaba-mcp-registry/src/main/java/com/alibaba/cloud/ai/mcp/discovery/client/transport/LoadbalancedMcpSyncClient.java b/spring-ai-alibaba-mcp/spring-ai-alibaba-mcp-registry/src/main/java/com/alibaba/cloud/ai/mcp/discovery/client/transport/LoadbalancedMcpSyncClient.java
index 5d58995978..ea0a15ecfd 100644
--- a/spring-ai-alibaba-mcp/spring-ai-alibaba-mcp-registry/src/main/java/com/alibaba/cloud/ai/mcp/discovery/client/transport/LoadbalancedMcpSyncClient.java
+++ b/spring-ai-alibaba-mcp/spring-ai-alibaba-mcp-registry/src/main/java/com/alibaba/cloud/ai/mcp/discovery/client/transport/LoadbalancedMcpSyncClient.java
@@ -294,7 +294,8 @@ public void setLoggingLevel(McpSchema.LoggingLevel loggingLevel) {
private McpSyncClient clientByEndpoint(McpEndpointInfo mcpEndpointInfo, String exportPath) {
McpSyncClient syncClient;
- String baseUrl = "http://" + mcpEndpointInfo.getAddress() + ":" + mcpEndpointInfo.getPort();
+ String protocol = NacosMcpClientUtils.checkProtocol(mcpEndpointInfo);
+ String baseUrl = protocol + "://" + mcpEndpointInfo.getAddress() + ":" + mcpEndpointInfo.getPort();
WebClient.Builder webClientBuilder = webClientBuilderTemplate.clone().baseUrl(baseUrl);
// Using the build method with link tracking
diff --git a/spring-ai-alibaba-mcp/spring-ai-alibaba-mcp-registry/src/main/java/com/alibaba/cloud/ai/mcp/discovery/client/utils/NacosMcpClientUtils.java b/spring-ai-alibaba-mcp/spring-ai-alibaba-mcp-registry/src/main/java/com/alibaba/cloud/ai/mcp/discovery/client/utils/NacosMcpClientUtils.java
index 8ac8ef5b39..1d554d0030 100644
--- a/spring-ai-alibaba-mcp/spring-ai-alibaba-mcp-registry/src/main/java/com/alibaba/cloud/ai/mcp/discovery/client/utils/NacosMcpClientUtils.java
+++ b/spring-ai-alibaba-mcp/spring-ai-alibaba-mcp-registry/src/main/java/com/alibaba/cloud/ai/mcp/discovery/client/utils/NacosMcpClientUtils.java
@@ -27,4 +27,17 @@ public static String getMcpEndpointInfoId(McpEndpointInfo mcpEndpointInfo, Strin
return mcpEndpointInfo.getAddress() + "@@" + mcpEndpointInfo.getPort() + "@@" + exportPath;
}
+ public static String checkProtocol(McpEndpointInfo mcpEndpointInfo) {
+ String protocol = mcpEndpointInfo.getProtocol();
+ if (protocol == null || !"http".equals(protocol) && !"https".equals(protocol)) {
+ if (mcpEndpointInfo.getPort() == 443 || mcpEndpointInfo.getPort() == 8443) {
+ protocol = "https";
+ }
+ else {
+ protocol = "http";
+ }
+ }
+ return protocol;
+ }
+
}