简体中文
学习如何实现和配置模型上下文协议(MCP协议)服务器
// 使用自定义配置创建服务器 McpSyncServer syncServer = McpServer.sync(transport) .serverInfo("my-server", "1.0.0") .capabilities(ServerCapabilities.builder() .resources(true) // 启用资源支持 .tools(true) // 启用工具支持 .prompts(true) // 启用提示支持 .logging() // 启用日志支持 .build()) .build(); // 注册工具、资源和提示 syncServer.addTool(syncToolRegistration); syncServer.addResource(syncResourceRegistration); syncServer.addPrompt(syncPromptRegistration); // 发送日志通知 syncServer.loggingNotification(LoggingMessageNotification.builder() .level(LoggingLevel.INFO) .logger("custom-logger") .data("服务器已初始化") .build()); // 完成后关闭服务器 syncServer.close();
StdioServerTransport transport = new StdioServerTransport(new ObjectMapper());
var capabilities = ServerCapabilities.builder() .resources(false, true) // 资源支持及列表变更通知 .tools(true) // 工具支持及列表变更通知 .prompts(true) // 提示支持及列表变更通知 .logging() // 启用日志支持(默认启用,日志级别为INFO) .build();
// 向客户端发送日志消息 server.loggingNotification(LoggingMessageNotification.builder() .level(LoggingLevel.INFO) .logger("custom-logger") .data("自定义日志消息") .build());
mcpClient.setLoggingLevel(level)
// 同步工具注册 var schema = """ { "type" : "object", "id" : "urn:jsonschema:Operation", "properties" : { "operation" : { "type" : "string" }, "a" : { "type" : "number" }, "b" : { "type" : "number" } } } """; var syncToolRegistration = new McpServerFeatures.SyncToolRegistration( new Tool("calculator", "基本计算器", schema), arguments -> { // 工具实现 return new CallToolResult(result, false); } );
// 同步资源注册 var syncResourceRegistration = new McpServerFeatures.SyncResourceRegistration( new Resource("custom://resource", "name", "description", "mime-type", null), request -> { // 资源读取实现 return new ReadResourceResult(contents); } );
// 同步提示注册 var syncPromptRegistration = new McpServerFeatures.SyncPromptRegistration( new Prompt("greeting", "description", List.of( new PromptArgument("name", "description", true) )), request -> { // 提示实现 return new GetPromptResult(description, messages); } );