28
28
import io .modelcontextprotocol .server .McpServer .AsyncSpecification ;
29
29
import io .modelcontextprotocol .server .McpServer .SyncSpecification ;
30
30
import io .modelcontextprotocol .server .McpServerFeatures ;
31
- // import io.modelcontextprotocol.server.McpServerFeatures.AsyncCompletionSpecification;
31
+ import io .modelcontextprotocol .server .McpServerFeatures .AsyncCompletionSpecification ;
32
32
import io .modelcontextprotocol .server .McpServerFeatures .AsyncPromptSpecification ;
33
33
import io .modelcontextprotocol .server .McpServerFeatures .AsyncResourceSpecification ;
34
34
import io .modelcontextprotocol .server .McpServerFeatures .AsyncToolSpecification ;
35
- // import io.modelcontextprotocol.server.McpServerFeatures.SyncCompletionSpecification;
35
+ import io .modelcontextprotocol .server .McpServerFeatures .SyncCompletionSpecification ;
36
36
import io .modelcontextprotocol .server .McpServerFeatures .SyncPromptSpecification ;
37
37
import io .modelcontextprotocol .server .McpServerFeatures .SyncResourceSpecification ;
38
38
import io .modelcontextprotocol .server .McpServerFeatures .SyncToolSpecification ;
@@ -175,7 +175,7 @@ public McpSyncServer mcpSyncServer(McpServerTransportProvider transportProvider,
175
175
ObjectProvider <List <SyncToolSpecification >> tools ,
176
176
ObjectProvider <List <SyncResourceSpecification >> resources ,
177
177
ObjectProvider <List <SyncPromptSpecification >> prompts ,
178
- // ObjectProvider<List<SyncCompletionSpecification>> completions,
178
+ ObjectProvider <List <SyncCompletionSpecification >> completions ,
179
179
ObjectProvider <BiConsumer <McpSyncServerExchange , List <McpSchema .Root >>> rootsChangeConsumers ,
180
180
List <ToolCallbackProvider > toolCallbackProvider ) {
181
181
@@ -219,15 +219,14 @@ public McpSyncServer mcpSyncServer(McpServerTransportProvider transportProvider,
219
219
+ serverProperties .isPromptChangeNotification ());
220
220
}
221
221
222
- // List<SyncCompletionSpecification> completionSpecifications =
223
- // completions.stream()
224
- // .flatMap(List::stream)
225
- // .toList();
226
- // if (!CollectionUtils.isEmpty(completionSpecifications)) {
227
- // serverBuilder.completions(completionSpecifications);
228
- // capabilitiesBuilder.completions();
229
- // logger.info("Registered completions: " + completionSpecifications.size());
230
- // }
222
+ List <SyncCompletionSpecification > completionSpecifications = completions .stream ()
223
+ .flatMap (List ::stream )
224
+ .toList ();
225
+ if (!CollectionUtils .isEmpty (completionSpecifications )) {
226
+ serverBuilder .completions (completionSpecifications );
227
+ capabilitiesBuilder .completions ();
228
+ logger .info ("Registered completions: " + completionSpecifications .size ());
229
+ }
231
230
232
231
rootsChangeConsumers .ifAvailable (consumer -> {
233
232
serverBuilder .rootsChangeHandler ((exchange , roots ) -> consumer .accept (exchange , roots ));
@@ -283,7 +282,7 @@ public McpAsyncServer mcpAsyncServer(McpServerTransportProvider transportProvide
283
282
ObjectProvider <List <AsyncToolSpecification >> tools ,
284
283
ObjectProvider <List <AsyncResourceSpecification >> resources ,
285
284
ObjectProvider <List <AsyncPromptSpecification >> prompts ,
286
- // ObjectProvider<List<AsyncCompletionSpecification>> completions,
285
+ ObjectProvider <List <AsyncCompletionSpecification >> completions ,
287
286
ObjectProvider <BiConsumer <McpAsyncServerExchange , List <McpSchema .Root >>> rootsChangeConsumer ,
288
287
List <ToolCallbackProvider > toolCallbackProvider ) {
289
288
@@ -327,15 +326,14 @@ public McpAsyncServer mcpAsyncServer(McpServerTransportProvider transportProvide
327
326
+ serverProperties .isPromptChangeNotification ());
328
327
}
329
328
330
- // List<AsyncCompletionSpecification> completionSpecifications =
331
- // completions.stream()
332
- // .flatMap(List::stream)
333
- // .toList();
334
- // if (!CollectionUtils.isEmpty(completionSpecifications)) {
335
- // serverBuilder.completions(completionSpecifications);
336
- // capabilitiesBuilder.completions();
337
- // logger.info("Registered completions: " + completionSpecifications.size());
338
- // }
329
+ List <AsyncCompletionSpecification > completionSpecifications = completions .stream ()
330
+ .flatMap (List ::stream )
331
+ .toList ();
332
+ if (!CollectionUtils .isEmpty (completionSpecifications )) {
333
+ serverBuilder .completions (completionSpecifications );
334
+ capabilitiesBuilder .completions ();
335
+ logger .info ("Registered completions: " + completionSpecifications .size ());
336
+ }
339
337
340
338
rootsChangeConsumer .ifAvailable (consumer -> {
341
339
BiFunction <McpAsyncServerExchange , List <McpSchema .Root >, Mono <Void >> asyncConsumer = (exchange , roots ) -> {
@@ -353,4 +351,4 @@ public McpAsyncServer mcpAsyncServer(McpServerTransportProvider transportProvide
353
351
return serverBuilder .build ();
354
352
}
355
353
356
- }
354
+ }
0 commit comments