Class AsyncMcpToolMethodCallback
java.lang.Object
org.springaicommunity.mcp.method.tool.AbstractMcpToolMethodCallback<T,RC>
org.springaicommunity.mcp.method.tool.AbstractAsyncMcpToolMethodCallback<io.modelcontextprotocol.server.McpAsyncServerExchange,McpAsyncRequestContext>
org.springaicommunity.mcp.method.tool.AsyncMcpToolMethodCallback
- All Implemented Interfaces:
BiFunction<io.modelcontextprotocol.server.McpAsyncServerExchange,io.modelcontextprotocol.spec.McpSchema.CallToolRequest, reactor.core.publisher.Mono<io.modelcontextprotocol.spec.McpSchema.CallToolResult>>
public final class AsyncMcpToolMethodCallback
extends AbstractAsyncMcpToolMethodCallback<io.modelcontextprotocol.server.McpAsyncServerExchange,McpAsyncRequestContext>
implements BiFunction<io.modelcontextprotocol.server.McpAsyncServerExchange,io.modelcontextprotocol.spec.McpSchema.CallToolRequest,reactor.core.publisher.Mono<io.modelcontextprotocol.spec.McpSchema.CallToolResult>>
Class for creating Function callbacks around tool methods.
This class provides a way to convert methods annotated with
McpTool into
callback functions that can be used to handle tool requests.- Author:
- Christian Tzolov
-
Field Summary
Fields inherited from class org.springaicommunity.mcp.method.tool.AbstractAsyncMcpToolMethodCallback
toolCallExceptionClassFields inherited from class org.springaicommunity.mcp.method.tool.AbstractMcpToolMethodCallback
returnMode, toolMethod, toolObject -
Constructor Summary
ConstructorsConstructorDescriptionAsyncMcpToolMethodCallback(ReturnMode returnMode, Method toolMethod, Object toolObject) AsyncMcpToolMethodCallback(ReturnMode returnMode, Method toolMethod, Object toolObject, Class<? extends Throwable> toolCallExceptionClass) -
Method Summary
Modifier and TypeMethodDescriptionreactor.core.publisher.Mono<io.modelcontextprotocol.spec.McpSchema.CallToolResult>apply(io.modelcontextprotocol.server.McpAsyncServerExchange exchange, io.modelcontextprotocol.spec.McpSchema.CallToolRequest request) Apply the callback to the given request.protected McpAsyncRequestContextcreateRequestContext(io.modelcontextprotocol.server.McpAsyncServerExchange exchange, io.modelcontextprotocol.spec.McpSchema.CallToolRequest request) protected booleanisExchangeOrContextType(Class<?> paramType) Determines if the given parameter type is an exchange or context type that should be injected.Methods inherited from class org.springaicommunity.mcp.method.tool.AbstractAsyncMcpToolMethodCallback
convertToCallToolResult, createAsyncErrorResult, mapValueToCallToolResult, validateRequestMethods inherited from class org.springaicommunity.mcp.method.tool.AbstractMcpToolMethodCallback
buildMethodArguments, buildTypedArgument, callMethod, convertValueToCallToolResult, createErrorMessage, findCauseUsingPlainJavaMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.util.function.BiFunction
andThen
-
Constructor Details
-
AsyncMcpToolMethodCallback
-
AsyncMcpToolMethodCallback
public AsyncMcpToolMethodCallback(ReturnMode returnMode, Method toolMethod, Object toolObject, Class<? extends Throwable> toolCallExceptionClass)
-
-
Method Details
-
isExchangeOrContextType
Description copied from class:AbstractAsyncMcpToolMethodCallbackDetermines if the given parameter type is an exchange or context type that should be injected. Subclasses must implement this method to specify which types are considered exchange or context types.- Specified by:
isExchangeOrContextTypein classAbstractAsyncMcpToolMethodCallback<io.modelcontextprotocol.server.McpAsyncServerExchange,McpAsyncRequestContext> - Parameters:
paramType- The parameter type to check- Returns:
- true if the parameter type is an exchange or context type, false otherwise
-
createRequestContext
protected McpAsyncRequestContext createRequestContext(io.modelcontextprotocol.server.McpAsyncServerExchange exchange, io.modelcontextprotocol.spec.McpSchema.CallToolRequest request) - Specified by:
createRequestContextin classAbstractMcpToolMethodCallback<io.modelcontextprotocol.server.McpAsyncServerExchange,McpAsyncRequestContext>
-
apply
public reactor.core.publisher.Mono<io.modelcontextprotocol.spec.McpSchema.CallToolResult> apply(io.modelcontextprotocol.server.McpAsyncServerExchange exchange, io.modelcontextprotocol.spec.McpSchema.CallToolRequest request) Apply the callback to the given request.This method builds the arguments for the method call, invokes the method, and returns the result.
- Specified by:
applyin interfaceBiFunction<io.modelcontextprotocol.server.McpAsyncServerExchange,io.modelcontextprotocol.spec.McpSchema.CallToolRequest, reactor.core.publisher.Mono<io.modelcontextprotocol.spec.McpSchema.CallToolResult>> - Parameters:
exchange- The server exchange contextrequest- The tool call request, must not be null- Returns:
- The result of the method invocation
-