Skip to content

Commit 47cad0f

Browse files
committed
refactor(server): Update parameter handling in McpServerToolFactory and enhance logging in test classes
1 parent 26ae07a commit 47cad0f

File tree

3 files changed

+19
-6
lines changed

3 files changed

+19
-6
lines changed

src/main/java/com/github/codeboyzhou/mcp/declarative/server/component/McpServerToolFactory.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,14 +81,14 @@ private McpSchema.JsonSchema createJsonSchema(Method method) {
8181
Class<?> parameterType = param.getType();
8282
Map<String, String> property = new HashMap<>();
8383

84-
if (parameterType.getAnnotation(McpJsonSchemaDefinition.class) == null) {
85-
property.put("type", parameterType.getSimpleName().toLowerCase());
86-
property.put("description", resolveComponentAttributeValue(toolParam.description()));
87-
} else {
84+
if (parameterType.isAnnotationPresent(McpJsonSchemaDefinition.class)) {
8885
final String parameterTypeSimpleName = parameterType.getSimpleName();
8986
property.put("$ref", "#/definitions/" + parameterTypeSimpleName);
9087
Map<String, Object> definition = createJsonSchemaDefinition(parameterType);
9188
definitions.put(parameterTypeSimpleName, definition);
89+
} else {
90+
property.put("type", parameterType.getSimpleName().toLowerCase());
91+
property.put("description", resolveComponentAttributeValue(toolParam.description()));
9292
}
9393
properties.put(parameterName, property);
9494

src/test/java/com/github/codeboyzhou/mcp/declarative/test/TestMcpPrompts.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,21 @@
44
import com.github.codeboyzhou.mcp.declarative.annotation.McpPromptParam;
55
import com.github.codeboyzhou.mcp.declarative.util.ObjectMappers;
66
import java.util.Map;
7+
import org.slf4j.Logger;
8+
import org.slf4j.LoggerFactory;
79

810
public class TestMcpPrompts {
911

12+
private static final Logger log = LoggerFactory.getLogger(TestMcpPrompts.class);
13+
1014
@McpPrompt(name = "prompt1_name", title = "prompt1_title", description = "prompt1_description")
1115
public String prompt1(
1216
@McpPromptParam(name = "param1", title = "param1_title", description = "param1_description")
1317
String param1,
1418
@McpPromptParam(name = "param2", title = "param2_title", description = "param2_description")
15-
String param2) {
19+
String param2,
20+
String param3) {
21+
log.debug("prompt1 called with params: {}, {}, {}", param1, param2, param3);
1622
return ObjectMappers.toJson(Map.of("param1", param1, "param2", param2));
1723
}
1824
}

src/test/java/com/github/codeboyzhou/mcp/declarative/test/TestMcpTools.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,20 @@
44
import com.github.codeboyzhou.mcp.declarative.annotation.McpToolParam;
55
import com.github.codeboyzhou.mcp.declarative.util.ObjectMappers;
66
import java.util.Map;
7+
import org.slf4j.Logger;
8+
import org.slf4j.LoggerFactory;
79

810
public class TestMcpTools {
911

12+
private static final Logger log = LoggerFactory.getLogger(TestMcpTools.class);
13+
1014
@McpTool(name = "tool1_name", title = "tool1_title", description = "tool1_description")
1115
public String tool1(
1216
@McpToolParam(name = "param1", description = "param1_description") String param1,
13-
@McpToolParam(name = "param2", description = "param2_description") String param2) {
17+
@McpToolParam(name = "param2", description = "param2_description", required = true)
18+
String param2,
19+
String param3) {
20+
log.debug("tool1 called with params: {}, {}, {}", param1, param2, param3);
1421
return ObjectMappers.toJson(Map.of("param1", param1, "param2", param2));
1522
}
1623
}

0 commit comments

Comments
 (0)