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; + } + }