From 520f4cf3addf0b2a174213615d25b82cd980cd2b Mon Sep 17 00:00:00 2001 From: Sizhe Fan <132420031+paoxiaomooo@users.noreply.github.com> Date: Sun, 6 Jul 2025 19:46:23 +0800 Subject: [PATCH] docs(mcp): add dynamic MCP client selection example demonstrate how to filter injected MCP clients by server name using getServerInfo().name() Signed-off-by: Sizhe Fan <132420031+paoxiaomooo@users.noreply.github.com> --- .../modules/ROOT/pages/api/mcp/mcp-helpers.adoc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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]