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 6adf33227f7 Refactor MCP API package structure (#39178)
6adf33227f7 is described below
commit 6adf33227f732ff170deae51479c508286c660f8
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Jul 18 19:02:03 2026 +0800
Refactor MCP API package structure (#39178)
- group prompt, resource, and tool descriptors by MCP capability
- move MCPHandlerProvider to the MCP SPI package
- update ServiceLoader registrations, consumers, documentation, and E2E
fixtures
---
docs/document/content/dev-manual/mcp.cn.md | 2 +-
docs/document/content/dev-manual/mcp.en.md | 2 +-
.../prompt/{descriptor => }/MCPPromptArgumentDescriptor.java | 2 +-
.../mcp/api/prompt/{descriptor => }/MCPPromptDescriptor.java | 4 ++--
.../resource/{descriptor => }/MCPResourceAnnotations.java | 4 ++--
.../api/resource/{descriptor => }/MCPResourceDescriptor.java | 4 ++--
.../shardingsphere/mcp/api/resource/MCPResourceHandler.java | 2 ++
.../mcp/api/tool/{descriptor => }/MCPToolAnnotations.java | 4 ++--
.../mcp/api/tool/{descriptor => }/MCPToolDescriptor.java | 4 ++--
.../apache/shardingsphere/mcp/api/tool/MCPToolHandler.java | 2 ++
.../shardingsphere/mcp/{api => spi}/MCPHandlerProvider.java | 9 ++++++++-
.../{descriptor => }/MCPResourceAnnotationsTest.java | 2 +-
.../resource/{descriptor => }/MCPResourceDescriptorTest.java | 2 +-
.../capability/prompt/MCPPromptSpecificationFactory.java | 4 ++--
.../capability/resource/MCPResourceSpecificationFactory.java | 4 ++--
.../transport/capability/tool/MCPCallToolResultFactory.java | 2 +-
.../capability/tool/MCPToolClarificationPolicy.java | 2 +-
.../transport/capability/tool/MCPToolElicitationHandler.java | 2 +-
.../capability/tool/MCPToolSpecificationFactory.java | 4 ++--
.../resource/MCPResourceSpecificationFactoryTest.java | 4 ++--
.../tool/AbstractMCPToolSpecificationFactoryTest.java | 4 ++--
.../capability/tool/MCPCallToolResultFactoryTest.java | 2 +-
.../capability/tool/MCPToolSpecificationFactoryTest.java | 2 +-
.../mcp/core/handler/core/CoreHandlerProvider.java | 2 +-
.../mcp/core/resource/handler/MCPResourceDefinition.java | 2 +-
.../core/resource/handler/ResourceDefinitionRegistry.java | 4 ++--
.../resource/handler/metadata/MetadataResourceHandler.java | 2 +-
.../handler/metadata/MetadataResourceResponseFactory.java | 2 +-
.../mcp/core/tool/handler/MCPToolDefinition.java | 2 +-
.../mcp/core/tool/handler/ToolDefinitionRegistry.java | 4 ++--
.../mcp/core/workflow/WorkflowRuntimeDefinitionRegistry.java | 2 +-
... => org.apache.shardingsphere.mcp.spi.MCPHandlerProvider} | 0
.../resource/handler/CoreResourceHandlerSurfaceTest.java | 2 +-
.../resource/handler/ResourceDefinitionRegistryTest.java | 4 ++--
.../handler/metadata/MetadataResourceHandlerTest.java | 2 +-
.../metadata/MetadataResourceResponseFactoryTest.java | 2 +-
.../mcp/core/tool/handler/ToolDefinitionRegistryTest.java | 6 +++---
.../tool/handler/metadata/SearchMetadataToolHandlerTest.java | 2 +-
.../handler/workflow/WorkflowExecutionToolHandlerTest.java | 2 +-
.../handler/workflow/WorkflowValidationToolHandlerTest.java | 2 +-
.../core/workflow/WorkflowRuntimeDefinitionRegistryTest.java | 2 +-
.../mcp/feature/broadcast/BroadcastMCPHandlerProvider.java | 2 +-
... => org.apache.shardingsphere.mcp.spi.MCPHandlerProvider} | 0
.../feature/broadcast/BroadcastMCPHandlerProviderTest.java | 2 +-
.../mcp/feature/encrypt/EncryptMCPHandlerProvider.java | 2 +-
... => org.apache.shardingsphere.mcp.spi.MCPHandlerProvider} | 0
.../mcp/feature/encrypt/EncryptDescriptorContractTest.java | 2 +-
.../mcp/feature/encrypt/EncryptMCPHandlerProviderTest.java | 2 +-
.../mcp/feature/mask/MaskMCPHandlerProvider.java | 2 +-
... => org.apache.shardingsphere.mcp.spi.MCPHandlerProvider} | 0
.../mcp/feature/mask/MaskDescriptorContractTest.java | 2 +-
.../mcp/feature/mask/MaskFeatureDefinitionTest.java | 2 +-
.../ReadwriteSplittingMCPHandlerProvider.java | 2 +-
... => org.apache.shardingsphere.mcp.spi.MCPHandlerProvider} | 0
.../ReadwriteSplittingMCPHandlerProviderTest.java | 2 +-
.../mcp/feature/shadow/ShadowMCPHandlerProvider.java | 2 +-
... => org.apache.shardingsphere.mcp.spi.MCPHandlerProvider} | 0
.../mcp/feature/shadow/ShadowDescriptorContractTest.java | 2 +-
.../mcp/feature/sharding/ShardingMCPHandlerProvider.java | 2 +-
... => org.apache.shardingsphere.mcp.spi.MCPHandlerProvider} | 0
.../mcp/feature/sharding/ShardingDescriptorContractTest.java | 4 ++--
.../mcp/feature/sharding/ShardingMCPHandlerProviderTest.java | 2 +-
.../descriptor/MCPCompletionTargetDescriptorValidator.java | 6 +++---
.../mcp/support/descriptor/MCPDescriptorCatalogIndex.java | 6 +++---
.../support/descriptor/MCPDescriptorCatalogYamlSwapper.java | 12 ++++++------
.../mcp/support/descriptor/MCPPromptDescriptorValidator.java | 4 ++--
.../mcp/support/descriptor/MCPProtocolDescriptorCatalog.java | 6 +++---
.../support/descriptor/MCPResourceDescriptorValidator.java | 2 +-
.../descriptor/MCPResourceNavigationDescriptorValidator.java | 6 +++---
.../descriptor/MCPResourceNavigationPayloadBuilder.java | 2 +-
.../descriptor/MCPToolDescriptorCatalogValidator.java | 6 +++---
.../support/descriptor/MCPToolDescriptorValidationUtils.java | 2 +-
.../mcp/support/descriptor/MCPToolOutputSchemaValidator.java | 2 +-
.../service/WorkflowGuidanceResourceHintProvider.java | 4 ++--
.../support/descriptor/MCPDescriptorCatalogIndexTest.java | 6 +++---
.../support/descriptor/MCPDescriptorCatalogLoaderTest.java | 10 +++++-----
.../descriptor/MCPDescriptorCatalogPayloadBuilderTest.java | 6 +++---
.../descriptor/MCPDescriptorCatalogValidatorTest.java | 12 ++++++------
.../descriptor/MCPDescriptorComponentValidatorsTest.java | 12 ++++++------
.../support/descriptor/MCPProtocolDescriptorCatalogTest.java | 10 +++++-----
.../descriptor/MCPToolDescriptorValidationUtilsTest.java | 4 ++--
.../mcp/llm/conversation/LLMMCPConversationTurnPlanner.java | 2 +-
.../mcp/llm/conversation/LLMMCPToolDefinitionFactory.java | 2 +-
.../llm/conversation/LLMMCPToolDefinitionFactoryTest.java | 2 +-
.../test/e2e/mcp/support/OfficialMCPToolNames.java | 2 +-
.../PackagedDistributionPluginFixtureSupport.java | 2 +-
.../PackagedDistributionPluginFixtureSupportTest.java | 4 ++--
.../support/fixture/plugin/PluginFixtureHandlerProvider.java | 2 +-
88 files changed, 147 insertions(+), 136 deletions(-)
diff --git a/docs/document/content/dev-manual/mcp.cn.md
b/docs/document/content/dev-manual/mcp.cn.md
index 46d13d61408..4d2d9578cc3 100644
--- a/docs/document/content/dev-manual/mcp.cn.md
+++ b/docs/document/content/dev-manual/mcp.cn.md
@@ -34,7 +34,7 @@ MCP 子链路按 `api + support + features + core + bootstrap` 分层组织:
5. 实现 `MCPHandlerProvider`。
6. 通过 `getToolHandlers()` 和 `getResourceHandlers()` 返回 feature 自己暴露的 handlers。
7. 如果 feature 拥有 workflow definitions,在同一个 provider 上实现
`MCPWorkflowDefinitionProvider`。
-8. 在 `src/main/resources/META-INF/services/` 注册
`org.apache.shardingsphere.mcp.api.MCPHandlerProvider`。
+8. 在 `src/main/resources/META-INF/services/` 注册
`org.apache.shardingsphere.mcp.spi.MCPHandlerProvider`。
9. 在 `META-INF/shardingsphere-mcp/mcp-descriptors` 下添加 descriptor。
如果 feature 要作为官方默认能力随发行包提供,还需要:
diff --git a/docs/document/content/dev-manual/mcp.en.md
b/docs/document/content/dev-manual/mcp.en.md
index 35c24ee0088..54d9420e1a1 100644
--- a/docs/document/content/dev-manual/mcp.en.md
+++ b/docs/document/content/dev-manual/mcp.en.md
@@ -34,7 +34,7 @@ Recommended path for a new feature:
5. Implement `MCPHandlerProvider`.
6. Return the feature's handlers from `getToolHandlers()` and
`getResourceHandlers()`.
7. If the feature owns workflow definitions, implement
`MCPWorkflowDefinitionProvider` on the same provider.
-8. Register `org.apache.shardingsphere.mcp.api.MCPHandlerProvider` under
`src/main/resources/META-INF/services/`.
+8. Register `org.apache.shardingsphere.mcp.spi.MCPHandlerProvider` under
`src/main/resources/META-INF/services/`.
9. Add descriptors under `META-INF/shardingsphere-mcp/mcp-descriptors`.
If the feature should be shipped as an official default capability:
diff --git
a/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/prompt/descriptor/MCPPromptArgumentDescriptor.java
b/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/prompt/MCPPromptArgumentDescriptor.java
similarity index 94%
rename from
mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/prompt/descriptor/MCPPromptArgumentDescriptor.java
rename to
mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/prompt/MCPPromptArgumentDescriptor.java
index 461f6b442aa..8102b550d64 100644
---
a/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/prompt/descriptor/MCPPromptArgumentDescriptor.java
+++
b/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/prompt/MCPPromptArgumentDescriptor.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mcp.api.prompt.descriptor;
+package org.apache.shardingsphere.mcp.api.prompt;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
diff --git
a/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/prompt/descriptor/MCPPromptDescriptor.java
b/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/prompt/MCPPromptDescriptor.java
similarity index 93%
rename from
mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/prompt/descriptor/MCPPromptDescriptor.java
rename to
mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/prompt/MCPPromptDescriptor.java
index 8c3fbb68839..69214dbae3b 100644
---
a/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/prompt/descriptor/MCPPromptDescriptor.java
+++
b/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/prompt/MCPPromptDescriptor.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mcp.api.prompt.descriptor;
+package org.apache.shardingsphere.mcp.api.prompt;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@@ -24,7 +24,7 @@ import java.util.List;
import java.util.Map;
/**
- * MCP prompt descriptor.
+ * SDK-independent MCP prompt descriptor.
*/
@RequiredArgsConstructor
@Getter
diff --git
a/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/resource/descriptor/MCPResourceAnnotations.java
b/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/resource/MCPResourceAnnotations.java
similarity index 94%
rename from
mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/resource/descriptor/MCPResourceAnnotations.java
rename to
mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/resource/MCPResourceAnnotations.java
index a2690bb22c4..c6342bd553a 100644
---
a/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/resource/descriptor/MCPResourceAnnotations.java
+++
b/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/resource/MCPResourceAnnotations.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mcp.api.resource.descriptor;
+package org.apache.shardingsphere.mcp.api.resource;
import com.google.common.base.Strings;
import lombok.Getter;
@@ -25,7 +25,7 @@ import java.util.Collections;
import java.util.List;
/**
- * MCP resource annotations.
+ * SDK-independent MCP resource annotations.
*/
@RequiredArgsConstructor
@Getter
diff --git
a/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/resource/descriptor/MCPResourceDescriptor.java
b/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/resource/MCPResourceDescriptor.java
similarity index 94%
rename from
mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/resource/descriptor/MCPResourceDescriptor.java
rename to
mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/resource/MCPResourceDescriptor.java
index e1d1932ff14..5a1dec691b4 100644
---
a/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/resource/descriptor/MCPResourceDescriptor.java
+++
b/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/resource/MCPResourceDescriptor.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mcp.api.resource.descriptor;
+package org.apache.shardingsphere.mcp.api.resource;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@@ -23,7 +23,7 @@ import lombok.RequiredArgsConstructor;
import java.util.Map;
/**
- * MCP resource descriptor.
+ * SDK-independent MCP resource descriptor.
*
* <p>The URI template is the canonical resource identifier. A fixed resource
URI is a URI template without variables.</p>
*/
diff --git
a/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/resource/MCPResourceHandler.java
b/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/resource/MCPResourceHandler.java
index f17b03cc67e..1792798309f 100644
---
a/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/resource/MCPResourceHandler.java
+++
b/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/resource/MCPResourceHandler.java
@@ -24,6 +24,8 @@ import
org.apache.shardingsphere.mcp.api.payload.MCPSuccessPayload;
/**
* MCP resource handler.
*
+ * <p>Implementations must support concurrent invocations and must not retain
request context or URI variables after {@link #handle} returns.</p>
+ *
* @param <T> required request context type
*/
public interface MCPResourceHandler<T extends MCPRequestContext> {
diff --git
a/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/tool/descriptor/MCPToolAnnotations.java
b/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/tool/MCPToolAnnotations.java
similarity index 94%
rename from
mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/tool/descriptor/MCPToolAnnotations.java
rename to
mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/tool/MCPToolAnnotations.java
index 9e974b75b5f..25b89ff1a08 100644
---
a/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/tool/descriptor/MCPToolAnnotations.java
+++
b/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/tool/MCPToolAnnotations.java
@@ -15,13 +15,13 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mcp.api.tool.descriptor;
+package org.apache.shardingsphere.mcp.api.tool;
import lombok.Builder;
import lombok.Getter;
/**
- * MCP tool annotations.
+ * SDK-independent MCP tool annotations.
*/
@Getter
public final class MCPToolAnnotations {
diff --git
a/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/tool/descriptor/MCPToolDescriptor.java
b/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/tool/MCPToolDescriptor.java
similarity index 93%
rename from
mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/tool/descriptor/MCPToolDescriptor.java
rename to
mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/tool/MCPToolDescriptor.java
index 7608ca59f8a..49afbe9b850 100644
---
a/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/tool/descriptor/MCPToolDescriptor.java
+++
b/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/tool/MCPToolDescriptor.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mcp.api.tool.descriptor;
+package org.apache.shardingsphere.mcp.api.tool;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@@ -23,7 +23,7 @@ import lombok.RequiredArgsConstructor;
import java.util.Map;
/**
- * MCP tool descriptor.
+ * SDK-independent MCP tool descriptor.
*/
@RequiredArgsConstructor
@Getter
diff --git
a/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/tool/MCPToolHandler.java
b/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/tool/MCPToolHandler.java
index fb40d0e6ea9..357e4d378bc 100644
---
a/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/tool/MCPToolHandler.java
+++
b/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/tool/MCPToolHandler.java
@@ -26,6 +26,8 @@ import java.util.Map;
/**
* MCP tool handler.
*
+ * <p>Implementations must support concurrent invocations and must not retain
request context or arguments after {@link #handle} returns.</p>
+ *
* @param <T> required request context type
*/
public interface MCPToolHandler<T extends MCPRequestContext> {
diff --git
a/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/MCPHandlerProvider.java
b/mcp/api/src/main/java/org/apache/shardingsphere/mcp/spi/MCPHandlerProvider.java
similarity index 74%
rename from
mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/MCPHandlerProvider.java
rename to
mcp/api/src/main/java/org/apache/shardingsphere/mcp/spi/MCPHandlerProvider.java
index 9cefa487cbc..1acaec556a0 100644
---
a/mcp/api/src/main/java/org/apache/shardingsphere/mcp/api/MCPHandlerProvider.java
+++
b/mcp/api/src/main/java/org/apache/shardingsphere/mcp/spi/MCPHandlerProvider.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mcp.api;
+package org.apache.shardingsphere.mcp.spi;
import org.apache.shardingsphere.infra.spi.ShardingSphereSPI;
import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
@@ -26,6 +26,9 @@ import java.util.Collection;
/**
* MCP handler provider.
+ *
+ * <p>The provider is loaded as a singleton SPI. Handler instances returned by
this provider are retained by the runtime and may be invoked concurrently.
+ * Implementations must not retain request-scoped state.</p>
*/
@SingletonSPI
public interface MCPHandlerProvider extends ShardingSphereSPI {
@@ -33,6 +36,8 @@ public interface MCPHandlerProvider extends ShardingSphereSPI
{
/**
* Get resource handlers.
*
+ * <p>The returned collection may be empty, but must not be {@code null}
or contain {@code null} elements.</p>
+ *
* @return resource handlers
*/
Collection<MCPResourceHandler<?>> getResourceHandlers();
@@ -40,6 +45,8 @@ public interface MCPHandlerProvider extends ShardingSphereSPI
{
/**
* Get tool handlers.
*
+ * <p>The returned collection may be empty, but must not be {@code null}
or contain {@code null} elements.</p>
+ *
* @return tool handlers
*/
Collection<MCPToolHandler<?>> getToolHandlers();
diff --git
a/mcp/api/src/test/java/org/apache/shardingsphere/mcp/api/resource/descriptor/MCPResourceAnnotationsTest.java
b/mcp/api/src/test/java/org/apache/shardingsphere/mcp/api/resource/MCPResourceAnnotationsTest.java
similarity index 96%
rename from
mcp/api/src/test/java/org/apache/shardingsphere/mcp/api/resource/descriptor/MCPResourceAnnotationsTest.java
rename to
mcp/api/src/test/java/org/apache/shardingsphere/mcp/api/resource/MCPResourceAnnotationsTest.java
index 01886f1dec8..21d21c7936f 100644
---
a/mcp/api/src/test/java/org/apache/shardingsphere/mcp/api/resource/descriptor/MCPResourceAnnotationsTest.java
+++
b/mcp/api/src/test/java/org/apache/shardingsphere/mcp/api/resource/MCPResourceAnnotationsTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mcp.api.resource.descriptor;
+package org.apache.shardingsphere.mcp.api.resource;
import org.junit.jupiter.api.Test;
diff --git
a/mcp/api/src/test/java/org/apache/shardingsphere/mcp/api/resource/descriptor/MCPResourceDescriptorTest.java
b/mcp/api/src/test/java/org/apache/shardingsphere/mcp/api/resource/MCPResourceDescriptorTest.java
similarity index 97%
rename from
mcp/api/src/test/java/org/apache/shardingsphere/mcp/api/resource/descriptor/MCPResourceDescriptorTest.java
rename to
mcp/api/src/test/java/org/apache/shardingsphere/mcp/api/resource/MCPResourceDescriptorTest.java
index 10bdecedafa..01062e8ad36 100644
---
a/mcp/api/src/test/java/org/apache/shardingsphere/mcp/api/resource/descriptor/MCPResourceDescriptorTest.java
+++
b/mcp/api/src/test/java/org/apache/shardingsphere/mcp/api/resource/MCPResourceDescriptorTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mcp.api.resource.descriptor;
+package org.apache.shardingsphere.mcp.api.resource;
import org.junit.jupiter.api.Test;
diff --git
a/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/prompt/MCPPromptSpecificationFactory.java
b/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/prompt/MCPPromptSpecificationFactory.java
index 587b8a793d6..1f483b4e506 100644
---
a/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/prompt/MCPPromptSpecificationFactory.java
+++
b/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/prompt/MCPPromptSpecificationFactory.java
@@ -20,8 +20,8 @@ package
org.apache.shardingsphere.mcp.bootstrap.transport.capability.prompt;
import
io.modelcontextprotocol.server.McpServerFeatures.SyncPromptSpecification;
import io.modelcontextprotocol.spec.McpSchema;
import org.apache.shardingsphere.mcp.api.exception.MCPInvalidRequestException;
-import
org.apache.shardingsphere.mcp.api.prompt.descriptor.MCPPromptArgumentDescriptor;
-import org.apache.shardingsphere.mcp.api.prompt.descriptor.MCPPromptDescriptor;
+import org.apache.shardingsphere.mcp.api.prompt.MCPPromptArgumentDescriptor;
+import org.apache.shardingsphere.mcp.api.prompt.MCPPromptDescriptor;
import
org.apache.shardingsphere.mcp.bootstrap.transport.MCPTransportErrorFactory;
import
org.apache.shardingsphere.mcp.support.descriptor.MCPDescriptorCatalogIndex;
import
org.apache.shardingsphere.mcp.support.descriptor.MCPPromptTemplateBinding;
diff --git
a/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/resource/MCPResourceSpecificationFactory.java
b/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/resource/MCPResourceSpecificationFactory.java
index cd3f33c73e8..8f818e3d90d 100644
---
a/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/resource/MCPResourceSpecificationFactory.java
+++
b/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/resource/MCPResourceSpecificationFactory.java
@@ -23,8 +23,8 @@ import io.modelcontextprotocol.spec.McpSchema;
import io.modelcontextprotocol.spec.McpSchema.ReadResourceResult;
import io.modelcontextprotocol.spec.McpSchema.TextResourceContents;
import org.apache.shardingsphere.infra.util.json.JsonUtils;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceAnnotations;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceAnnotations;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
import
org.apache.shardingsphere.mcp.bootstrap.transport.MCPTransportErrorFactory;
import org.apache.shardingsphere.mcp.core.context.MCPRuntimeContext;
import org.apache.shardingsphere.mcp.core.resource.MCPResourceController;
diff --git
a/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPCallToolResultFactory.java
b/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPCallToolResultFactory.java
index 48c926fd8ee..6f559a70ec3 100644
---
a/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPCallToolResultFactory.java
+++
b/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPCallToolResultFactory.java
@@ -23,7 +23,7 @@ import
io.modelcontextprotocol.json.schema.jackson2.DefaultJsonSchemaValidator;
import io.modelcontextprotocol.spec.McpSchema.CallToolResult;
import org.apache.shardingsphere.infra.util.json.JsonUtils;
import org.apache.shardingsphere.mcp.api.payload.MCPSuccessPayload;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import org.apache.shardingsphere.mcp.core.protocol.error.MCPErrorPayload;
import
org.apache.shardingsphere.mcp.support.descriptor.MCPShardingSphereMetadataKeys;
diff --git
a/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPToolClarificationPolicy.java
b/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPToolClarificationPolicy.java
index 903b58c4745..fbb3b47f12d 100644
---
a/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPToolClarificationPolicy.java
+++
b/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPToolClarificationPolicy.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.mcp.bootstrap.transport.capability.tool;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import
org.apache.shardingsphere.mcp.support.descriptor.MCPDescriptorCatalogIndex;
import org.apache.shardingsphere.mcp.support.protocol.MCPPayloadFieldNames;
import org.apache.shardingsphere.mcp.support.workflow.model.WorkflowFieldNames;
diff --git
a/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPToolElicitationHandler.java
b/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPToolElicitationHandler.java
index c303fc2240e..9a1ab25a7cb 100644
---
a/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPToolElicitationHandler.java
+++
b/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPToolElicitationHandler.java
@@ -22,7 +22,7 @@ import io.modelcontextprotocol.spec.McpError;
import io.modelcontextprotocol.spec.McpSchema;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.mcp.api.payload.MCPSuccessPayload;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import org.apache.shardingsphere.mcp.api.transport.MCPTransportType;
import org.apache.shardingsphere.mcp.core.tool.MCPToolController;
import org.apache.shardingsphere.mcp.core.tool.handler.MCPToolDefinition;
diff --git
a/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPToolSpecificationFactory.java
b/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPToolSpecificationFactory.java
index 90ca175ffdb..0cbce94e736 100644
---
a/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPToolSpecificationFactory.java
+++
b/mcp/bootstrap/src/main/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPToolSpecificationFactory.java
@@ -23,8 +23,8 @@ import io.modelcontextprotocol.spec.McpSchema;
import io.modelcontextprotocol.spec.McpSchema.ToolAnnotations;
import org.apache.shardingsphere.mcp.api.payload.MCPSuccessPayload;
import org.apache.shardingsphere.mcp.api.exception.ShardingSphereMCPException;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolAnnotations;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolAnnotations;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import
org.apache.shardingsphere.mcp.bootstrap.transport.MCPTransportErrorFactory;
import org.apache.shardingsphere.mcp.core.context.MCPRuntimeContext;
import org.apache.shardingsphere.mcp.core.protocol.error.MCPErrorConverter;
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 25eaaf8ee70..6130ebb13a9 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
@@ -26,8 +26,8 @@ import
io.modelcontextprotocol.spec.McpSchema.ReadResourceRequest;
import io.modelcontextprotocol.spec.McpSchema.ReadResourceResult;
import io.modelcontextprotocol.spec.McpSchema.TextResourceContents;
import org.apache.shardingsphere.mcp.api.exception.MCPInvalidRequestException;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceAnnotations;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceAnnotations;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
import org.apache.shardingsphere.mcp.api.session.MCPSessionIdentity;
import org.apache.shardingsphere.mcp.api.transport.MCPTransportType;
import
org.apache.shardingsphere.mcp.core.context.MCPFeatureRuntimeRequestContext;
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 3043704135e..dd618b529d1 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
@@ -29,8 +29,8 @@ import org.apache.shardingsphere.infra.util.json.JsonUtils;
import org.apache.shardingsphere.mcp.api.payload.MCPSuccessPayload;
import org.apache.shardingsphere.mcp.api.transport.MCPTransportType;
import org.apache.shardingsphere.mcp.api.tool.MCPToolHandler;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolAnnotations;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolAnnotations;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import
org.apache.shardingsphere.mcp.core.context.MCPFeatureRuntimeRequestContext;
import org.apache.shardingsphere.mcp.core.context.MCPRuntimeContext;
import org.apache.shardingsphere.mcp.core.session.MCPSessionManager;
diff --git
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPCallToolResultFactoryTest.java
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPCallToolResultFactoryTest.java
index e14e6be24cb..fc630a41bfe 100644
---
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPCallToolResultFactoryTest.java
+++
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPCallToolResultFactoryTest.java
@@ -27,7 +27,7 @@ import io.modelcontextprotocol.spec.McpSchema.TextContent;
import org.apache.shardingsphere.infra.util.json.JsonUtils;
import org.apache.shardingsphere.mcp.api.payload.MCPSuccessPayload;
import org.apache.shardingsphere.mcp.api.transport.MCPTransportType;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import org.apache.shardingsphere.mcp.core.protocol.error.MCPErrorConverter;
import org.apache.shardingsphere.mcp.core.protocol.error.MCPErrorPayload;
import
org.apache.shardingsphere.mcp.core.tool.handler.metadata.ValidateRuntimeDatabaseToolHandler;
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 b35fa599417..59b846c8d81 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
@@ -24,7 +24,7 @@ import io.modelcontextprotocol.spec.McpSchema.ErrorCodes;
import io.modelcontextprotocol.spec.McpSchema.CallToolResult;
import org.apache.shardingsphere.mcp.api.exception.MCPInvalidRequestException;
import org.apache.shardingsphere.mcp.api.transport.MCPTransportType;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolAnnotations;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolAnnotations;
import org.apache.shardingsphere.mcp.core.context.MCPRuntimeContext;
import
org.apache.shardingsphere.mcp.core.context.MCPFeatureRuntimeRequestContext;
import
org.apache.shardingsphere.mcp.core.protocol.exception.UnsupportedToolException;
diff --git
a/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/handler/core/CoreHandlerProvider.java
b/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/handler/core/CoreHandlerProvider.java
index be24a1f118f..cd425d4dbbb 100644
---
a/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/handler/core/CoreHandlerProvider.java
+++
b/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/handler/core/CoreHandlerProvider.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.mcp.core.handler.core;
import org.apache.shardingsphere.mcp.api.resource.MCPResourceHandler;
-import org.apache.shardingsphere.mcp.api.MCPHandlerProvider;
+import org.apache.shardingsphere.mcp.spi.MCPHandlerProvider;
import org.apache.shardingsphere.mcp.api.tool.MCPToolHandler;
import java.util.Collection;
diff --git
a/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/resource/handler/MCPResourceDefinition.java
b/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/resource/handler/MCPResourceDefinition.java
index 5aac2732d0e..12281700563 100644
---
a/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/resource/handler/MCPResourceDefinition.java
+++
b/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/resource/handler/MCPResourceDefinition.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.mcp.core.resource.handler;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.mcp.api.resource.MCPResourceHandler;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
import org.apache.shardingsphere.mcp.core.resource.uri.MCPUriPattern;
/**
diff --git
a/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/resource/handler/ResourceDefinitionRegistry.java
b/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/resource/handler/ResourceDefinitionRegistry.java
index 5d3a9aae85a..53c5c60b145 100644
---
a/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/resource/handler/ResourceDefinitionRegistry.java
+++
b/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/resource/handler/ResourceDefinitionRegistry.java
@@ -22,11 +22,11 @@ import lombok.NoArgsConstructor;
import org.apache.shardingsphere.infra.exception.ShardingSpherePreconditions;
import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
import org.apache.shardingsphere.mcp.api.MCPRequestContext;
-import org.apache.shardingsphere.mcp.api.MCPHandlerProvider;
+import org.apache.shardingsphere.mcp.spi.MCPHandlerProvider;
import org.apache.shardingsphere.mcp.api.payload.MCPSuccessPayload;
import org.apache.shardingsphere.mcp.api.resource.MCPResourceHandler;
import org.apache.shardingsphere.mcp.api.resource.MCPUriVariables;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
import
org.apache.shardingsphere.mcp.core.context.MCPFeatureRuntimeRequestContext;
import org.apache.shardingsphere.mcp.core.handler.MCPRequestContextTypes;
import org.apache.shardingsphere.mcp.core.resource.uri.MCPUriPattern;
diff --git
a/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/resource/handler/metadata/MetadataResourceHandler.java
b/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/resource/handler/metadata/MetadataResourceHandler.java
index 94bc905b3b9..39cb89f7315 100644
---
a/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/resource/handler/metadata/MetadataResourceHandler.java
+++
b/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/resource/handler/metadata/MetadataResourceHandler.java
@@ -21,7 +21,7 @@ import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.mcp.api.payload.MCPSuccessPayload;
import org.apache.shardingsphere.mcp.api.resource.MCPResourceHandler;
import org.apache.shardingsphere.mcp.api.resource.MCPUriVariables;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
import org.apache.shardingsphere.mcp.support.MCPFeatureRequestContext;
import
org.apache.shardingsphere.mcp.support.descriptor.MCPDescriptorCatalogIndex;
import
org.apache.shardingsphere.mcp.support.descriptor.ShardingSphereMCPResourceMetadata;
diff --git
a/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/resource/handler/metadata/MetadataResourceResponseFactory.java
b/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/resource/handler/metadata/MetadataResourceResponseFactory.java
index 6f1fdbe9f07..4b7b8e177f0 100644
---
a/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/resource/handler/metadata/MetadataResourceResponseFactory.java
+++
b/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/resource/handler/metadata/MetadataResourceResponseFactory.java
@@ -19,7 +19,7 @@ package
org.apache.shardingsphere.mcp.core.resource.handler.metadata;
import org.apache.shardingsphere.mcp.api.payload.MCPSuccessPayload;
import org.apache.shardingsphere.mcp.api.resource.MCPUriVariables;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
import org.apache.shardingsphere.mcp.support.MCPFeatureRequestContext;
import
org.apache.shardingsphere.mcp.support.descriptor.MCPDescriptorCatalogIndex;
import
org.apache.shardingsphere.mcp.support.descriptor.ShardingSphereMCPResourceMetadata;
diff --git
a/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/tool/handler/MCPToolDefinition.java
b/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/tool/handler/MCPToolDefinition.java
index c435ac3ba95..fe15114fbdb 100644
---
a/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/tool/handler/MCPToolDefinition.java
+++
b/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/tool/handler/MCPToolDefinition.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.mcp.core.tool.handler;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.mcp.api.tool.MCPToolHandler;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
/**
* MCP tool definition.
diff --git
a/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/tool/handler/ToolDefinitionRegistry.java
b/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/tool/handler/ToolDefinitionRegistry.java
index 49fe54f324a..a557ae909f7 100644
---
a/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/tool/handler/ToolDefinitionRegistry.java
+++
b/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/tool/handler/ToolDefinitionRegistry.java
@@ -22,10 +22,10 @@ import lombok.NoArgsConstructor;
import org.apache.shardingsphere.infra.exception.ShardingSpherePreconditions;
import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
import org.apache.shardingsphere.mcp.api.MCPRequestContext;
-import org.apache.shardingsphere.mcp.api.MCPHandlerProvider;
+import org.apache.shardingsphere.mcp.spi.MCPHandlerProvider;
import org.apache.shardingsphere.mcp.api.payload.MCPSuccessPayload;
import org.apache.shardingsphere.mcp.api.tool.MCPToolHandler;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import
org.apache.shardingsphere.mcp.core.context.MCPFeatureRuntimeRequestContext;
import org.apache.shardingsphere.mcp.core.handler.MCPRequestContextTypes;
import
org.apache.shardingsphere.mcp.core.protocol.exception.UnsupportedToolException;
diff --git
a/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/workflow/WorkflowRuntimeDefinitionRegistry.java
b/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/workflow/WorkflowRuntimeDefinitionRegistry.java
index d592dbd8dc2..3b4a360a308 100644
---
a/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/workflow/WorkflowRuntimeDefinitionRegistry.java
+++
b/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/workflow/WorkflowRuntimeDefinitionRegistry.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.mcp.core.workflow;
import org.apache.shardingsphere.infra.exception.ShardingSpherePreconditions;
import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
-import org.apache.shardingsphere.mcp.api.MCPHandlerProvider;
+import org.apache.shardingsphere.mcp.spi.MCPHandlerProvider;
import org.apache.shardingsphere.mcp.api.exception.MCPInvalidRequestException;
import
org.apache.shardingsphere.mcp.core.protocol.exception.MCPWorkflowStateException;
import
org.apache.shardingsphere.mcp.support.workflow.model.WorkflowContextSnapshot;
diff --git
a/mcp/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.api.MCPHandlerProvider
b/mcp/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.spi.MCPHandlerProvider
similarity index 100%
rename from
mcp/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.api.MCPHandlerProvider
rename to
mcp/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.spi.MCPHandlerProvider
diff --git
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/CoreResourceHandlerSurfaceTest.java
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/CoreResourceHandlerSurfaceTest.java
index 50b4483928f..e70632cf2d7 100644
---
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/CoreResourceHandlerSurfaceTest.java
+++
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/CoreResourceHandlerSurfaceTest.java
@@ -23,7 +23,7 @@ import
org.apache.shardingsphere.mcp.api.exception.MCPUnsupportedException;
import org.apache.shardingsphere.mcp.api.payload.MCPSuccessPayload;
import org.apache.shardingsphere.mcp.api.resource.MCPResourceHandler;
import org.apache.shardingsphere.mcp.api.resource.MCPUriVariables;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
import
org.apache.shardingsphere.mcp.core.context.MCPFeatureRuntimeRequestContext;
import org.apache.shardingsphere.mcp.core.context.MCPRuntimeContext;
import org.apache.shardingsphere.mcp.core.resource.ResourceTestDataFactory;
diff --git
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/ResourceDefinitionRegistryTest.java
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/ResourceDefinitionRegistryTest.java
index 16e4ca4bee2..1f7fd216218 100644
---
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/ResourceDefinitionRegistryTest.java
+++
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/ResourceDefinitionRegistryTest.java
@@ -19,10 +19,10 @@ package org.apache.shardingsphere.mcp.core.resource.handler;
import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
import org.apache.shardingsphere.mcp.api.MCPRequestContext;
-import org.apache.shardingsphere.mcp.api.MCPHandlerProvider;
+import org.apache.shardingsphere.mcp.spi.MCPHandlerProvider;
import org.apache.shardingsphere.mcp.api.payload.MCPSuccessPayload;
import org.apache.shardingsphere.mcp.api.resource.MCPResourceHandler;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
import
org.apache.shardingsphere.mcp.core.context.MCPFeatureRuntimeRequestContext;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
diff --git
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/metadata/MetadataResourceHandlerTest.java
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/metadata/MetadataResourceHandlerTest.java
index 3f7b29de61f..4f0de35cc22 100644
---
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/metadata/MetadataResourceHandlerTest.java
+++
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/metadata/MetadataResourceHandlerTest.java
@@ -20,7 +20,7 @@ package
org.apache.shardingsphere.mcp.core.resource.handler.metadata;
import
org.apache.shardingsphere.database.connector.core.metadata.identifier.IdentifierCasePolicyFactory;
import org.apache.shardingsphere.mcp.api.payload.MCPSuccessPayload;
import org.apache.shardingsphere.mcp.api.resource.MCPUriVariables;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
import org.apache.shardingsphere.mcp.support.MCPFeatureRequestContext;
import
org.apache.shardingsphere.mcp.support.database.metadata.jdbc.RuntimeDatabaseProfile;
import
org.apache.shardingsphere.mcp.support.database.metadata.TransactionCapability;
diff --git
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/metadata/MetadataResourceResponseFactoryTest.java
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/metadata/MetadataResourceResponseFactoryTest.java
index 7ad11f55155..108f5972b06 100644
---
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/metadata/MetadataResourceResponseFactoryTest.java
+++
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/handler/metadata/MetadataResourceResponseFactoryTest.java
@@ -19,7 +19,7 @@ package
org.apache.shardingsphere.mcp.core.resource.handler.metadata;
import org.apache.shardingsphere.mcp.api.payload.MCPSuccessPayload;
import org.apache.shardingsphere.mcp.api.resource.MCPUriVariables;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
import org.apache.shardingsphere.mcp.support.MCPFeatureRequestContext;
import
org.apache.shardingsphere.mcp.support.descriptor.MCPDescriptorCatalogIndex;
import
org.apache.shardingsphere.mcp.support.descriptor.ShardingSphereMCPResourceMetadata;
diff --git
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/tool/handler/ToolDefinitionRegistryTest.java
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/tool/handler/ToolDefinitionRegistryTest.java
index 158a13edf06..be7dbb4400f 100644
---
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/tool/handler/ToolDefinitionRegistryTest.java
+++
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/tool/handler/ToolDefinitionRegistryTest.java
@@ -20,11 +20,11 @@ package org.apache.shardingsphere.mcp.core.tool.handler;
import org.apache.shardingsphere.mcp.api.session.MCPSessionIdentity;
import org.apache.shardingsphere.infra.exception.ShardingSpherePreconditions;
import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
-import org.apache.shardingsphere.mcp.api.MCPHandlerProvider;
+import org.apache.shardingsphere.mcp.spi.MCPHandlerProvider;
import org.apache.shardingsphere.mcp.api.exception.MCPInvalidRequestException;
import org.apache.shardingsphere.mcp.api.payload.MCPSuccessPayload;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolAnnotations;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolAnnotations;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import
org.apache.shardingsphere.mcp.core.context.MCPFeatureRuntimeRequestContext;
import org.apache.shardingsphere.mcp.core.context.MCPRuntimeContext;
import
org.apache.shardingsphere.mcp.core.protocol.exception.MCPExecutionModeRequiredException;
diff --git
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/tool/handler/metadata/SearchMetadataToolHandlerTest.java
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/tool/handler/metadata/SearchMetadataToolHandlerTest.java
index eb7b71eae3f..dc1fd977878 100644
---
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/tool/handler/metadata/SearchMetadataToolHandlerTest.java
+++
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/tool/handler/metadata/SearchMetadataToolHandlerTest.java
@@ -20,7 +20,7 @@ package
org.apache.shardingsphere.mcp.core.tool.handler.metadata;
import org.apache.shardingsphere.mcp.api.session.MCPSessionIdentity;
import org.apache.shardingsphere.mcp.api.exception.MCPInvalidRequestException;
import org.apache.shardingsphere.mcp.api.payload.MCPSuccessPayload;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import
org.apache.shardingsphere.mcp.core.context.MCPFeatureRuntimeRequestContext;
import org.apache.shardingsphere.mcp.core.context.MCPRuntimeContext;
import org.apache.shardingsphere.mcp.core.resource.ResourceTestDataFactory;
diff --git
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/tool/handler/workflow/WorkflowExecutionToolHandlerTest.java
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/tool/handler/workflow/WorkflowExecutionToolHandlerTest.java
index d7d07487a9f..0ac7e9f4276 100644
---
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/tool/handler/workflow/WorkflowExecutionToolHandlerTest.java
+++
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/tool/handler/workflow/WorkflowExecutionToolHandlerTest.java
@@ -19,7 +19,7 @@ package
org.apache.shardingsphere.mcp.core.tool.handler.workflow;
import org.apache.shardingsphere.mcp.api.exception.MCPInvalidRequestException;
import org.apache.shardingsphere.mcp.api.payload.MCPSuccessPayload;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import org.apache.shardingsphere.mcp.core.workflow.WorkflowExecutionService;
import
org.apache.shardingsphere.mcp.core.workflow.WorkflowRuntimeDefinitionRegistry;
import
org.apache.shardingsphere.mcp.support.descriptor.MCPDescriptorCatalogIndex;
diff --git
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/tool/handler/workflow/WorkflowValidationToolHandlerTest.java
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/tool/handler/workflow/WorkflowValidationToolHandlerTest.java
index 216169b5b93..226054c3841 100644
---
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/tool/handler/workflow/WorkflowValidationToolHandlerTest.java
+++
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/tool/handler/workflow/WorkflowValidationToolHandlerTest.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.mcp.core.tool.handler.workflow;
import org.apache.shardingsphere.mcp.api.payload.MCPSuccessPayload;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import
org.apache.shardingsphere.mcp.core.workflow.WorkflowRuntimeDefinitionRegistry;
import
org.apache.shardingsphere.mcp.support.descriptor.MCPDescriptorCatalogIndex;
import
org.apache.shardingsphere.mcp.support.workflow.model.WorkflowContextSnapshot;
diff --git
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/workflow/WorkflowRuntimeDefinitionRegistryTest.java
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/workflow/WorkflowRuntimeDefinitionRegistryTest.java
index 9b2e89fee41..53f0d3a562e 100644
---
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/workflow/WorkflowRuntimeDefinitionRegistryTest.java
+++
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/workflow/WorkflowRuntimeDefinitionRegistryTest.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.mcp.core.workflow;
import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
-import org.apache.shardingsphere.mcp.api.MCPHandlerProvider;
+import org.apache.shardingsphere.mcp.spi.MCPHandlerProvider;
import org.apache.shardingsphere.mcp.api.exception.MCPInvalidRequestException;
import
org.apache.shardingsphere.mcp.core.protocol.exception.MCPWorkflowStateException;
import
org.apache.shardingsphere.mcp.support.workflow.model.WorkflowContextSnapshot;
diff --git
a/mcp/features/broadcast/src/main/java/org/apache/shardingsphere/mcp/feature/broadcast/BroadcastMCPHandlerProvider.java
b/mcp/features/broadcast/src/main/java/org/apache/shardingsphere/mcp/feature/broadcast/BroadcastMCPHandlerProvider.java
index 8b91437feb3..07eaef229d1 100644
---
a/mcp/features/broadcast/src/main/java/org/apache/shardingsphere/mcp/feature/broadcast/BroadcastMCPHandlerProvider.java
+++
b/mcp/features/broadcast/src/main/java/org/apache/shardingsphere/mcp/feature/broadcast/BroadcastMCPHandlerProvider.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.mcp.feature.broadcast;
-import org.apache.shardingsphere.mcp.api.MCPHandlerProvider;
+import org.apache.shardingsphere.mcp.spi.MCPHandlerProvider;
import org.apache.shardingsphere.mcp.api.resource.MCPResourceHandler;
import org.apache.shardingsphere.mcp.api.tool.MCPToolHandler;
import
org.apache.shardingsphere.mcp.feature.broadcast.resource.handler.BroadcastRuleCountHandler;
diff --git
a/mcp/features/broadcast/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.api.MCPHandlerProvider
b/mcp/features/broadcast/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.spi.MCPHandlerProvider
similarity index 100%
rename from
mcp/features/broadcast/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.api.MCPHandlerProvider
rename to
mcp/features/broadcast/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.spi.MCPHandlerProvider
diff --git
a/mcp/features/broadcast/src/test/java/org/apache/shardingsphere/mcp/feature/broadcast/BroadcastMCPHandlerProviderTest.java
b/mcp/features/broadcast/src/test/java/org/apache/shardingsphere/mcp/feature/broadcast/BroadcastMCPHandlerProviderTest.java
index 615d4b343c6..74f700792ef 100644
---
a/mcp/features/broadcast/src/test/java/org/apache/shardingsphere/mcp/feature/broadcast/BroadcastMCPHandlerProviderTest.java
+++
b/mcp/features/broadcast/src/test/java/org/apache/shardingsphere/mcp/feature/broadcast/BroadcastMCPHandlerProviderTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.mcp.feature.broadcast;
-import org.apache.shardingsphere.mcp.api.MCPHandlerProvider;
+import org.apache.shardingsphere.mcp.spi.MCPHandlerProvider;
import org.apache.shardingsphere.mcp.api.resource.MCPResourceHandler;
import org.apache.shardingsphere.mcp.api.tool.MCPToolHandler;
import
org.apache.shardingsphere.mcp.feature.broadcast.tool.service.BroadcastWorkflowValidationService;
diff --git
a/mcp/features/encrypt/src/main/java/org/apache/shardingsphere/mcp/feature/encrypt/EncryptMCPHandlerProvider.java
b/mcp/features/encrypt/src/main/java/org/apache/shardingsphere/mcp/feature/encrypt/EncryptMCPHandlerProvider.java
index 28fa85f5bf9..d31c75e7769 100644
---
a/mcp/features/encrypt/src/main/java/org/apache/shardingsphere/mcp/feature/encrypt/EncryptMCPHandlerProvider.java
+++
b/mcp/features/encrypt/src/main/java/org/apache/shardingsphere/mcp/feature/encrypt/EncryptMCPHandlerProvider.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.mcp.feature.encrypt;
import org.apache.shardingsphere.mcp.api.resource.MCPResourceHandler;
-import org.apache.shardingsphere.mcp.api.MCPHandlerProvider;
+import org.apache.shardingsphere.mcp.spi.MCPHandlerProvider;
import org.apache.shardingsphere.mcp.api.tool.MCPToolHandler;
import
org.apache.shardingsphere.mcp.feature.encrypt.resource.handler.EncryptAlgorithmsHandler;
import
org.apache.shardingsphere.mcp.feature.encrypt.resource.handler.EncryptRuleHandler;
diff --git
a/mcp/features/encrypt/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.api.MCPHandlerProvider
b/mcp/features/encrypt/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.spi.MCPHandlerProvider
similarity index 100%
rename from
mcp/features/encrypt/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.api.MCPHandlerProvider
rename to
mcp/features/encrypt/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.spi.MCPHandlerProvider
diff --git
a/mcp/features/encrypt/src/test/java/org/apache/shardingsphere/mcp/feature/encrypt/EncryptDescriptorContractTest.java
b/mcp/features/encrypt/src/test/java/org/apache/shardingsphere/mcp/feature/encrypt/EncryptDescriptorContractTest.java
index 496f520249e..d4ac640c79f 100644
---
a/mcp/features/encrypt/src/test/java/org/apache/shardingsphere/mcp/feature/encrypt/EncryptDescriptorContractTest.java
+++
b/mcp/features/encrypt/src/test/java/org/apache/shardingsphere/mcp/feature/encrypt/EncryptDescriptorContractTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.mcp.feature.encrypt;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import
org.apache.shardingsphere.mcp.support.descriptor.MCPCompletionTargetDescriptor;
import org.apache.shardingsphere.mcp.support.descriptor.MCPDescriptorCatalog;
import
org.apache.shardingsphere.mcp.support.descriptor.MCPDescriptorCatalogLoader;
diff --git
a/mcp/features/encrypt/src/test/java/org/apache/shardingsphere/mcp/feature/encrypt/EncryptMCPHandlerProviderTest.java
b/mcp/features/encrypt/src/test/java/org/apache/shardingsphere/mcp/feature/encrypt/EncryptMCPHandlerProviderTest.java
index e2c604fc5b1..5212abfa4b4 100644
---
a/mcp/features/encrypt/src/test/java/org/apache/shardingsphere/mcp/feature/encrypt/EncryptMCPHandlerProviderTest.java
+++
b/mcp/features/encrypt/src/test/java/org/apache/shardingsphere/mcp/feature/encrypt/EncryptMCPHandlerProviderTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.mcp.feature.encrypt;
-import org.apache.shardingsphere.mcp.api.MCPHandlerProvider;
+import org.apache.shardingsphere.mcp.spi.MCPHandlerProvider;
import org.apache.shardingsphere.mcp.api.resource.MCPResourceHandler;
import org.apache.shardingsphere.mcp.api.tool.MCPToolHandler;
import org.apache.shardingsphere.mcp.support.MCPFeatureRequestContext;
diff --git
a/mcp/features/mask/src/main/java/org/apache/shardingsphere/mcp/feature/mask/MaskMCPHandlerProvider.java
b/mcp/features/mask/src/main/java/org/apache/shardingsphere/mcp/feature/mask/MaskMCPHandlerProvider.java
index b757b1eb12d..67bba5c619d 100644
---
a/mcp/features/mask/src/main/java/org/apache/shardingsphere/mcp/feature/mask/MaskMCPHandlerProvider.java
+++
b/mcp/features/mask/src/main/java/org/apache/shardingsphere/mcp/feature/mask/MaskMCPHandlerProvider.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.mcp.feature.mask;
import org.apache.shardingsphere.mcp.api.resource.MCPResourceHandler;
-import org.apache.shardingsphere.mcp.api.MCPHandlerProvider;
+import org.apache.shardingsphere.mcp.spi.MCPHandlerProvider;
import org.apache.shardingsphere.mcp.api.tool.MCPToolHandler;
import
org.apache.shardingsphere.mcp.feature.mask.resource.handler.MaskAlgorithmsHandler;
import
org.apache.shardingsphere.mcp.feature.mask.resource.handler.MaskRuleHandler;
diff --git
a/mcp/features/mask/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.api.MCPHandlerProvider
b/mcp/features/mask/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.spi.MCPHandlerProvider
similarity index 100%
rename from
mcp/features/mask/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.api.MCPHandlerProvider
rename to
mcp/features/mask/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.spi.MCPHandlerProvider
diff --git
a/mcp/features/mask/src/test/java/org/apache/shardingsphere/mcp/feature/mask/MaskDescriptorContractTest.java
b/mcp/features/mask/src/test/java/org/apache/shardingsphere/mcp/feature/mask/MaskDescriptorContractTest.java
index 63ac93cdf90..e948f0c2c3f 100644
---
a/mcp/features/mask/src/test/java/org/apache/shardingsphere/mcp/feature/mask/MaskDescriptorContractTest.java
+++
b/mcp/features/mask/src/test/java/org/apache/shardingsphere/mcp/feature/mask/MaskDescriptorContractTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.mcp.feature.mask;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import org.apache.shardingsphere.mcp.support.descriptor.MCPDescriptorCatalog;
import
org.apache.shardingsphere.mcp.support.descriptor.MCPDescriptorCatalogLoader;
import
org.apache.shardingsphere.mcp.support.descriptor.MCPToolDescriptorValidationUtils;
diff --git
a/mcp/features/mask/src/test/java/org/apache/shardingsphere/mcp/feature/mask/MaskFeatureDefinitionTest.java
b/mcp/features/mask/src/test/java/org/apache/shardingsphere/mcp/feature/mask/MaskFeatureDefinitionTest.java
index 16b135f611c..f1e340a5da8 100644
---
a/mcp/features/mask/src/test/java/org/apache/shardingsphere/mcp/feature/mask/MaskFeatureDefinitionTest.java
+++
b/mcp/features/mask/src/test/java/org/apache/shardingsphere/mcp/feature/mask/MaskFeatureDefinitionTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.mcp.feature.mask;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import
org.apache.shardingsphere.mcp.support.descriptor.MCPCompletionTargetDescriptor;
import org.apache.shardingsphere.mcp.support.descriptor.MCPDescriptorCatalog;
import
org.apache.shardingsphere.mcp.support.descriptor.MCPDescriptorCatalogLoader;
diff --git
a/mcp/features/readwrite-splitting/src/main/java/org/apache/shardingsphere/mcp/feature/readwritesplitting/ReadwriteSplittingMCPHandlerProvider.java
b/mcp/features/readwrite-splitting/src/main/java/org/apache/shardingsphere/mcp/feature/readwritesplitting/ReadwriteSplittingMCPHandlerProvider.java
index 785f4c39908..e4e6a3bd1ea 100644
---
a/mcp/features/readwrite-splitting/src/main/java/org/apache/shardingsphere/mcp/feature/readwritesplitting/ReadwriteSplittingMCPHandlerProvider.java
+++
b/mcp/features/readwrite-splitting/src/main/java/org/apache/shardingsphere/mcp/feature/readwritesplitting/ReadwriteSplittingMCPHandlerProvider.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.mcp.feature.readwritesplitting;
-import org.apache.shardingsphere.mcp.api.MCPHandlerProvider;
+import org.apache.shardingsphere.mcp.spi.MCPHandlerProvider;
import org.apache.shardingsphere.mcp.api.resource.MCPResourceHandler;
import org.apache.shardingsphere.mcp.api.tool.MCPToolHandler;
import
org.apache.shardingsphere.mcp.feature.readwritesplitting.resource.handler.LoadBalanceAlgorithmPluginsHandler;
diff --git
a/mcp/features/readwrite-splitting/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.api.MCPHandlerProvider
b/mcp/features/readwrite-splitting/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.spi.MCPHandlerProvider
similarity index 100%
rename from
mcp/features/readwrite-splitting/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.api.MCPHandlerProvider
rename to
mcp/features/readwrite-splitting/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.spi.MCPHandlerProvider
diff --git
a/mcp/features/readwrite-splitting/src/test/java/org/apache/shardingsphere/mcp/feature/readwritesplitting/ReadwriteSplittingMCPHandlerProviderTest.java
b/mcp/features/readwrite-splitting/src/test/java/org/apache/shardingsphere/mcp/feature/readwritesplitting/ReadwriteSplittingMCPHandlerProviderTest.java
index 0705fcc54a5..1e39227ed04 100644
---
a/mcp/features/readwrite-splitting/src/test/java/org/apache/shardingsphere/mcp/feature/readwritesplitting/ReadwriteSplittingMCPHandlerProviderTest.java
+++
b/mcp/features/readwrite-splitting/src/test/java/org/apache/shardingsphere/mcp/feature/readwritesplitting/ReadwriteSplittingMCPHandlerProviderTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.mcp.feature.readwritesplitting;
-import org.apache.shardingsphere.mcp.api.MCPHandlerProvider;
+import org.apache.shardingsphere.mcp.spi.MCPHandlerProvider;
import org.apache.shardingsphere.mcp.api.resource.MCPResourceHandler;
import org.apache.shardingsphere.mcp.api.tool.MCPToolHandler;
import
org.apache.shardingsphere.mcp.feature.readwritesplitting.tool.service.ReadwriteSplittingRuleWorkflowValidationService;
diff --git
a/mcp/features/shadow/src/main/java/org/apache/shardingsphere/mcp/feature/shadow/ShadowMCPHandlerProvider.java
b/mcp/features/shadow/src/main/java/org/apache/shardingsphere/mcp/feature/shadow/ShadowMCPHandlerProvider.java
index 63b31ad23f4..982ef331218 100644
---
a/mcp/features/shadow/src/main/java/org/apache/shardingsphere/mcp/feature/shadow/ShadowMCPHandlerProvider.java
+++
b/mcp/features/shadow/src/main/java/org/apache/shardingsphere/mcp/feature/shadow/ShadowMCPHandlerProvider.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.mcp.feature.shadow;
-import org.apache.shardingsphere.mcp.api.MCPHandlerProvider;
+import org.apache.shardingsphere.mcp.spi.MCPHandlerProvider;
import org.apache.shardingsphere.mcp.api.resource.MCPResourceHandler;
import org.apache.shardingsphere.mcp.api.tool.MCPToolHandler;
import
org.apache.shardingsphere.mcp.feature.shadow.resource.handler.ShadowResourceHandler;
diff --git
a/mcp/features/shadow/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.api.MCPHandlerProvider
b/mcp/features/shadow/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.spi.MCPHandlerProvider
similarity index 100%
rename from
mcp/features/shadow/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.api.MCPHandlerProvider
rename to
mcp/features/shadow/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.spi.MCPHandlerProvider
diff --git
a/mcp/features/shadow/src/test/java/org/apache/shardingsphere/mcp/feature/shadow/ShadowDescriptorContractTest.java
b/mcp/features/shadow/src/test/java/org/apache/shardingsphere/mcp/feature/shadow/ShadowDescriptorContractTest.java
index 4c03903c765..97e471aa9f2 100644
---
a/mcp/features/shadow/src/test/java/org/apache/shardingsphere/mcp/feature/shadow/ShadowDescriptorContractTest.java
+++
b/mcp/features/shadow/src/test/java/org/apache/shardingsphere/mcp/feature/shadow/ShadowDescriptorContractTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.mcp.feature.shadow;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import
org.apache.shardingsphere.mcp.support.descriptor.MCPCompletionTargetDescriptor;
import org.apache.shardingsphere.mcp.support.descriptor.MCPDescriptorCatalog;
import
org.apache.shardingsphere.mcp.support.descriptor.MCPDescriptorCatalogLoader;
diff --git
a/mcp/features/sharding/src/main/java/org/apache/shardingsphere/mcp/feature/sharding/ShardingMCPHandlerProvider.java
b/mcp/features/sharding/src/main/java/org/apache/shardingsphere/mcp/feature/sharding/ShardingMCPHandlerProvider.java
index 7c90bd340a8..60efd491cf6 100644
---
a/mcp/features/sharding/src/main/java/org/apache/shardingsphere/mcp/feature/sharding/ShardingMCPHandlerProvider.java
+++
b/mcp/features/sharding/src/main/java/org/apache/shardingsphere/mcp/feature/sharding/ShardingMCPHandlerProvider.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.mcp.feature.sharding;
-import org.apache.shardingsphere.mcp.api.MCPHandlerProvider;
+import org.apache.shardingsphere.mcp.spi.MCPHandlerProvider;
import org.apache.shardingsphere.mcp.api.resource.MCPResourceHandler;
import org.apache.shardingsphere.mcp.api.tool.MCPToolHandler;
import
org.apache.shardingsphere.mcp.feature.sharding.resource.handler.ShardingAlgorithmResourceHandler;
diff --git
a/mcp/features/sharding/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.api.MCPHandlerProvider
b/mcp/features/sharding/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.spi.MCPHandlerProvider
similarity index 100%
rename from
mcp/features/sharding/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.api.MCPHandlerProvider
rename to
mcp/features/sharding/src/main/resources/META-INF/services/org.apache.shardingsphere.mcp.spi.MCPHandlerProvider
diff --git
a/mcp/features/sharding/src/test/java/org/apache/shardingsphere/mcp/feature/sharding/ShardingDescriptorContractTest.java
b/mcp/features/sharding/src/test/java/org/apache/shardingsphere/mcp/feature/sharding/ShardingDescriptorContractTest.java
index 74c576d5cca..f289d73023e 100644
---
a/mcp/features/sharding/src/test/java/org/apache/shardingsphere/mcp/feature/sharding/ShardingDescriptorContractTest.java
+++
b/mcp/features/sharding/src/test/java/org/apache/shardingsphere/mcp/feature/sharding/ShardingDescriptorContractTest.java
@@ -17,8 +17,8 @@
package org.apache.shardingsphere.mcp.feature.sharding;
-import org.apache.shardingsphere.mcp.api.prompt.descriptor.MCPPromptDescriptor;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.prompt.MCPPromptDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import
org.apache.shardingsphere.mcp.support.descriptor.MCPCompletionTargetDescriptor;
import org.apache.shardingsphere.mcp.support.descriptor.MCPDescriptorCatalog;
import
org.apache.shardingsphere.mcp.support.descriptor.MCPDescriptorCatalogLoader;
diff --git
a/mcp/features/sharding/src/test/java/org/apache/shardingsphere/mcp/feature/sharding/ShardingMCPHandlerProviderTest.java
b/mcp/features/sharding/src/test/java/org/apache/shardingsphere/mcp/feature/sharding/ShardingMCPHandlerProviderTest.java
index be0ca356066..cf06163efec 100644
---
a/mcp/features/sharding/src/test/java/org/apache/shardingsphere/mcp/feature/sharding/ShardingMCPHandlerProviderTest.java
+++
b/mcp/features/sharding/src/test/java/org/apache/shardingsphere/mcp/feature/sharding/ShardingMCPHandlerProviderTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.mcp.feature.sharding;
-import org.apache.shardingsphere.mcp.api.MCPHandlerProvider;
+import org.apache.shardingsphere.mcp.spi.MCPHandlerProvider;
import org.apache.shardingsphere.mcp.api.resource.MCPResourceHandler;
import org.apache.shardingsphere.mcp.api.tool.MCPToolHandler;
import
org.apache.shardingsphere.mcp.feature.sharding.resource.handler.ShardingAlgorithmResourceHandler;
diff --git
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPCompletionTargetDescriptorValidator.java
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPCompletionTargetDescriptorValidator.java
index fa2be3153a4..dcdff6f831a 100644
---
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPCompletionTargetDescriptorValidator.java
+++
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPCompletionTargetDescriptorValidator.java
@@ -20,9 +20,9 @@ package org.apache.shardingsphere.mcp.support.descriptor;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.infra.exception.ShardingSpherePreconditions;
-import
org.apache.shardingsphere.mcp.api.prompt.descriptor.MCPPromptArgumentDescriptor;
-import org.apache.shardingsphere.mcp.api.prompt.descriptor.MCPPromptDescriptor;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.prompt.MCPPromptArgumentDescriptor;
+import org.apache.shardingsphere.mcp.api.prompt.MCPPromptDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
import org.apache.shardingsphere.mcp.support.resource.MCPUriTemplate;
import java.util.Collection;
diff --git
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogIndex.java
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogIndex.java
index 440b1786dc0..296b6b724c1 100644
---
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogIndex.java
+++
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogIndex.java
@@ -19,9 +19,9 @@ package org.apache.shardingsphere.mcp.support.descriptor;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.mcp.api.prompt.descriptor.MCPPromptDescriptor;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.prompt.MCPPromptDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import java.util.Collection;
import java.util.LinkedHashMap;
diff --git
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogYamlSwapper.java
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogYamlSwapper.java
index 863db69c4d8..6224062dc3b 100644
---
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogYamlSwapper.java
+++
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogYamlSwapper.java
@@ -19,12 +19,12 @@ package org.apache.shardingsphere.mcp.support.descriptor;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import
org.apache.shardingsphere.mcp.api.prompt.descriptor.MCPPromptArgumentDescriptor;
-import org.apache.shardingsphere.mcp.api.prompt.descriptor.MCPPromptDescriptor;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceAnnotations;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolAnnotations;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.prompt.MCPPromptArgumentDescriptor;
+import org.apache.shardingsphere.mcp.api.prompt.MCPPromptDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceAnnotations;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolAnnotations;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import
org.apache.shardingsphere.mcp.support.descriptor.yaml.YamlMCPResourceAnnotations;
import
org.apache.shardingsphere.mcp.support.descriptor.yaml.YamlMCPCompletionTargetDescriptor;
import
org.apache.shardingsphere.mcp.support.descriptor.yaml.YamlMCPDescriptorCatalog;
diff --git
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPPromptDescriptorValidator.java
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPPromptDescriptorValidator.java
index 0c2ea5e4aed..a078b436c3a 100644
---
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPPromptDescriptorValidator.java
+++
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPPromptDescriptorValidator.java
@@ -20,8 +20,8 @@ package org.apache.shardingsphere.mcp.support.descriptor;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.infra.exception.ShardingSpherePreconditions;
-import
org.apache.shardingsphere.mcp.api.prompt.descriptor.MCPPromptArgumentDescriptor;
-import org.apache.shardingsphere.mcp.api.prompt.descriptor.MCPPromptDescriptor;
+import org.apache.shardingsphere.mcp.api.prompt.MCPPromptArgumentDescriptor;
+import org.apache.shardingsphere.mcp.api.prompt.MCPPromptDescriptor;
import java.util.Collection;
import java.util.LinkedHashMap;
diff --git
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPProtocolDescriptorCatalog.java
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPProtocolDescriptorCatalog.java
index 8b956d69f43..fdab19e318c 100644
---
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPProtocolDescriptorCatalog.java
+++
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPProtocolDescriptorCatalog.java
@@ -19,9 +19,9 @@ package org.apache.shardingsphere.mcp.support.descriptor;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.mcp.api.prompt.descriptor.MCPPromptDescriptor;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.prompt.MCPPromptDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import java.util.Collection;
import java.util.LinkedList;
diff --git
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPResourceDescriptorValidator.java
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPResourceDescriptorValidator.java
index f44491c398c..664402729b2 100644
---
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPResourceDescriptorValidator.java
+++
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPResourceDescriptorValidator.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.mcp.support.descriptor;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.infra.exception.ShardingSpherePreconditions;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
import org.apache.shardingsphere.mcp.support.resource.MCPUriTemplate;
import java.util.Collection;
diff --git
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPResourceNavigationDescriptorValidator.java
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPResourceNavigationDescriptorValidator.java
index 9d892f2b251..a86fdc2c3ce 100644
---
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPResourceNavigationDescriptorValidator.java
+++
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPResourceNavigationDescriptorValidator.java
@@ -20,9 +20,9 @@ package org.apache.shardingsphere.mcp.support.descriptor;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.infra.exception.ShardingSpherePreconditions;
-import org.apache.shardingsphere.mcp.api.prompt.descriptor.MCPPromptDescriptor;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.prompt.MCPPromptDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import java.util.Collection;
import java.util.HashSet;
diff --git
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPResourceNavigationPayloadBuilder.java
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPResourceNavigationPayloadBuilder.java
index 46183ad620d..76abaa236b0 100644
---
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPResourceNavigationPayloadBuilder.java
+++
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPResourceNavigationPayloadBuilder.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.mcp.support.descriptor;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.mcp.api.resource.MCPUriVariables;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
import org.apache.shardingsphere.mcp.support.protocol.MCPPayloadFieldNames;
import org.apache.shardingsphere.mcp.support.protocol.MCPResourceHintUtils;
import org.apache.shardingsphere.mcp.support.resource.MCPUriTemplate;
diff --git
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPToolDescriptorCatalogValidator.java
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPToolDescriptorCatalogValidator.java
index cf8c55d49ef..40c4a2597df 100644
---
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPToolDescriptorCatalogValidator.java
+++
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPToolDescriptorCatalogValidator.java
@@ -20,9 +20,9 @@ package org.apache.shardingsphere.mcp.support.descriptor;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.infra.exception.ShardingSpherePreconditions;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolAnnotations;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolAnnotations;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import org.apache.shardingsphere.mcp.support.protocol.MCPPayloadFieldNames;
import
org.apache.shardingsphere.mcp.support.workflow.descriptor.WorkflowToolDescriptors;
import org.apache.shardingsphere.mcp.support.workflow.model.WorkflowFieldNames;
diff --git
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPToolDescriptorValidationUtils.java
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPToolDescriptorValidationUtils.java
index 1805c7443f1..5ed2560cd5b 100644
---
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPToolDescriptorValidationUtils.java
+++
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPToolDescriptorValidationUtils.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.mcp.support.descriptor;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.infra.exception.ShardingSpherePreconditions;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import
org.apache.shardingsphere.mcp.support.protocol.MCPModelFacingPayloadContract;
import org.apache.shardingsphere.mcp.support.protocol.MCPPayloadFieldNames;
import org.apache.shardingsphere.mcp.support.workflow.model.WorkflowFieldNames;
diff --git
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPToolOutputSchemaValidator.java
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPToolOutputSchemaValidator.java
index 04e7e955818..69464a9892a 100644
---
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPToolOutputSchemaValidator.java
+++
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/descriptor/MCPToolOutputSchemaValidator.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.mcp.support.descriptor;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.infra.exception.ShardingSpherePreconditions;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import
org.apache.shardingsphere.mcp.support.protocol.MCPModelFacingPayloadContract;
import org.apache.shardingsphere.mcp.support.protocol.MCPPayloadFieldNames;
import org.apache.shardingsphere.mcp.support.protocol.MCPResponseMode;
diff --git
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/workflow/service/WorkflowGuidanceResourceHintProvider.java
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/workflow/service/WorkflowGuidanceResourceHintProvider.java
index ca24b60632d..ddec6083490 100644
---
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/workflow/service/WorkflowGuidanceResourceHintProvider.java
+++
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/workflow/service/WorkflowGuidanceResourceHintProvider.java
@@ -17,8 +17,8 @@
package org.apache.shardingsphere.mcp.support.workflow.service;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import
org.apache.shardingsphere.mcp.support.descriptor.MCPDescriptorCatalogIndex;
import
org.apache.shardingsphere.mcp.support.descriptor.MCPShardingSphereMetadataKeys;
import
org.apache.shardingsphere.mcp.support.descriptor.ShardingSphereMCPResourceMetadata;
diff --git
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogIndexTest.java
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogIndexTest.java
index e7a70622801..fb5059030ca 100644
---
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogIndexTest.java
+++
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogIndexTest.java
@@ -17,9 +17,9 @@
package org.apache.shardingsphere.mcp.support.descriptor;
-import org.apache.shardingsphere.mcp.api.prompt.descriptor.MCPPromptDescriptor;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.prompt.MCPPromptDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import org.junit.jupiter.api.Test;
import java.util.Collection;
diff --git
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogLoaderTest.java
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogLoaderTest.java
index 7154b810ea1..37da1ffbc3c 100644
---
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogLoaderTest.java
+++
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogLoaderTest.java
@@ -17,11 +17,11 @@
package org.apache.shardingsphere.mcp.support.descriptor;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceAnnotations;
-import
org.apache.shardingsphere.mcp.api.prompt.descriptor.MCPPromptArgumentDescriptor;
-import org.apache.shardingsphere.mcp.api.prompt.descriptor.MCPPromptDescriptor;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceAnnotations;
+import org.apache.shardingsphere.mcp.api.prompt.MCPPromptArgumentDescriptor;
+import org.apache.shardingsphere.mcp.api.prompt.MCPPromptDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import org.junit.jupiter.api.Test;
import java.util.Collections;
diff --git
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogPayloadBuilderTest.java
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogPayloadBuilderTest.java
index ae13c914ffd..8110cc271d5 100644
---
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogPayloadBuilderTest.java
+++
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogPayloadBuilderTest.java
@@ -17,9 +17,9 @@
package org.apache.shardingsphere.mcp.support.descriptor;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceAnnotations;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceAnnotations;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import org.junit.jupiter.api.Test;
import java.util.List;
diff --git
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogValidatorTest.java
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogValidatorTest.java
index 9d824043b72..5cdadbb693a 100644
---
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogValidatorTest.java
+++
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorCatalogValidatorTest.java
@@ -17,12 +17,12 @@
package org.apache.shardingsphere.mcp.support.descriptor;
-import
org.apache.shardingsphere.mcp.api.prompt.descriptor.MCPPromptArgumentDescriptor;
-import org.apache.shardingsphere.mcp.api.prompt.descriptor.MCPPromptDescriptor;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceAnnotations;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolAnnotations;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.prompt.MCPPromptArgumentDescriptor;
+import org.apache.shardingsphere.mcp.api.prompt.MCPPromptDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceAnnotations;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolAnnotations;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import org.apache.shardingsphere.mcp.support.protocol.MCPPayloadFieldNames;
import
org.apache.shardingsphere.mcp.support.workflow.descriptor.WorkflowToolDescriptors;
import org.apache.shardingsphere.mcp.support.workflow.model.WorkflowFieldNames;
diff --git
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorComponentValidatorsTest.java
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorComponentValidatorsTest.java
index 6c6c506112e..be6e7f82aa4 100644
---
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorComponentValidatorsTest.java
+++
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPDescriptorComponentValidatorsTest.java
@@ -17,12 +17,12 @@
package org.apache.shardingsphere.mcp.support.descriptor;
-import
org.apache.shardingsphere.mcp.api.prompt.descriptor.MCPPromptArgumentDescriptor;
-import org.apache.shardingsphere.mcp.api.prompt.descriptor.MCPPromptDescriptor;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceAnnotations;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolAnnotations;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.prompt.MCPPromptArgumentDescriptor;
+import org.apache.shardingsphere.mcp.api.prompt.MCPPromptDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceAnnotations;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolAnnotations;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import org.junit.jupiter.api.Test;
import java.util.LinkedHashMap;
diff --git
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPProtocolDescriptorCatalogTest.java
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPProtocolDescriptorCatalogTest.java
index 16d57f114d8..db790bb9a06 100644
---
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPProtocolDescriptorCatalogTest.java
+++
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPProtocolDescriptorCatalogTest.java
@@ -17,11 +17,11 @@
package org.apache.shardingsphere.mcp.support.descriptor;
-import org.apache.shardingsphere.mcp.api.prompt.descriptor.MCPPromptDescriptor;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceAnnotations;
-import
org.apache.shardingsphere.mcp.api.resource.descriptor.MCPResourceDescriptor;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolAnnotations;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.prompt.MCPPromptDescriptor;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceAnnotations;
+import org.apache.shardingsphere.mcp.api.resource.MCPResourceDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolAnnotations;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import org.junit.jupiter.api.Test;
import java.util.Collection;
diff --git
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPToolDescriptorValidationUtilsTest.java
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPToolDescriptorValidationUtilsTest.java
index 86d70aa0027..614477f2ce5 100644
---
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPToolDescriptorValidationUtilsTest.java
+++
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/descriptor/MCPToolDescriptorValidationUtilsTest.java
@@ -17,8 +17,8 @@
package org.apache.shardingsphere.mcp.support.descriptor;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolAnnotations;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolAnnotations;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import org.apache.shardingsphere.mcp.support.protocol.MCPPayloadFieldNames;
import org.apache.shardingsphere.mcp.support.workflow.model.WorkflowFieldNames;
import org.junit.jupiter.api.Test;
diff --git
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/LLMMCPConversationTurnPlanner.java
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/LLMMCPConversationTurnPlanner.java
index 75a471643ef..214951e9d2e 100644
---
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/LLMMCPConversationTurnPlanner.java
+++
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/LLMMCPConversationTurnPlanner.java
@@ -19,7 +19,7 @@ package
org.apache.shardingsphere.test.e2e.mcp.llm.conversation;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import org.apache.shardingsphere.mcp.core.tool.handler.ToolDefinitionRegistry;
import org.apache.shardingsphere.test.e2e.mcp.llm.scenario.LLME2EScenario;
import
org.apache.shardingsphere.test.e2e.mcp.support.transport.MCPInteractionActionNames;
diff --git
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/LLMMCPToolDefinitionFactory.java
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/LLMMCPToolDefinitionFactory.java
index bb589037605..8d7a7e38b9c 100644
---
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/LLMMCPToolDefinitionFactory.java
+++
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/LLMMCPToolDefinitionFactory.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.test.e2e.mcp.llm.conversation;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import org.apache.shardingsphere.mcp.core.tool.handler.ToolDefinitionRegistry;
import
org.apache.shardingsphere.test.e2e.mcp.support.transport.MCPInteractionActionNames;
diff --git
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/LLMMCPToolDefinitionFactoryTest.java
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/LLMMCPToolDefinitionFactoryTest.java
index d75c9e628ce..914e37d84fc 100644
---
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/LLMMCPToolDefinitionFactoryTest.java
+++
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/LLMMCPToolDefinitionFactoryTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.test.e2e.mcp.llm.conversation;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import org.apache.shardingsphere.mcp.core.tool.handler.ToolDefinitionRegistry;
import
org.apache.shardingsphere.test.e2e.mcp.support.transport.MCPInteractionActionNames;
import org.junit.jupiter.api.Test;
diff --git
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/OfficialMCPToolNames.java
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/OfficialMCPToolNames.java
index b17d38059c5..e17bfebe154 100644
---
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/OfficialMCPToolNames.java
+++
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/OfficialMCPToolNames.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.test.e2e.mcp.support;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import org.apache.shardingsphere.mcp.core.tool.handler.ToolDefinitionRegistry;
import java.util.List;
diff --git
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/distribution/PackagedDistributionPluginFixtureSupport.java
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/distribution/PackagedDistributionPluginFixtureSupport.java
index d7edfb95891..a11c6c15264 100644
---
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/distribution/PackagedDistributionPluginFixtureSupport.java
+++
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/distribution/PackagedDistributionPluginFixtureSupport.java
@@ -39,7 +39,7 @@ import java.util.stream.Stream;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class PackagedDistributionPluginFixtureSupport {
- private static final String HANDLER_PROVIDER_SERVICE_ENTRY =
"META-INF/services/org.apache.shardingsphere.mcp.api.MCPHandlerProvider";
+ private static final String HANDLER_PROVIDER_SERVICE_ENTRY =
"META-INF/services/org.apache.shardingsphere.mcp.spi.MCPHandlerProvider";
private static final String DESCRIPTOR_ENTRY =
"META-INF/shardingsphere-mcp/mcp-descriptors/mcp-descriptor-test-fixture.yaml";
diff --git
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/distribution/PackagedDistributionPluginFixtureSupportTest.java
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/distribution/PackagedDistributionPluginFixtureSupportTest.java
index 43cd7633014..9c14daa6874 100644
---
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/distribution/PackagedDistributionPluginFixtureSupportTest.java
+++
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/distribution/PackagedDistributionPluginFixtureSupportTest.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.test.e2e.mcp.support.distribution;
import
org.apache.shardingsphere.infra.util.directory.ClasspathResourceDirectoryReader;
-import org.apache.shardingsphere.mcp.api.tool.descriptor.MCPToolDescriptor;
+import org.apache.shardingsphere.mcp.api.tool.MCPToolDescriptor;
import
org.apache.shardingsphere.mcp.support.descriptor.MCPDescriptorCatalogLoader;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
@@ -61,7 +61,7 @@ class PackagedDistributionPluginFixtureSupportTest {
JarEntry actualDescriptorDirectory =
jarFile.getJarEntry(DESCRIPTOR_DIRECTORY + "/");
assertNotNull(actualDescriptorDirectory);
assertTrue(actualDescriptorDirectory.isDirectory());
-
assertNotNull(jarFile.getJarEntry("META-INF/services/org.apache.shardingsphere.mcp.api.MCPHandlerProvider"));
+
assertNotNull(jarFile.getJarEntry("META-INF/services/org.apache.shardingsphere.mcp.spi.MCPHandlerProvider"));
assertNotNull(jarFile.getJarEntry("org/apache/shardingsphere/test/e2e/mcp/support/fixture/plugin/PluginFixtureHandlerProvider.class"));
assertThat(descriptorResources.toList(),
hasItem(DESCRIPTOR_ENTRY));
try {
diff --git
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/fixture/plugin/PluginFixtureHandlerProvider.java
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/fixture/plugin/PluginFixtureHandlerProvider.java
index 158d0fef077..42b24978c5c 100644
---
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/fixture/plugin/PluginFixtureHandlerProvider.java
+++
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/support/fixture/plugin/PluginFixtureHandlerProvider.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.test.e2e.mcp.support.fixture.plugin;
import org.apache.shardingsphere.mcp.api.resource.MCPResourceHandler;
-import org.apache.shardingsphere.mcp.api.MCPHandlerProvider;
+import org.apache.shardingsphere.mcp.spi.MCPHandlerProvider;
import org.apache.shardingsphere.mcp.api.tool.MCPToolHandler;
import java.util.Collection;