This is an automated email from the ASF dual-hosted git repository.

terrymanu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 6dc8994f5d4 Refactor MCP transport type (#39176)
6dc8994f5d4 is described below

commit 6dc8994f5d4eacb766a93109f1f1cae293037f48
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Jul 18 13:45:42 2026 +0800

    Refactor MCP transport type (#39176)
---
 .../src/main/resources/conf/mcp-http-docker.yaml   |  2 +-
 .../mcp/src/main/resources/conf/mcp-http.yaml      |  2 +-
 .../shardingsphere-mcp/configuration.cn.md         |  8 +++---
 .../shardingsphere-mcp/configuration.en.md         |  8 +++---
 .../shardingsphere-mcp/deployment.cn.md            |  4 +--
 .../shardingsphere-mcp/deployment.en.md            |  4 +--
 .../mcp/api/transport/MCPTransportType.java        | 11 +-------
 .../mcp/api/transport/MCPTransportTypeTest.java    | 32 ----------------------
 .../mcp/bootstrap/MCPRuntimeLauncher.java          |  7 +++--
 .../swapper/YamlMCPLaunchConfigurationSwapper.java |  2 +-
 .../validator/MCPLaunchConfigurationValidator.java |  2 +-
 .../mcp/bootstrap/MCPBootstrapTest.java            |  2 +-
 .../mcp/bootstrap/MCPRuntimeLauncherTest.java      |  4 +--
 .../config/MCPLaunchConfigurationTest.java         | 18 ++++++------
 .../config/loader/MCPConfigurationLoaderTest.java  |  4 +--
 .../YamlMCPLaunchConfigurationSwapperTest.java     | 14 +++++-----
 .../MCPResourceSpecificationFactoryTest.java       |  2 +-
 .../AbstractMCPToolSpecificationFactoryTest.java   |  2 +-
 .../tool/MCPToolElicitationFlowTest.java           |  6 ++--
 .../tool/MCPToolSpecificationFactoryTest.java      |  4 +--
 .../server/http/StreamableHttpMCPServerTest.java   |  2 +-
 .../http/StreamableHttpMCPServerWireTest.java      |  2 +-
 .../handler/capability/RuntimeStatusHandler.java   | 12 ++++----
 .../MCPFeatureRuntimeRequestContextTest.java       |  6 ++--
 .../mcp/core/context/MCPRuntimeContextTest.java    |  2 +-
 .../mcp/core/resource/ResourceTestDataFactory.java |  2 +-
 .../capability/RuntimeStatusHandlerTest.java       |  4 +--
 .../handler/workflow/WorkflowPlanHandlerTest.java  |  2 +-
 .../suite/MCPBuilderEvaluationArtifactTest.java    |  2 +-
 .../AbstractHttpProtocolOnlyE2ETest.java           |  2 +-
 .../PackagedDistributionTestSupport.java           |  2 +-
 .../PackagedDistributionTestSupportTest.java       |  4 +--
 .../AbstractConfigBackedRuntimeE2ETest.java        |  2 +-
 .../llm/evaluation/mcp-builder-evaluation.xml      |  2 +-
 34 files changed, 73 insertions(+), 111 deletions(-)

diff --git a/distribution/mcp/src/main/resources/conf/mcp-http-docker.yaml 
b/distribution/mcp/src/main/resources/conf/mcp-http-docker.yaml
index 122918a5d6d..32666d2e143 100644
--- a/distribution/mcp/src/main/resources/conf/mcp-http-docker.yaml
+++ b/distribution/mcp/src/main/resources/conf/mcp-http-docker.yaml
@@ -16,7 +16,7 @@
 #
 
 transport:
-  type: STREAMABLE_HTTP
+  type: HTTP
   http:
     bindHost: 0.0.0.0
     port: 18088
diff --git a/distribution/mcp/src/main/resources/conf/mcp-http.yaml 
b/distribution/mcp/src/main/resources/conf/mcp-http.yaml
index 35dcb45485c..979a2ccf8ca 100644
--- a/distribution/mcp/src/main/resources/conf/mcp-http.yaml
+++ b/distribution/mcp/src/main/resources/conf/mcp-http.yaml
@@ -14,7 +14,7 @@
 # limitations under the License.
 
 transport:
-  type: STREAMABLE_HTTP
+  type: HTTP
   http:
     # Use 127.0.0.1 for local debugging. Bind to a controlled intranet or 
container interface only behind a trusted gateway.
     bindHost: 127.0.0.1
diff --git 
a/docs/document/content/user-manual/shardingsphere-mcp/configuration.cn.md 
b/docs/document/content/user-manual/shardingsphere-mcp/configuration.cn.md
index 4a5d0dc4b83..c4a59d43c38 100644
--- a/docs/document/content/user-manual/shardingsphere-mcp/configuration.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-mcp/configuration.cn.md
@@ -14,7 +14,7 @@ HTTP 示例:
 
 ```yaml
 transport:
-  type: STREAMABLE_HTTP
+  type: HTTP
   http:
     bindHost: 127.0.0.1
     port: 18088
@@ -30,8 +30,8 @@ transport:
 
 | 配置项                           | 说明                                           
                                                   |
 
|-------------------------------|-------------------------------------------------------------------------------------------------|
-| `transport.type`              | 传输方式,支持 `STREAMABLE_HTTP` 和 `STDIO`。         
                                                   |
-| `transport.http`              | HTTP 传输配置,只在 `transport.type` 为 
`STREAMABLE_HTTP` 时生效。                                          |
+| `transport.type`              | 传输方式,支持 `HTTP` 和 `STDIO`。                    
                                                   |
+| `transport.http`              | HTTP 传输配置,只在 `transport.type` 为 `HTTP` 时生效。  
                                                   |
 | `transport.http.bindHost`     | HTTP 监听地址,默认值为 
`127.0.0.1`。`127.0.0.1`、`localhost`、`::1` 只允许本机访问;`0.0.0.0` 或指定内网 IP 
允许对应网络接口访问。 |
 | `transport.http.port`         | HTTP 监听端口,默认值为 `18088`。                      
                                                   |
 | `transport.http.endpointPath` | HTTP 端点路径,默认值为 `/mcp`。                       
                                                   |
@@ -43,7 +43,7 @@ transport:
 
 ```yaml
 transport:
-  type: STREAMABLE_HTTP
+  type: HTTP
   http:
     sessionAttributionSource:
       subjectHeader: X-ShardingSphere-MCP-Subject
diff --git 
a/docs/document/content/user-manual/shardingsphere-mcp/configuration.en.md 
b/docs/document/content/user-manual/shardingsphere-mcp/configuration.en.md
index 087702535d0..435b8230a24 100644
--- a/docs/document/content/user-manual/shardingsphere-mcp/configuration.en.md
+++ b/docs/document/content/user-manual/shardingsphere-mcp/configuration.en.md
@@ -14,7 +14,7 @@ HTTP example:
 
 ```yaml
 transport:
-  type: STREAMABLE_HTTP
+  type: HTTP
   http:
     bindHost: 127.0.0.1
     port: 18088
@@ -30,8 +30,8 @@ transport:
 
 | Configuration item            | Description                                  
                                                                                
                       |
 
|-------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|
-| `transport.type`              | Transport type. Supported values are 
`STREAMABLE_HTTP` and `STDIO`.                                                  
                               |
-| `transport.http`              | HTTP transport configuration, used only when 
`transport.type` is `STREAMABLE_HTTP`.                                          
                       |
+| `transport.type`              | Transport type. Supported values are `HTTP` 
and `STDIO`.                                                                    
                        |
+| `transport.http`              | HTTP transport configuration, used only when 
`transport.type` is `HTTP`.                                                     
                       |
 | `transport.http.bindHost`     | HTTP bind host. Defaults to `127.0.0.1`. 
Loopback values allow local access only. `0.0.0.0` or an intranet IP allows 
access through that interface. |
 | `transport.http.port`         | HTTP bind port. The default value is 
`18088`.                                                                        
                               |
 | `transport.http.endpointPath` | HTTP endpoint path. The default value is 
`/mcp`.                                                                         
                           |
@@ -43,7 +43,7 @@ This configuration does not provide authentication or 
authorization. Authenticat
 
 ```yaml
 transport:
-  type: STREAMABLE_HTTP
+  type: HTTP
   http:
     sessionAttributionSource:
       subjectHeader: X-ShardingSphere-MCP-Subject
diff --git 
a/docs/document/content/user-manual/shardingsphere-mcp/deployment.cn.md 
b/docs/document/content/user-manual/shardingsphere-mcp/deployment.cn.md
index be24ee57837..f978ec063c7 100644
--- a/docs/document/content/user-manual/shardingsphere-mcp/deployment.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-mcp/deployment.cn.md
@@ -37,7 +37,7 @@ HTTP 模式在容器中运行时,`bindHost` 应绑定到容器可暴露的网
 
 ```yaml
 transport:
-  type: STREAMABLE_HTTP
+  type: HTTP
   http:
     bindHost: 0.0.0.0
     port: 18088
@@ -104,7 +104,7 @@ ShardingSphere-MCP 配置示例:
 
 ```yaml
 transport:
-  type: STREAMABLE_HTTP
+  type: HTTP
   http:
     bindHost: 127.0.0.1
     port: 18088
diff --git 
a/docs/document/content/user-manual/shardingsphere-mcp/deployment.en.md 
b/docs/document/content/user-manual/shardingsphere-mcp/deployment.en.md
index ddafb5fb581..a574c7996fa 100644
--- a/docs/document/content/user-manual/shardingsphere-mcp/deployment.en.md
+++ b/docs/document/content/user-manual/shardingsphere-mcp/deployment.en.md
@@ -37,7 +37,7 @@ When HTTP mode runs in a container, `bindHost` should bind to 
a network interfac
 
 ```yaml
 transport:
-  type: STREAMABLE_HTTP
+  type: HTTP
   http:
     bindHost: 0.0.0.0
     port: 18088
@@ -104,7 +104,7 @@ ShardingSphere-MCP configuration example:
 
 ```yaml
 transport:
-  type: STREAMABLE_HTTP
+  type: HTTP
   http:
     bindHost: 127.0.0.1
     port: 18088
diff --git 
a/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/transport/MCPTransportType.java
 
b/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/transport/MCPTransportType.java
index 2ee4646e596..281b7b80829 100644
--- 
a/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/transport/MCPTransportType.java
+++ 
b/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/transport/MCPTransportType.java
@@ -17,19 +17,10 @@
 
 package org.apache.shardingsphere.mcp.api.transport;
 
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-
 /**
  * MCP transport type supported by ShardingSphere MCP runtime.
  */
-@RequiredArgsConstructor
-@Getter
 public enum MCPTransportType {
     
-    STREAMABLE_HTTP("http"),
-    
-    STDIO("stdio");
-    
-    private final String value;
+    HTTP, STDIO
 }
diff --git 
a/mcp/api/src/test/java/org/apache/shardingsphere/mcp/api/transport/MCPTransportTypeTest.java
 
b/mcp/api/src/test/java/org/apache/shardingsphere/mcp/api/transport/MCPTransportTypeTest.java
deleted file mode 100644
index 0d0d0a38b4f..00000000000
--- 
a/mcp/api/src/test/java/org/apache/shardingsphere/mcp/api/transport/MCPTransportTypeTest.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.mcp.api.transport;
-
-import org.junit.jupiter.api.Test;
-
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.is;
-
-class MCPTransportTypeTest {
-    
-    @Test
-    void assertValues() {
-        assertThat(MCPTransportType.STREAMABLE_HTTP.getValue(), is("http"));
-        assertThat(MCPTransportType.STDIO.getValue(), is("stdio"));
-    }
-}
diff --git 
a/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/MCPRuntimeLauncher.java
 
b/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/MCPRuntimeLauncher.java
index e7fa59933be..c2393e47443 100644
--- 
a/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/MCPRuntimeLauncher.java
+++ 
b/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/MCPRuntimeLauncher.java
@@ -31,6 +31,7 @@ import 
org.apache.shardingsphere.mcp.core.session.MCPSessionManager;
 import 
org.apache.shardingsphere.mcp.support.database.capability.MCPDatabaseCapabilityProvider;
 
 import java.io.IOException;
+import java.util.Locale;
 
 /**
  * MCP Server launcher.
@@ -73,15 +74,15 @@ public final class MCPRuntimeLauncher {
         String endpoint = String.format("http://%s:%d%s";, 
config.getHttpTransport().getBindHost(), server.getLocalPort(), 
config.getHttpTransport().getEndpointPath());
         SessionAttributionResolver sessionAttributionResolver = new 
SessionAttributionResolver(config.getHttpTransport().getSessionAttributionSource());
         return String.format("ShardingSphere MCP Server started, transport=%s, 
config=%s, databases=%d, endpoint=%s, session_attribution=%s, logs=%s.",
-                MCPTransportType.STREAMABLE_HTTP.getValue(), configPath, 
config.getDatabases().size(), endpoint, 
sessionAttributionResolver.getSummary(), LOG_PATH);
+                config.getTransportType().name().toLowerCase(Locale.ENGLISH), 
configPath, config.getDatabases().size(), endpoint, 
sessionAttributionResolver.getSummary(), LOG_PATH);
     }
     
     private String createStdioStartupLogMessage(final MCPLaunchConfiguration 
config) {
         return String.format("ShardingSphere MCP Server started, transport=%s, 
config=%s, databases=%d, logs=%s. Stdout is reserved for MCP protocol frames.",
-                MCPTransportType.STDIO.getValue(), configPath, 
config.getDatabases().size(), LOG_PATH);
+                config.getTransportType().name().toLowerCase(Locale.ENGLISH), 
configPath, config.getDatabases().size(), LOG_PATH);
     }
     
     private boolean isHttpTransport(final MCPLaunchConfiguration config) {
-        return MCPTransportType.STREAMABLE_HTTP == config.getTransportType();
+        return MCPTransportType.HTTP == config.getTransportType();
     }
 }
diff --git 
a/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/config/yaml/swapper/YamlMCPLaunchConfigurationSwapper.java
 
b/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/config/yaml/swapper/YamlMCPLaunchConfigurationSwapper.java
index 8f649797eee..3ab884ba745 100644
--- 
a/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/config/yaml/swapper/YamlMCPLaunchConfigurationSwapper.java
+++ 
b/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/config/yaml/swapper/YamlMCPLaunchConfigurationSwapper.java
@@ -52,7 +52,7 @@ public final class YamlMCPLaunchConfigurationSwapper 
implements YamlConfiguratio
     private YamlMCPTransportConfiguration 
createYamlTransportConfiguration(final MCPLaunchConfiguration data) {
         YamlMCPTransportConfiguration result = new 
YamlMCPTransportConfiguration();
         result.setType(data.getTransportType());
-        if (MCPTransportType.STREAMABLE_HTTP == data.getTransportType()) {
+        if (MCPTransportType.HTTP == data.getTransportType()) {
             
result.setHttp(httpTransportConfigSwapper.swapToYamlConfiguration(data.getHttpTransport()));
         }
         return result;
diff --git 
a/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/config/yaml/validator/MCPLaunchConfigurationValidator.java
 
b/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/config/yaml/validator/MCPLaunchConfigurationValidator.java
index 3d19b99a911..73c88a04a1d 100644
--- 
a/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/config/yaml/validator/MCPLaunchConfigurationValidator.java
+++ 
b/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/config/yaml/validator/MCPLaunchConfigurationValidator.java
@@ -42,7 +42,7 @@ public final class MCPLaunchConfigurationValidator implements 
ConstraintValidato
             return true;
         }
         if (MCPTransportType.STDIO == value.getType() && null != 
value.getHttp()) {
-            addViolation(context, "transport.http is only valid when 
`transport.type` is STREAMABLE_HTTP.");
+            addViolation(context, "transport.http is only valid when 
`transport.type` is HTTP.");
             return false;
         }
         return true;
diff --git 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/MCPBootstrapTest.java
 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/MCPBootstrapTest.java
index bdb3c0ab2f7..97a1c469cde 100644
--- 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/MCPBootstrapTest.java
+++ 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/MCPBootstrapTest.java
@@ -90,6 +90,6 @@ class MCPBootstrapTest {
     }
     
     private MCPLaunchConfiguration createLaunchConfiguration() {
-        return new MCPLaunchConfiguration(MCPTransportType.STREAMABLE_HTTP, 
new HttpTransportConfiguration("127.0.0.1", 18080, "/mcp"), 
Collections.emptyMap());
+        return new MCPLaunchConfiguration(MCPTransportType.HTTP, new 
HttpTransportConfiguration("127.0.0.1", 18080, "/mcp"), Collections.emptyMap());
     }
 }
diff --git 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/MCPRuntimeLauncherTest.java
 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/MCPRuntimeLauncherTest.java
index 6acfc324275..b0fe80740be 100644
--- 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/MCPRuntimeLauncherTest.java
+++ 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/MCPRuntimeLauncherTest.java
@@ -82,7 +82,7 @@ class MCPRuntimeLauncherTest {
                 MockedConstruction<MCPDatabaseCapabilityProvider> 
ignoredMockedCapabilityProvider = 
mockConstruction(MCPDatabaseCapabilityProvider.class);
                 MockedConstruction<StreamableHttpMCPServer> mockedHttpServer = 
mockConstruction(StreamableHttpMCPServer.class,
                         (mock, context) -> {
-                            assertThat(((MCPRuntimeContext) 
context.arguments().get(1)).getActiveTransport(), 
is(MCPTransportType.STREAMABLE_HTTP));
+                            assertThat(((MCPRuntimeContext) 
context.arguments().get(1)).getActiveTransport(), is(MCPTransportType.HTTP));
                             when(mock.getLocalPort()).thenReturn(19090);
                         });
                 MockedConstruction<StdioMCPServer> mockedStdioServer = 
mockConstruction(StdioMCPServer.class)) {
@@ -171,6 +171,6 @@ class MCPRuntimeLauncherTest {
     }
     
     private MCPLaunchConfiguration createLaunchConfiguration(final boolean 
httpEnabled, final Map<String, RuntimeDatabaseConfiguration> databases) {
-        return new MCPLaunchConfiguration(httpEnabled ? 
MCPTransportType.STREAMABLE_HTTP : MCPTransportType.STDIO, new 
HttpTransportConfiguration("127.0.0.1", 18080, "/mcp"), databases);
+        return new MCPLaunchConfiguration(httpEnabled ? MCPTransportType.HTTP 
: MCPTransportType.STDIO, new HttpTransportConfiguration("127.0.0.1", 18080, 
"/mcp"), databases);
     }
 }
diff --git 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/config/MCPLaunchConfigurationTest.java
 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/config/MCPLaunchConfigurationTest.java
index d64c729d4e3..9441d5085f5 100644
--- 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/config/MCPLaunchConfigurationTest.java
+++ 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/config/MCPLaunchConfigurationTest.java
@@ -36,12 +36,12 @@ class MCPLaunchConfigurationTest {
     
     @Test
     void assertValidateWhenHttpTransportSelected() {
-        assertDoesNotThrow(() -> 
validate(createYamlConfig(MCPTransportType.STREAMABLE_HTTP, 
createYamlHttpTransportConfiguration())));
+        assertDoesNotThrow(() -> 
validate(createYamlConfig(MCPTransportType.HTTP, 
createYamlHttpTransportConfiguration())));
     }
     
     @Test
     void assertValidateWhenHttpTransportUsesDefaults() {
-        assertDoesNotThrow(() -> 
validate(createYamlConfig(MCPTransportType.STREAMABLE_HTTP, null)));
+        assertDoesNotThrow(() -> 
validate(createYamlConfig(MCPTransportType.HTTP, null)));
     }
     
     @Test
@@ -60,12 +60,12 @@ class MCPLaunchConfigurationTest {
     void assertValidateWhenStdioTransportHasHttpConfiguration() {
         YamlMCPLaunchConfiguration yamlConfig = 
createYamlConfig(MCPTransportType.STDIO, 
createYamlHttpTransportConfiguration());
         IllegalArgumentException actual = 
assertThrows(IllegalArgumentException.class, () -> validate(yamlConfig));
-        assertThat(actual.getMessage(), is("transport.http is only valid when 
`transport.type` is STREAMABLE_HTTP."));
+        assertThat(actual.getMessage(), is("transport.http is only valid when 
`transport.type` is HTTP."));
     }
     
     @Test
     void assertValidateWhenDatabasesMissing() {
-        YamlMCPLaunchConfiguration yamlConfig = 
createYamlConfig(MCPTransportType.STREAMABLE_HTTP, null);
+        YamlMCPLaunchConfiguration yamlConfig = 
createYamlConfig(MCPTransportType.HTTP, null);
         yamlConfig.setRuntimeDatabases(null);
         IllegalArgumentException actual = 
assertThrows(IllegalArgumentException.class, () -> validate(yamlConfig));
         assertThat(actual.getMessage(), is("MCP launch configuration property 
`runtimeDatabases` is required."));
@@ -73,7 +73,7 @@ class MCPLaunchConfigurationTest {
     
     @Test
     void assertValidateWhenDatabasesEmpty() {
-        YamlMCPLaunchConfiguration yamlConfig = 
createYamlConfig(MCPTransportType.STREAMABLE_HTTP, null);
+        YamlMCPLaunchConfiguration yamlConfig = 
createYamlConfig(MCPTransportType.HTTP, null);
         yamlConfig.setRuntimeDatabases(Collections.emptyMap());
         assertDoesNotThrow(() -> validate(yamlConfig));
     }
@@ -82,7 +82,7 @@ class MCPLaunchConfigurationTest {
     void assertValidateWhenHttpBindHostIsUrl() {
         YamlHttpTransportConfiguration http = 
createYamlHttpTransportConfiguration();
         http.setBindHost("http://127.0.0.1:18088";);
-        IllegalArgumentException actual = 
assertThrows(IllegalArgumentException.class, () -> 
validate(createYamlConfig(MCPTransportType.STREAMABLE_HTTP, http)));
+        IllegalArgumentException actual = 
assertThrows(IllegalArgumentException.class, () -> 
validate(createYamlConfig(MCPTransportType.HTTP, http)));
         assertThat(actual.getMessage(), is("MCP launch configuration property 
`transport.http.bindHost` must be a local bind host or IP address."));
     }
     
@@ -90,7 +90,7 @@ class MCPLaunchConfigurationTest {
     void assertValidateWhenHttpPortIsOutOfRange() {
         YamlHttpTransportConfiguration http = 
createYamlHttpTransportConfiguration();
         http.setPort(65536);
-        IllegalArgumentException actual = 
assertThrows(IllegalArgumentException.class, () -> 
validate(createYamlConfig(MCPTransportType.STREAMABLE_HTTP, http)));
+        IllegalArgumentException actual = 
assertThrows(IllegalArgumentException.class, () -> 
validate(createYamlConfig(MCPTransportType.HTTP, http)));
         assertThat(actual.getMessage(), is("MCP launch configuration property 
`transport.http.port` must be between 0 and 65535."));
     }
     
@@ -98,7 +98,7 @@ class MCPLaunchConfigurationTest {
     void assertValidateWhenHttpEndpointPathMissingLeadingSlash() {
         YamlHttpTransportConfiguration http = 
createYamlHttpTransportConfiguration();
         http.setEndpointPath("mcp");
-        IllegalArgumentException actual = 
assertThrows(IllegalArgumentException.class, () -> 
validate(createYamlConfig(MCPTransportType.STREAMABLE_HTTP, http)));
+        IllegalArgumentException actual = 
assertThrows(IllegalArgumentException.class, () -> 
validate(createYamlConfig(MCPTransportType.HTTP, http)));
         assertThat(actual.getMessage(), is("MCP launch configuration property 
`transport.http.endpointPath` must be a single absolute path without query or 
fragment."));
     }
     
@@ -106,7 +106,7 @@ class MCPLaunchConfigurationTest {
     void assertValidateWhenHttpEndpointPathHasQuery() {
         YamlHttpTransportConfiguration http = 
createYamlHttpTransportConfiguration();
         http.setEndpointPath("/mcp?debug=true");
-        IllegalArgumentException actual = 
assertThrows(IllegalArgumentException.class, () -> 
validate(createYamlConfig(MCPTransportType.STREAMABLE_HTTP, http)));
+        IllegalArgumentException actual = 
assertThrows(IllegalArgumentException.class, () -> 
validate(createYamlConfig(MCPTransportType.HTTP, http)));
         assertThat(actual.getMessage(), is("MCP launch configuration property 
`transport.http.endpointPath` must be a single absolute path without query or 
fragment."));
     }
     
diff --git 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/config/loader/MCPConfigurationLoaderTest.java
 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/config/loader/MCPConfigurationLoaderTest.java
index fc6ce2f5ff4..08c94dfd523 100644
--- 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/config/loader/MCPConfigurationLoaderTest.java
+++ 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/config/loader/MCPConfigurationLoaderTest.java
@@ -40,7 +40,7 @@ class MCPConfigurationLoaderTest {
     
     private static final String HTTP_CONFIGURATION_YAML = """
             transport:
-              type: STREAMABLE_HTTP
+              type: HTTP
               http:
                 bindHost: 127.0.0.1
                 port: 9090
@@ -97,7 +97,7 @@ class MCPConfigurationLoaderTest {
             createConfigFile(searchBaseDirectory, "conf/mcp-http.yaml", 
HTTP_CONFIGURATION_YAML);
             String actualConfigPath = 
searchBaseDirectory.getFileName().resolve("conf").resolve("mcp-http.yaml").toString();
             MCPLaunchConfiguration actual = 
MCPConfigurationLoader.load(actualConfigPath);
-            assertThat(actual.getTransportType(), 
is(MCPTransportType.STREAMABLE_HTTP));
+            assertThat(actual.getTransportType(), is(MCPTransportType.HTTP));
             assertThat(actual.getHttpTransport().getBindHost(), 
is("127.0.0.1"));
             assertThat(actual.getHttpTransport().getPort(), is(9090));
             assertThat(actual.getDatabases().size(), is(1));
diff --git 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/config/yaml/swapper/YamlMCPLaunchConfigurationSwapperTest.java
 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/config/yaml/swapper/YamlMCPLaunchConfigurationSwapperTest.java
index 3532214c03e..665f29d86e8 100644
--- 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/config/yaml/swapper/YamlMCPLaunchConfigurationSwapperTest.java
+++ 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/config/yaml/swapper/YamlMCPLaunchConfigurationSwapperTest.java
@@ -43,7 +43,7 @@ class YamlMCPLaunchConfigurationSwapperTest {
     @Test
     void assertSwapToObject() {
         String yamlContent = "transport:\n"
-                + "  type: STREAMABLE_HTTP\n"
+                + "  type: HTTP\n"
                 + "  http:\n"
                 + "    bindHost: 127.0.0.1\n"
                 + "    port: 9090\n"
@@ -55,7 +55,7 @@ class YamlMCPLaunchConfigurationSwapperTest {
                 + "    password: secret\n"
                 + "    driverClassName: com.mysql.cj.jdbc.Driver\n";
         MCPLaunchConfiguration actual = 
swapper.swapToObject(YamlEngine.unmarshal(yamlContent, 
YamlMCPLaunchConfiguration.class));
-        assertThat(actual.getTransportType(), 
is(MCPTransportType.STREAMABLE_HTTP));
+        assertThat(actual.getTransportType(), is(MCPTransportType.HTTP));
         assertThat(actual.getHttpTransport().getBindHost(), is("127.0.0.1"));
         assertThat(actual.getHttpTransport().getPort(), is(9090));
         assertThat(actual.getHttpTransport().getEndpointPath(), 
is("/gateway"));
@@ -159,15 +159,15 @@ class YamlMCPLaunchConfigurationSwapperTest {
                 + "    endpointPath: /mcp\n"
                 + createRuntimeDatabasesYaml(), 
YamlMCPLaunchConfiguration.class);
         IllegalArgumentException actual = 
assertThrows(IllegalArgumentException.class, () -> 
swapper.swapToObject(yamlConfig));
-        assertThat(actual.getMessage(), is("transport.http is only valid when 
`transport.type` is STREAMABLE_HTTP."));
+        assertThat(actual.getMessage(), is("transport.http is only valid when 
`transport.type` is HTTP."));
     }
     
     @Test
     void assertSwapToObjectWithHttpDefaults() {
         MCPLaunchConfiguration actual = 
swapper.swapToObject(YamlEngine.unmarshal("transport:\n"
-                + "  type: STREAMABLE_HTTP\n"
+                + "  type: HTTP\n"
                 + createRuntimeDatabasesYaml(), 
YamlMCPLaunchConfiguration.class));
-        assertThat(actual.getTransportType(), 
is(MCPTransportType.STREAMABLE_HTTP));
+        assertThat(actual.getTransportType(), is(MCPTransportType.HTTP));
         assertThat(actual.getHttpTransport().getBindHost(), is("127.0.0.1"));
         assertThat(actual.getHttpTransport().getPort(), is(18088));
         assertThat(actual.getHttpTransport().getEndpointPath(), is("/mcp"));
@@ -302,10 +302,10 @@ class YamlMCPLaunchConfigurationSwapperTest {
     void assertSwapToYamlConfigurationWithRuntimeDatabases() {
         Map<String, RuntimeDatabaseConfiguration> databases = new 
LinkedHashMap<>(1, 1F);
         databases.put("logic_db", new 
RuntimeDatabaseConfiguration("jdbc:mysql://localhost:3306/logic_db", "demo", 
"", "com.mysql.cj.jdbc.Driver"));
-        MCPLaunchConfiguration launchConfig = new 
MCPLaunchConfiguration(MCPTransportType.STREAMABLE_HTTP, new 
HttpTransportConfiguration("127.0.0.1", 18088, "/mcp"), databases);
+        MCPLaunchConfiguration launchConfig = new 
MCPLaunchConfiguration(MCPTransportType.HTTP, new 
HttpTransportConfiguration("127.0.0.1", 18088, "/mcp"), databases);
         YamlMCPLaunchConfiguration actual = 
swapper.swapToYamlConfiguration(launchConfig);
         
assertThat(String.valueOf(actual.getRuntimeDatabases().get("logic_db").get("username")),
 is("demo"));
-        assertThat(actual.getTransport().getType(), 
is(MCPTransportType.STREAMABLE_HTTP));
+        assertThat(actual.getTransport().getType(), is(MCPTransportType.HTTP));
         assertThat(actual.getTransport().getHttp().getBindHost(), 
is("127.0.0.1"));
     }
     
diff --git 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/resource/MCPResourceSpecificationFactoryTest.java
 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/resource/MCPResourceSpecificationFactoryTest.java
index 1d140ccf222..8b7429d189f 100644
--- 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/resource/MCPResourceSpecificationFactoryTest.java
+++ 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/resource/MCPResourceSpecificationFactoryTest.java
@@ -191,7 +191,7 @@ class MCPResourceSpecificationFactoryTest {
         sessionManager.createSession(new MCPSessionIdentity("session-1", "", 
"", Map.of()));
         MCPDatabaseCapabilityProvider databaseCapabilityProvider = 
mock(MCPDatabaseCapabilityProvider.class);
         
when(databaseCapabilityProvider.provide(anyString())).thenReturn(Optional.empty());
-        return new MCPRuntimeContext(sessionManager, 
databaseCapabilityProvider, MCPTransportType.STREAMABLE_HTTP);
+        return new MCPRuntimeContext(sessionManager, 
databaseCapabilityProvider, MCPTransportType.HTTP);
     }
     
     private McpSyncServerExchange createExchange() {
diff --git 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/AbstractMCPToolSpecificationFactoryTest.java
 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/AbstractMCPToolSpecificationFactoryTest.java
index 1acebf1ec76..3043704135e 100644
--- 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/AbstractMCPToolSpecificationFactoryTest.java
+++ 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/AbstractMCPToolSpecificationFactoryTest.java
@@ -187,7 +187,7 @@ abstract class AbstractMCPToolSpecificationFactoryTest {
         try (MockedStatic<ToolDefinitionRegistry> mockedToolDefinitionRegistry 
= mockStatic(ToolDefinitionRegistry.class)) {
             MCPToolDefinition toolDefinition = 
mockSupportedTool(mockedToolDefinitionRegistry, 
createToolDescriptorWithoutOutputSchema(toolName));
             mockToolDispatch(mockedToolDefinitionRegistry, toolDefinition, 
Map.of(), response);
-            return 
callTool(createToolSpecification(createRuntimeContext(MCPTransportType.STREAMABLE_HTTP)),
 createExchange(), toolName, Map.of());
+            return 
callTool(createToolSpecification(createRuntimeContext(MCPTransportType.HTTP)), 
createExchange(), toolName, Map.of());
         }
     }
     
diff --git 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPToolElicitationFlowTest.java
 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPToolElicitationFlowTest.java
index 3b07266c458..9972657a429 100644
--- 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPToolElicitationFlowTest.java
+++ 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPToolElicitationFlowTest.java
@@ -204,7 +204,7 @@ class MCPToolElicitationFlowTest extends 
AbstractMCPToolSpecificationFactoryTest
             MCPToolDefinition toolDefinition = 
mockSupportedTool(mockedToolDefinitionRegistry, 
createPlanningToolDescriptor(toolName));
             mockToolDispatch(mockedToolDefinitionRegistry, toolDefinition, 
Map.of(), response);
             McpSyncServerExchange exchange = createElicitationExchange(new 
McpSchema.ElicitResult(McpSchema.ElicitResult.Action.ACCEPT, Map.of("field_1", 
"foo_display")));
-            CallToolResult actual = 
callTool(createToolSpecification(MCPTransportType.STREAMABLE_HTTP), exchange, 
toolName, Map.of());
+            CallToolResult actual = 
callTool(createToolSpecification(MCPTransportType.HTTP), exchange, toolName, 
Map.of());
             assertStructuredFallback(actual, "remote_identity_required", true, 
false, "structured_fallback");
             verify(exchange, never()).createElicitation(any());
         }
@@ -250,7 +250,7 @@ class MCPToolElicitationFlowTest extends 
AbstractMCPToolSpecificationFactoryTest
             MCPToolDefinition toolDefinition = 
mockSupportedTool(mockedToolDefinitionRegistry, 
createToolDescriptor("database_gateway_search_metadata"));
             mockToolDispatch(mockedToolDefinitionRegistry, toolDefinition, 
Map.of(), response);
             McpSyncServerExchange exchange = createElicitationExchange(new 
McpSchema.ElicitResult(McpSchema.ElicitResult.Action.ACCEPT, Map.of()));
-            CallToolResult actual = 
callTool(createToolSpecification(createRuntimeContext(MCPTransportType.STREAMABLE_HTTP)),
 exchange, "database_gateway_search_metadata", Map.of());
+            CallToolResult actual = 
callTool(createToolSpecification(createRuntimeContext(MCPTransportType.HTTP)), 
exchange, "database_gateway_search_metadata", Map.of());
             assertThat(actual.structuredContent(), is(expectedPayload));
             verify(exchange, never()).createElicitation(any());
         }
@@ -264,7 +264,7 @@ class MCPToolElicitationFlowTest extends 
AbstractMCPToolSpecificationFactoryTest
             MCPToolDefinition toolDefinition = 
mockSupportedTool(mockedToolDefinitionRegistry, 
createToolDescriptor("fixture_ping"));
             mockToolDispatch(mockedToolDefinitionRegistry, toolDefinition, 
Map.of(), response);
             McpSyncServerExchange exchange = createElicitationExchange(new 
McpSchema.ElicitResult(McpSchema.ElicitResult.Action.ACCEPT, Map.of()));
-            CallToolResult actual = 
callTool(createToolSpecification(createRuntimeContext(MCPTransportType.STREAMABLE_HTTP)),
 exchange, "fixture_ping", Map.of());
+            CallToolResult actual = 
callTool(createToolSpecification(createRuntimeContext(MCPTransportType.HTTP)), 
exchange, "fixture_ping", Map.of());
             assertThat(actual.structuredContent(), is(expectedPayload));
             verify(exchange, never()).createElicitation(any());
         }
diff --git 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPToolSpecificationFactoryTest.java
 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPToolSpecificationFactoryTest.java
index 5e53741c542..d48523d5292 100644
--- 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPToolSpecificationFactoryTest.java
+++ 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPToolSpecificationFactoryTest.java
@@ -168,7 +168,7 @@ class MCPToolSpecificationFactoryTest extends 
AbstractMCPToolSpecificationFactor
     @Test
     void assertCreateToolSpecificationsRejectInvalidInputSchema() {
         SyncToolSpecification actualSpecification = findToolSpecification(
-                new 
MCPToolSpecificationFactory(createRuntimeContext(MCPTransportType.STREAMABLE_HTTP)).createToolSpecifications(),
 "database_gateway_search_metadata");
+                new 
MCPToolSpecificationFactory(createRuntimeContext(MCPTransportType.HTTP)).createToolSpecifications(),
 "database_gateway_search_metadata");
         CallToolResult actual = callTool(actualSpecification, 
createExchange(), "database_gateway_search_metadata", Map.of("query", "order", 
"object_types", List.of("TABLE")));
         Map<String, Object> actualPayload = getTextContentPayload(actual);
         Map<?, ?> actualRecovery = (Map<?, ?>) actualPayload.get("recovery");
@@ -186,7 +186,7 @@ class MCPToolSpecificationFactoryTest extends 
AbstractMCPToolSpecificationFactor
         try (MockedStatic<ToolDefinitionRegistry> mockedToolDefinitionRegistry 
= mockStatic(ToolDefinitionRegistry.class)) {
             MCPToolDefinition toolDefinition = 
mockSupportedTool(mockedToolDefinitionRegistry, 
createStrictToolDescriptor("database_gateway_search_metadata"));
             mockToolDispatch(mockedToolDefinitionRegistry, toolDefinition, 
Map.of(), new MCPMapPayload(Map.of("count", 1)));
-            CallToolResult actual = 
callTool(createToolSpecification(createRuntimeContext(MCPTransportType.STREAMABLE_HTTP)),
 createExchange(), "database_gateway_search_metadata", Map.of());
+            CallToolResult actual = 
callTool(createToolSpecification(createRuntimeContext(MCPTransportType.HTTP)), 
createExchange(), "database_gateway_search_metadata", Map.of());
             Map<String, Object> actualPayload = getTextContentPayload(actual);
             
assertTrue(String.valueOf(actualPayload.get("message")).contains("database_gateway_search_metadata"));
             assertNull(actual.structuredContent());
diff --git 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/server/http/StreamableHttpMCPServerTest.java
 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/server/http/StreamableHttpMCPServerTest.java
index 8dcf7bd0a00..e8b04952d5c 100644
--- 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/server/http/StreamableHttpMCPServerTest.java
+++ 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/server/http/StreamableHttpMCPServerTest.java
@@ -153,6 +153,6 @@ class StreamableHttpMCPServerTest {
     }
     
     private MCPRuntimeContext createRuntimeContext() {
-        return new MCPRuntimeContext(new 
MCPSessionManager(Collections.emptyMap()), new 
MCPDatabaseCapabilityProvider(Collections.emptyMap()), 
MCPTransportType.STREAMABLE_HTTP);
+        return new MCPRuntimeContext(new 
MCPSessionManager(Collections.emptyMap()), new 
MCPDatabaseCapabilityProvider(Collections.emptyMap()), MCPTransportType.HTTP);
     }
 }
diff --git 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/server/http/StreamableHttpMCPServerWireTest.java
 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/server/http/StreamableHttpMCPServerWireTest.java
index 0c2109130c7..3ff7f4dadde 100644
--- 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/server/http/StreamableHttpMCPServerWireTest.java
+++ 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/server/http/StreamableHttpMCPServerWireTest.java
@@ -76,7 +76,7 @@ class StreamableHttpMCPServerWireTest {
     
     private StreamableHttpMCPServer createServer() {
         MCPRuntimeContext runtimeContext = new MCPRuntimeContext(new 
MCPSessionManager(Collections.emptyMap()), new 
MCPDatabaseCapabilityProvider(Collections.emptyMap()),
-                MCPTransportType.STREAMABLE_HTTP);
+                MCPTransportType.HTTP);
         return new StreamableHttpMCPServer(new 
HttpTransportConfiguration("127.0.0.1", 0, "/mcp"), runtimeContext);
     }
     
diff --git 
a/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/resource/handler/capability/RuntimeStatusHandler.java
 
b/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/resource/handler/capability/RuntimeStatusHandler.java
index 8b050022c48..6e077270775 100644
--- 
a/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/resource/handler/capability/RuntimeStatusHandler.java
+++ 
b/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/resource/handler/capability/RuntimeStatusHandler.java
@@ -35,6 +35,7 @@ import 
org.apache.shardingsphere.mcp.support.security.MCPRuntimeProtectionPolicy
 
 import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Optional;
 
@@ -60,13 +61,14 @@ public final class RuntimeStatusHandler implements 
MCPResourceHandler<MCPFeature
         List<RuntimeDatabaseProfile> databases = 
handlerContext.getMetadataQueryFacade().queryDatabases();
         boolean hasConfiguredDatabase = !databases.isEmpty();
         MCPTransportType activeTransport = handlerContext.getActiveTransport();
+        String activeTransportName = 
activeTransport.name().toLowerCase(Locale.ENGLISH);
         Map<String, Object> result = new LinkedHashMap<>(15, 1F);
         result.put("response_mode", MCPResponseMode.RUNTIME);
         result.put(MCPPayloadFieldNames.SUMMARY, 
createSummary(hasConfiguredDatabase, databases.size()));
         result.put("server_status", hasConfiguredDatabase ? "ready" : 
"configuration_required");
         result.put("status", hasConfiguredDatabase ? "available" : 
"configuration_required");
-        result.put("transport", activeTransport.getValue());
-        result.put("active_transport", activeTransport.getValue());
+        result.put("transport", activeTransportName);
+        result.put("active_transport", activeTransportName);
         result.put("transport_security_summary", 
createTransportSecuritySummary(activeTransport));
         result.put("configured_database_count", databases.size());
         result.put("databases", databases.stream().map(each -> 
createDatabaseStatus(handlerContext, each)).toList());
@@ -87,9 +89,9 @@ public final class RuntimeStatusHandler implements 
MCPResourceHandler<MCPFeature
     
     private Map<String, Object> createTransportSecuritySummary(final 
MCPTransportType activeTransport) {
         Map<String, Object> result = new LinkedHashMap<>(4, 1F);
-        result.put("transport", activeTransport.getValue());
-        result.put("authentication", MCPTransportType.STREAMABLE_HTTP == 
activeTransport ? "not_enabled_by_mcp_transport" : "local_client_process");
-        result.put("recommended_exposure", MCPTransportType.STREAMABLE_HTTP == 
activeTransport ? "loopback_or_trusted_gateway" : "local_stdio_session");
+        result.put("transport", 
activeTransport.name().toLowerCase(Locale.ENGLISH));
+        result.put("authentication", MCPTransportType.HTTP == activeTransport 
? "not_enabled_by_mcp_transport" : "local_client_process");
+        result.put("recommended_exposure", MCPTransportType.HTTP == 
activeTransport ? "loopback_or_trusted_gateway" : "local_stdio_session");
         result.put("model_action", "Do not request or echo JDBC URLs, 
credentials, raw environment variables, or stack traces.");
         return result;
     }
diff --git 
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/context/MCPFeatureRuntimeRequestContextTest.java
 
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/context/MCPFeatureRuntimeRequestContextTest.java
index 2d34060c5d0..13b2bd78c0c 100644
--- 
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/context/MCPFeatureRuntimeRequestContextTest.java
+++ 
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/context/MCPFeatureRuntimeRequestContextTest.java
@@ -36,7 +36,7 @@ class MCPFeatureRuntimeRequestContextTest {
     void assertSessionIdentity() {
         MCPSessionIdentity sessionIdentity = new 
MCPSessionIdentity("session-1", "subject", "gateway", Map.of("cluster", 
"demo"));
         MCPRuntimeContext runtimeContext = new MCPRuntimeContext(new 
MCPSessionManager(Map.of()),
-                new MCPDatabaseCapabilityProvider(Map.of()), 
MCPTransportType.STREAMABLE_HTTP);
+                new MCPDatabaseCapabilityProvider(Map.of()), 
MCPTransportType.HTTP);
         assertThat(new MCPFeatureRuntimeRequestContext(runtimeContext, 
sessionIdentity).getSessionIdentity(), is(sessionIdentity));
     }
     
@@ -44,7 +44,7 @@ class MCPFeatureRuntimeRequestContextTest {
     void assertFindRuntimeDatabaseConfiguration() {
         RuntimeDatabaseConfiguration runtimeDatabaseConfig = new 
RuntimeDatabaseConfiguration("jdbc:test:profile", "demo", "", 
"com.mysql.cj.jdbc.Driver");
         MCPRuntimeContext runtimeContext = new MCPRuntimeContext(new 
MCPSessionManager(Map.of("logic_db", runtimeDatabaseConfig)),
-                new MCPDatabaseCapabilityProvider(Map.of()), 
MCPTransportType.STREAMABLE_HTTP);
+                new MCPDatabaseCapabilityProvider(Map.of()), 
MCPTransportType.HTTP);
         MCPFeatureRuntimeRequestContext requestContext = new 
MCPFeatureRuntimeRequestContext(runtimeContext, new 
MCPSessionIdentity("session-1", "", "", Map.of()));
         
assertThat(requestContext.findRuntimeDatabaseConfiguration("logic_db"), 
is(Optional.of(runtimeDatabaseConfig)));
     }
@@ -52,7 +52,7 @@ class MCPFeatureRuntimeRequestContextTest {
     @Test
     void assertFindMissingRuntimeDatabaseConfiguration() {
         MCPRuntimeContext runtimeContext = new MCPRuntimeContext(new 
MCPSessionManager(Map.of()),
-                new MCPDatabaseCapabilityProvider(Map.of()), 
MCPTransportType.STREAMABLE_HTTP);
+                new MCPDatabaseCapabilityProvider(Map.of()), 
MCPTransportType.HTTP);
         MCPFeatureRuntimeRequestContext requestContext = new 
MCPFeatureRuntimeRequestContext(runtimeContext, new 
MCPSessionIdentity("session-1", "", "", Map.of()));
         
assertThat(requestContext.findRuntimeDatabaseConfiguration("missing_db"), 
is(Optional.empty()));
     }
diff --git 
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/context/MCPRuntimeContextTest.java
 
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/context/MCPRuntimeContextTest.java
index 0e627e54629..614d10c7ddb 100644
--- 
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/context/MCPRuntimeContextTest.java
+++ 
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/context/MCPRuntimeContextTest.java
@@ -57,7 +57,7 @@ class MCPRuntimeContextTest {
     }
     
     private MCPRuntimeContext createRuntimeContext(final MCPSessionManager 
sessionManager) {
-        return new MCPRuntimeContext(sessionManager, new 
MCPDatabaseCapabilityProvider(Map.of()), MCPTransportType.STREAMABLE_HTTP);
+        return new MCPRuntimeContext(sessionManager, new 
MCPDatabaseCapabilityProvider(Map.of()), MCPTransportType.HTTP);
     }
     
     private WorkflowContextSnapshot createSnapshot(final String planId) {
diff --git 
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/ResourceTestDataFactory.java
 
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/ResourceTestDataFactory.java
index 7b00737ee69..0782f00b51c 100644
--- 
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/ResourceTestDataFactory.java
+++ 
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/ResourceTestDataFactory.java
@@ -132,7 +132,7 @@ public final class ResourceTestDataFactory {
      * @return runtime context
      */
     public static MCPRuntimeContext createRuntimeContext(final 
List<DatabaseMetadataFixture> databaseMetadataList) {
-        return createRuntimeContext(databaseMetadataList, 
MCPTransportType.STREAMABLE_HTTP);
+        return createRuntimeContext(databaseMetadataList, 
MCPTransportType.HTTP);
     }
     
     /**
diff --git 
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/capability/RuntimeStatusHandlerTest.java
 
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/capability/RuntimeStatusHandlerTest.java
index 03967fbd263..cd0dfe26d10 100644
--- 
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/capability/RuntimeStatusHandlerTest.java
+++ 
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/capability/RuntimeStatusHandlerTest.java
@@ -38,7 +38,7 @@ class RuntimeStatusHandlerTest {
     @Test
     void assertHandle() {
         MCPFeatureRuntimeRequestContext requestContext =
-                new 
MCPFeatureRuntimeRequestContext(ResourceTestDataFactory.createRuntimeContext(ResourceTestDataFactory.createDatabaseMetadata(),
 MCPTransportType.STREAMABLE_HTTP),
+                new 
MCPFeatureRuntimeRequestContext(ResourceTestDataFactory.createRuntimeContext(ResourceTestDataFactory.createDatabaseMetadata(),
 MCPTransportType.HTTP),
                         new MCPSessionIdentity("session-1", "", "", Map.of()));
         Map<String, Object> actual = new 
RuntimeStatusHandler().handle(requestContext, new 
MCPUriVariables(Map.of())).toPayload();
         assertThat(actual.get("response_mode"), is("runtime"));
@@ -72,7 +72,7 @@ class RuntimeStatusHandlerTest {
     
     @Test
     void assertHandleWithEmptyRuntimeDatabase() {
-        MCPFeatureRuntimeRequestContext requestContext = new 
MCPFeatureRuntimeRequestContext(ResourceTestDataFactory.createRuntimeContext(List.of(),
 MCPTransportType.STREAMABLE_HTTP),
+        MCPFeatureRuntimeRequestContext requestContext = new 
MCPFeatureRuntimeRequestContext(ResourceTestDataFactory.createRuntimeContext(List.of(),
 MCPTransportType.HTTP),
                 new MCPSessionIdentity("session-1", "", "", Map.of()));
         Map<String, Object> actual = new 
RuntimeStatusHandler().handle(requestContext, new 
MCPUriVariables(Map.of())).toPayload();
         assertThat(actual.get("server_status"), is("configuration_required"));
diff --git 
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/workflow/WorkflowPlanHandlerTest.java
 
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/workflow/WorkflowPlanHandlerTest.java
index 06f2727e662..bbbd1b482e8 100644
--- 
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/workflow/WorkflowPlanHandlerTest.java
+++ 
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/workflow/WorkflowPlanHandlerTest.java
@@ -44,7 +44,7 @@ class WorkflowPlanHandlerTest {
     void assertHandle() {
         MCPSessionManager sessionManager = new MCPSessionManager(Map.of());
         sessionManager.createSession(new MCPSessionIdentity("session-1", "", 
"", Map.of()));
-        MCPRuntimeContext runtimeContext = new 
MCPRuntimeContext(sessionManager, new MCPDatabaseCapabilityProvider(Map.of()), 
MCPTransportType.STREAMABLE_HTTP);
+        MCPRuntimeContext runtimeContext = new 
MCPRuntimeContext(sessionManager, new MCPDatabaseCapabilityProvider(Map.of()), 
MCPTransportType.HTTP);
         
runtimeContext.getWorkflowSessionContext("session-1").save(createSnapshot());
         MCPFeatureRuntimeRequestContext requestContext = new 
MCPFeatureRuntimeRequestContext(runtimeContext, 
sessionManager.getRequiredSessionIdentity("session-1"));
         Map<String, Object> actual = new 
WorkflowPlanHandler().handle(requestContext, new 
MCPUriVariables(Map.of("plan_id", "plan-1"))).toPayload();
diff --git 
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/suite/MCPBuilderEvaluationArtifactTest.java
 
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/suite/MCPBuilderEvaluationArtifactTest.java
index 5c6f024cac9..72cf92a2291 100644
--- 
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/suite/MCPBuilderEvaluationArtifactTest.java
+++ 
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/suite/MCPBuilderEvaluationArtifactTest.java
@@ -85,7 +85,7 @@ final class MCPBuilderEvaluationArtifactTest {
             "plan_id",
             "next_actions",
             "transport.type",
-            "STREAMABLE_HTTP",
+            "HTTP",
             "STDIO",
             "Origin",
             "metadata",
diff --git 
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/runtime/programmatic/AbstractHttpProtocolOnlyE2ETest.java
 
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/runtime/programmatic/AbstractHttpProtocolOnlyE2ETest.java
index 186d2d67d9d..5eea1685003 100644
--- 
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/runtime/programmatic/AbstractHttpProtocolOnlyE2ETest.java
+++ 
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/runtime/programmatic/AbstractHttpProtocolOnlyE2ETest.java
@@ -146,6 +146,6 @@ abstract class AbstractHttpProtocolOnlyE2ETest {
     }
     
     private MCPRuntimeContext createRuntimeContext() {
-        return new MCPRuntimeContext(new 
MCPSessionManager(Collections.emptyMap()), new 
MCPDatabaseCapabilityProvider(Collections.emptyMap()), 
MCPTransportType.STREAMABLE_HTTP);
+        return new MCPRuntimeContext(new 
MCPSessionManager(Collections.emptyMap()), new 
MCPDatabaseCapabilityProvider(Collections.emptyMap()), MCPTransportType.HTTP);
     }
 }
diff --git 
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/distribution/PackagedDistributionTestSupport.java
 
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/distribution/PackagedDistributionTestSupport.java
index f239ba3d4a9..10bca0f9aee 100644
--- 
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/distribution/PackagedDistributionTestSupport.java
+++ 
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/distribution/PackagedDistributionTestSupport.java
@@ -290,7 +290,7 @@ public final class PackagedDistributionTestSupport {
     }
     
     private static MCPTransportType resolveTransportType(final 
RuntimeTransport transport) {
-        return RuntimeTransport.HTTP == transport ? 
MCPTransportType.STREAMABLE_HTTP : MCPTransportType.STDIO;
+        return RuntimeTransport.HTTP == transport ? MCPTransportType.HTTP : 
MCPTransportType.STDIO;
     }
     
     public record PreparedPackagedDistribution(Path home, Path configFile, 
RuntimeTransport transport, int httpPort) {
diff --git 
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/distribution/PackagedDistributionTestSupportTest.java
 
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/distribution/PackagedDistributionTestSupportTest.java
index 4e1a0f41752..a533b1bc0a2 100644
--- 
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/distribution/PackagedDistributionTestSupportTest.java
+++ 
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/distribution/PackagedDistributionTestSupportTest.java
@@ -48,7 +48,7 @@ class PackagedDistributionTestSupportTest {
     
     private static final String HTTP_CONFIGURATION = """
             transport:
-              type: STREAMABLE_HTTP
+              type: HTTP
             runtimeDatabases:
               orders:
                 jdbcUrl: "jdbc:mysql://127.0.0.1:3306/orders"
@@ -186,7 +186,7 @@ class PackagedDistributionTestSupportTest {
     
     private static Stream<Arguments> transportCases() {
         return Stream.of(
-                Arguments.of("http transport", RuntimeTransport.HTTP, 
MCPTransportType.STREAMABLE_HTTP),
+                Arguments.of("http transport", RuntimeTransport.HTTP, 
MCPTransportType.HTTP),
                 Arguments.of("stdio transport", RuntimeTransport.STDIO, 
MCPTransportType.STDIO));
     }
     
diff --git 
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/runtime/AbstractConfigBackedRuntimeE2ETest.java
 
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/runtime/AbstractConfigBackedRuntimeE2ETest.java
index 02a4be11d98..5c985dedce1 100644
--- 
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/runtime/AbstractConfigBackedRuntimeE2ETest.java
+++ 
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/runtime/AbstractConfigBackedRuntimeE2ETest.java
@@ -183,7 +183,7 @@ public abstract class AbstractConfigBackedRuntimeE2ETest {
     
     private String createConfigurationContent(final Map<String, 
RuntimeDatabaseConfiguration> runtimeDatabases) {
         RuntimeTransport transport = getTransport();
-        MCPTransportType transportType = RuntimeTransport.HTTP == transport ? 
MCPTransportType.STREAMABLE_HTTP : MCPTransportType.STDIO;
+        MCPTransportType transportType = RuntimeTransport.HTTP == transport ? 
MCPTransportType.HTTP : MCPTransportType.STDIO;
         return YamlEngine.marshal(new 
YamlMCPLaunchConfigurationSwapper().swapToYamlConfiguration(
                 new MCPLaunchConfiguration(transportType, 
createHttpTransportConfiguration(), runtimeDatabases)));
     }
diff --git 
a/test/e2e/mcp/src/test/resources/llm/evaluation/mcp-builder-evaluation.xml 
b/test/e2e/mcp/src/test/resources/llm/evaluation/mcp-builder-evaluation.xml
index f55f25f0b48..d04eafa375f 100644
--- a/test/e2e/mcp/src/test/resources/llm/evaluation/mcp-builder-evaluation.xml
+++ b/test/e2e/mcp/src/test/resources/llm/evaluation/mcp-builder-evaluation.xml
@@ -192,7 +192,7 @@
   </qa_pair>
   <qa_pair id="q10" category="transport_security" read_only="true">
     <question>
-      During Streamable HTTP deployment, an operator sets transport.type to 
STREAMABLE_HTTP and bindHost to 0.0.0.0 for a trusted gateway.
+      During Streamable HTTP deployment, an operator sets transport.type to 
HTTP and bindHost to 0.0.0.0 for a trusted gateway.
       Explain what built-in authorization exists, how present Origin headers 
are treated, and where authentication must happen.
     </question>
     <answer>no_builtin_auth|origin_403|gateway_auth_boundary</answer>

Reply via email to