上传备份

master
王兵 1 month ago
parent efc222c5d4
commit 8a12f5d934

@ -5,6 +5,13 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; import java.lang.annotation.Target;
/**
* Tool
* 使
*
* @author wangbing
* @since 1.0
*/
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD}) @Target({ElementType.METHOD})
public @interface Tool { public @interface Tool {

@ -7,14 +7,16 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.web.reactive.function.server.RouterFunction; import org.springframework.web.reactive.function.server.RouterFunction;
/** /**
* @author quanyu * MCP
* @date 2025/5/6 22:39 *
* @author wangbing
* @since 1.0
*/ */
@Configuration @Configuration
class McpServerConfig { class McpServerConfig {
@Bean @Bean
WebFluxSseServerTransportProvider webFluxSseServerTransportProvider() { WebFluxSseServerTransportProvider webFluxSseServerTransportProvider() {
return new WebFluxSseServerTransportProvider(new ObjectMapper(), "/mcp/message"); return new WebFluxSseServerTransportProvider(new ObjectMapper(), "/mcp/post");
} }
@Bean @Bean

@ -84,6 +84,16 @@ public class McpServerRegistrar {
.build()); .build());
} }
/**
* JSON Schema
*
* @param schema JSON Schema
* @param parameter
* @note <br>
* 1. JSON Schema"properties"<br>
* 2. {@link #jsonTypeMapper(Parameter)}JSON Schema<br>
* 3. @P"properties"
*/
private void putProperties(ObjectNode schema, Parameter parameter) { private void putProperties(ObjectNode schema, Parameter parameter) {
// 处理参数 // 处理参数
String typeName = jsonTypeMapper(parameter); String typeName = jsonTypeMapper(parameter);
@ -100,6 +110,17 @@ public class McpServerRegistrar {
} }
} }
/**
* JavaJSON Schema
*
* @param parameter
* @return JSON Schema'boolean'、'number'、'string'、'array'或'object'
* @note <br>
* - boolean'boolean'char'string'(int/long/float)'number'<br>
* - Number'number'Boolean'boolean'String'string'<br>
* - /Collection'array'Map'object'<br>
* - List/Set'array''object'
*/
private String jsonTypeMapper(Parameter parameter) { private String jsonTypeMapper(Parameter parameter) {
Class<?> paramType = parameter.getType(); Class<?> paramType = parameter.getType();
Type genericType = parameter.getParameterizedType(); Type genericType = parameter.getParameterizedType();

Loading…
Cancel
Save

Powered by TurnKey Linux.