Class McpToolCallback

java.lang.Object
org.springframework.ai.mcp.McpToolCallback
All Implemented Interfaces:
FunctionCallback, ToolCallback

public class McpToolCallback extends Object implements ToolCallback
Implementation of ToolCallback that adapts MCP tools to Spring AI's tool interface.

This class acts as a bridge between the Model Context Protocol (MCP) and Spring AI's tool system, allowing MCP tools to be used seamlessly within Spring AI applications. It:

  • Converts MCP tool definitions to Spring AI tool definitions
  • Handles the execution of tool calls through the MCP client
  • Manages JSON serialization/deserialization of tool inputs and outputs

Example usage:


 McpSyncClient mcpClient = // obtain MCP client
 Tool mcpTool = // obtain MCP tool definition
 ToolCallback callback = new McpToolCallback(mcpClient, mcpTool);

 // Use the tool through Spring AI's interfaces
 ToolDefinition definition = callback.getToolDefinition();
 String result = callback.call("{\"param\": \"value\"}");
 
Author:
Christian Tzolov
See Also:
  • Constructor Details

    • McpToolCallback

      public McpToolCallback(io.modelcontextprotocol.client.McpSyncClient mcpClient, io.modelcontextprotocol.spec.McpSchema.Tool tool)
      Creates a new McpToolCallback instance.
      Parameters:
      mcpClient - the MCP client to use for tool execution
      tool - the MCP tool definition to adapt
  • Method Details

    • getToolDefinition

      public ToolDefinition getToolDefinition()
      Returns a Spring AI tool definition adapted from the MCP tool.

      The tool definition includes:

      • The tool's name from the MCP definition
      • The tool's description from the MCP definition
      • The input schema converted to JSON format
      Specified by:
      getToolDefinition in interface ToolCallback
      Returns:
      the Spring AI tool definition
    • call

      public String call(String functionInput)
      Executes the tool with the provided input.

      This method:

      1. Converts the JSON input string to a map of arguments
      2. Calls the tool through the MCP client
      3. Converts the tool's response content to a JSON string
      Specified by:
      call in interface FunctionCallback
      Specified by:
      call in interface ToolCallback
      Parameters:
      functionInput - the tool input as a JSON string
      Returns:
      the tool's response as a JSON string