Package org.springframework.ai.mcp
Class AsyncMcpToolCallback
java.lang.Object
org.springframework.ai.mcp.AsyncMcpToolCallback
- All Implemented Interfaces:
org.springframework.ai.tool.ToolCallback
public class AsyncMcpToolCallback
extends Object
implements org.springframework.ai.tool.ToolCallback
Implementation of
ToolCallback that adapts MCP tools to Spring AI's tool
interface with asynchronous execution support.
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 asynchronous execution of tool calls through the MCP client
- Manages JSON serialization/deserialization of tool inputs and outputs
Example usage:
McpAsyncClient mcpClient = // obtain MCP client
Tool mcpTool = // obtain MCP tool definition
ToolCallback callback = new AsyncMcpToolCallback(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:
-
ToolCallbackMcpAsyncClientMcpSchema.Tool
-
Constructor Summary
ConstructorsConstructorDescriptionAsyncMcpToolCallback(io.modelcontextprotocol.client.McpAsyncClient mcpClient, io.modelcontextprotocol.spec.McpSchema.Tool tool) Creates a newAsyncMcpToolCallbackinstance. -
Method Summary
Modifier and TypeMethodDescriptionExecutes the tool with the provided input asynchronously.org.springframework.ai.tool.definition.ToolDefinitionReturns a Spring AI tool definition adapted from the MCP tool.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.ai.tool.ToolCallback
getToolMetadata
-
Constructor Details
-
AsyncMcpToolCallback
public AsyncMcpToolCallback(io.modelcontextprotocol.client.McpAsyncClient mcpClient, io.modelcontextprotocol.spec.McpSchema.Tool tool) Creates a newAsyncMcpToolCallbackinstance.- Parameters:
mcpClient- the MCP client to use for tool executiontool- the MCP tool definition to adapt
-
-
Method Details
-
getToolDefinition
public org.springframework.ai.tool.definition.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:
getToolDefinitionin interfaceorg.springframework.ai.tool.ToolCallback- Returns:
- the Spring AI tool definition
-
call
Executes the tool with the provided input asynchronously.This method:
- Converts the JSON input string to a map of arguments
- Calls the tool through the MCP client asynchronously
- Converts the tool's response content to a JSON string
- Specified by:
callin interfaceorg.springframework.ai.tool.ToolCallback- Parameters:
functionInput- the tool input as a JSON string- Returns:
- the tool's response as a JSON string
-
call
- Specified by:
callin interfaceorg.springframework.ai.tool.ToolCallback
-