Skip to content

Commit a6e15fd

Browse files
committed
feat(server): Add FLOAT and DOUBLE types to JsonSchemaDataType and implement fromJavaType method for type conversion
1 parent bc0ae81 commit a6e15fd

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/main/java/com/github/codeboyzhou/mcp/declarative/enums/JsonSchemaDataType.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
public enum JsonSchemaDataType {
44
STRING("string"),
55
NUMBER("number"),
6+
FLOAT("number"),
7+
DOUBLE("number"),
68
INTEGER("integer"),
79
BOOLEAN("boolean"),
810
OBJECT("object"),
@@ -17,4 +19,14 @@ public enum JsonSchemaDataType {
1719
public String getType() {
1820
return type;
1921
}
22+
23+
public static JsonSchemaDataType fromJavaType(Class<?> javaType) {
24+
JsonSchemaDataType[] values = values();
25+
for (JsonSchemaDataType dataType : values) {
26+
if (dataType.name().equalsIgnoreCase(javaType.getSimpleName())) {
27+
return dataType;
28+
}
29+
}
30+
return STRING;
31+
}
2032
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ private Map<String, Object> createJsonSchemaDefinition(Class<?> definitionClass)
130130
}
131131

132132
Map<String, Object> fieldProperties = new HashMap<>();
133-
fieldProperties.put("type", field.getType().getSimpleName().toLowerCase());
133+
fieldProperties.put("type", JsonSchemaDataType.fromJavaType(field.getType()).getType());
134134
fieldProperties.put("description", resolveComponentAttributeValue(property.description()));
135135

136136
final String fieldName = Strings.defaultIfBlank(property.name(), field.getName());

0 commit comments

Comments
 (0)