diff --git a/src/main/java/xyz/wbsite/mcp/server/annotation/Tool.java b/src/main/java/xyz/wbsite/mcp/server/annotation/Tool.java
index 4432e86..7e88b2a 100644
--- a/src/main/java/xyz/wbsite/mcp/server/annotation/Tool.java
+++ b/src/main/java/xyz/wbsite/mcp/server/annotation/Tool.java
@@ -5,6 +5,13 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+/**
+ * Tool 注解用于标记工具方法,可在运行时获取方法作为工具的相关信息。
+ * 该注解可指定工具的名称和描述,若未提供工具名称,则默认使用方法名。
+ *
+ * @author wangbing
+ * @since 1.0
+ */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface Tool {
diff --git a/src/main/java/xyz/wbsite/mcp/server/config/McpServerConfig.java b/src/main/java/xyz/wbsite/mcp/server/config/McpServerConfig.java
index 7393ec4..e5aaf34 100644
--- a/src/main/java/xyz/wbsite/mcp/server/config/McpServerConfig.java
+++ b/src/main/java/xyz/wbsite/mcp/server/config/McpServerConfig.java
@@ -7,14 +7,16 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.web.reactive.function.server.RouterFunction;
/**
- * @author quanyu
- * @date 2025/5/6 22:39
+ * MCP服务配置
+ *
+ * @author wangbing
+ * @since 1.0
*/
@Configuration
class McpServerConfig {
@Bean
WebFluxSseServerTransportProvider webFluxSseServerTransportProvider() {
- return new WebFluxSseServerTransportProvider(new ObjectMapper(), "/mcp/message");
+ return new WebFluxSseServerTransportProvider(new ObjectMapper(), "/mcp/post");
}
@Bean
diff --git a/src/main/java/xyz/wbsite/mcp/server/registrar/McpServerRegistrar.java b/src/main/java/xyz/wbsite/mcp/server/registrar/McpServerRegistrar.java
index 5c81c31..47a2191 100644
--- a/src/main/java/xyz/wbsite/mcp/server/registrar/McpServerRegistrar.java
+++ b/src/main/java/xyz/wbsite/mcp/server/registrar/McpServerRegistrar.java
@@ -84,6 +84,16 @@ public class McpServerRegistrar {
.build());
}
+ /**
+ * 向JSON Schema对象添加方法参数的属性定义
+ *
+ * @param schema JSON Schema对象,用于存储参数属性定义(包含类型、描述等元数据)
+ * @param parameter 方法参数对象,包含参数名称、类型及注解等元数据信息
+ * @note 核心处理逻辑:
+ * 1. 若JSON Schema中不存在"properties"字段,则自动创建该对象
+ * 2. 根据参数类型通过{@link #jsonTypeMapper(Parameter)}映射JSON Schema类型
+ * 3. 为参数构建属性定义(包含类型和@P注解描述信息)并添加至"properties"字段
+ */
private void putProperties(ObjectNode schema, Parameter parameter) {
// 处理参数
String typeName = jsonTypeMapper(parameter);
@@ -100,6 +110,17 @@ public class McpServerRegistrar {
}
}
+ /**
+ * 将Java方法参数类型映射为JSON Schema类型字符串
+ *
+ * @param parameter 方法参数对象,包含参数类型元数据信息
+ * @return 对应的JSON Schema类型字符串,如'boolean'、'number'、'string'、'array'或'object'
+ * @note 核心映射规则:
+ * - 基础类型:boolean→'boolean',char→'string',数值型基础类型(int/long/float等)→'number'
+ * - 包装类型:Number子类→'number',Boolean→'boolean',String→'string'
+ * - 容器类型:数组/Collection→'array',Map→'object'
+ * - 泛型类型:List/Set→'array',其余未明确匹配类型默认→'object'
+ */
private String jsonTypeMapper(Parameter parameter) {
Class> paramType = parameter.getType();
Type genericType = parameter.getParameterizedType();