Class SyncMcpToolCallbackProvider

java.lang.Object
org.springframework.ai.mcp.SyncMcpToolCallbackProvider
All Implemented Interfaces:
EventListener, ToolCallbackProvider, org.springframework.context.ApplicationListener<McpToolsChangedEvent>

public class SyncMcpToolCallbackProvider extends Object implements ToolCallbackProvider, org.springframework.context.ApplicationListener<McpToolsChangedEvent>
Provides Spring AI tool callbacks by discovering tools from MCP servers.

Automatically discovers and exposes tools from multiple MCP servers as Spring AI ToolCallback instances.

Since:
1.0.0
Author:
Christian Tzolov, YunKui Lu
  • Constructor Details

    • SyncMcpToolCallbackProvider

      @Deprecated public SyncMcpToolCallbackProvider(McpToolFilter toolFilter, List<io.modelcontextprotocol.client.McpSyncClient> mcpClients)
      Deprecated.
      use builder() instead
      Creates a provider with MCP clients and tool filter.
      Parameters:
      mcpClients - MCP clients for tool discovery
      toolFilter - filter for discovered tools
    • SyncMcpToolCallbackProvider

      @Deprecated public SyncMcpToolCallbackProvider(List<io.modelcontextprotocol.client.McpSyncClient> mcpClients)
      Deprecated.
      use builder() instead
      Creates a provider with MCP clients using default filter.
      Parameters:
      mcpClients - MCP clients for tool discovery
    • SyncMcpToolCallbackProvider

      @Deprecated public SyncMcpToolCallbackProvider(McpToolFilter toolFilter, McpToolNamePrefixGenerator toolNamePrefixGenerator, io.modelcontextprotocol.client.McpSyncClient... mcpClients)
      Deprecated.
      use builder() instead
      Creates a provider with MCP clients, filter, and prefix generator.
      Parameters:
      mcpClients - MCP clients for tool discovery
      toolNamePrefixGenerator - generates prefixes for tool names
      toolFilter - filter for discovered tools
    • SyncMcpToolCallbackProvider

      @Deprecated public SyncMcpToolCallbackProvider(io.modelcontextprotocol.client.McpSyncClient... mcpClients)
      Deprecated.
      use builder() instead
      Creates a provider with MCP clients using default filter.
      Parameters:
      mcpClients - MCP clients for tool discovery
  • Method Details

    • getToolCallbacks

      public ToolCallback[] getToolCallbacks()
      Specified by:
      getToolCallbacks in interface ToolCallbackProvider
    • invalidateCache

      public void invalidateCache()
      Invalidates the cached tool callbacks, forcing re-discovery on next request.
    • onApplicationEvent

      public void onApplicationEvent(McpToolsChangedEvent event)
      Specified by:
      onApplicationEvent in interface org.springframework.context.ApplicationListener<McpToolsChangedEvent>
    • syncToolCallbacks

      public static List<ToolCallback> syncToolCallbacks(List<io.modelcontextprotocol.client.McpSyncClient> mcpClients)
      Creates tool callbacks from multiple MCP clients.

      Discovers and consolidates tools from all provided clients into a single list, ensuring no naming conflicts.

      Parameters:
      mcpClients - MCP clients to discover tools from
      Returns:
      consolidated list of tool callbacks
    • builder

      public static SyncMcpToolCallbackProvider.Builder builder()
      Creates a builder for constructing provider instances.
      Returns:
      new builder