Class SyncMcpToolCallbackProvider

java.lang.Object
org.springframework.ai.mcp.SyncMcpToolCallbackProvider
All Implemented Interfaces:
ToolCallbackProvider

public class SyncMcpToolCallbackProvider extends Object implements ToolCallbackProvider
Implementation of ToolCallbackProvider that discovers and provides MCP tools.

This class acts as a tool provider for Spring AI, automatically discovering tools from an MCP server and making them available as Spring AI tools. It:

  • Connects to an MCP server through a sync client
  • Lists and retrieves available tools from the server
  • Creates McpToolCallback instances for each discovered tool
  • Validates tool names to prevent duplicates

Example usage:


 McpSyncClient mcpClient = // obtain MCP client
 ToolCallbackProvider provider = new McpToolCallbackProvider(mcpClient);

 // Get all available tools
 ToolCallback[] tools = provider.getToolCallbacks();
 
Since:
1.0.0
Author:
Christian Tzolov
See Also:
  • Constructor Details

    • SyncMcpToolCallbackProvider

      public SyncMcpToolCallbackProvider(io.modelcontextprotocol.client.McpSyncClient mcpClient)
      Creates a new McpToolCallbackProvider instance.
      Parameters:
      mcpClient - the MCP client to use for discovering tools
  • Method Details

    • getToolCallbacks

      public ToolCallback[] getToolCallbacks()
      Discovers and returns all available tools from the MCP server.

      This method:

      1. Retrieves the list of tools from the MCP server
      2. Creates a McpToolCallback for each tool
      3. Validates that there are no duplicate tool names
      Specified by:
      getToolCallbacks in interface ToolCallbackProvider
      Returns:
      an array of tool callbacks, one for each discovered tool
      Throws:
      IllegalStateException - if duplicate tool names are found
    • syncToolCallbacks

      public static List<ToolCallback> syncToolCallbacks(List<io.modelcontextprotocol.client.McpSyncClient> mcpClients)