java mcp sdk示例
除了引入springboot的依赖,还需要mcp的sdk.可以加一个bom管理mcp sdk相关依赖。
·
依赖
除了引入springboot的依赖,还需要mcp的sdk.
<dependency>
<groupId>io.modelcontextprotocol.sdk</groupId>
<artifactId>mcp</artifactId>
</dependency>
可以加一个bom管理mcp sdk相关依赖
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.modelcontextprotocol.sdk</groupId>
<artifactId>mcp-bom</artifactId>
<version>0.11.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
代码
启动类
启动类按照springboot写就可以了
OrderService
按照所需业务逻辑写,和mvc无区别.
McpServerConfig
1 创建sse的TransportProvider bean
2 并和"/mcp/message" ,"/sse"这两个路径映射绑定,创建ServletRegistrationBean
@Configuration
@EnableWebMvc
public class McpServerConfig {
@Bean
public HttpServletSseServerTransportProvider serverTransportProvider() {
return new HttpServletSseServerTransportProvider(new ObjectMapper(), "/mcp/message");
}
@Bean
public ServletRegistrationBean customServletBean(HttpServletSseServerTransportProvider transportProvider) {
return new ServletRegistrationBean(transportProvider, "/mcp/message", "/sse");
}
}
StartMcpServer
使用上文创建的transportProvider创建McpServer对象,配置tool信息.
@Component
public class SmartMcpServer {
@Bean(destroyMethod = "close")
public McpSyncServer mcpSyncServer(HttpServletSseServerTransportProvider transportProvider,
OrderService orderService) {
McpSyncServer mcpSyncServer = McpServer.sync(transportProvider)
.serverInfo("my-server", "1.0.0")
.capabilities(McpSchema.ServerCapabilities.builder()
.tools(true)
.logging()
.build())
.build();
String jsonSchema = """
{
"type":"object",
"properties":{
"orderId":{
"type":"string",
"description":"订单号"
}
},
"required":[
"orderId"
],
"additionalProperties":false
}
""";
McpSchema.Tool tool = new McpSchema.Tool.Builder().name("getOrderDetail").description("通过订单号获取订单详情")
.inputSchema(jsonSchema).build();
BiFunction<McpSyncServerExchange, Map<String, Object>, McpSchema.CallToolResult> call = (exchange,
arguments) -> {
OrderService.OrderDetail result = orderService.getOrderDetail(String.valueOf(arguments.get("orderId")));
return new McpSchema.CallToolResult(result.toString(), false);
};
// 绑定描述和执行逻辑
McpServerFeatures.SyncToolSpecification toolSpecification = new McpServerFeatures.SyncToolSpecification(tool,
call);
//
mcpSyncServer.addTool(toolSpecification);
return mcpSyncServer;
}
}
运行
最后启动springboot应用即可
更多推荐




所有评论(0)