diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/mcp/mcp-helpers.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/mcp/mcp-helpers.adoc index 43faf5d145d..9f24513c9de 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/mcp/mcp-helpers.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/mcp/mcp-helpers.adoc @@ -65,7 +65,24 @@ For multiple clients: List clients = // obtain list of clients List callbacks = SyncMcpToolCallbackProvider.syncToolCallbacks(clients); ---- ++ +For dynamic selection of a subset of clients ++ +[source,java] +---- +@Autowired +private List mcpSyncClients; +public ToolCallbackProvider buildProvider(Set allowedServerNames) { + // Filter by server.name(). + List selected = mcpSyncClients.stream() + .filter(c -> allowedServerNames.contains(c.getServerInfo().name())) + .toList(); + + return new SyncMcpToolCallbackProvider(selected); +} + +---- Async:: + [source,java]