Class AsyncMcpElicitationMethodCallback

java.lang.Object
org.springaicommunity.mcp.method.elicitation.AbstractMcpElicitationMethodCallback
org.springaicommunity.mcp.method.elicitation.AsyncMcpElicitationMethodCallback
All Implemented Interfaces:
Function<io.modelcontextprotocol.spec.McpSchema.ElicitRequest,reactor.core.publisher.Mono<io.modelcontextprotocol.spec.McpSchema.ElicitResult>>

public final class AsyncMcpElicitationMethodCallback extends AbstractMcpElicitationMethodCallback implements Function<io.modelcontextprotocol.spec.McpSchema.ElicitRequest,reactor.core.publisher.Mono<io.modelcontextprotocol.spec.McpSchema.ElicitResult>>
Class for creating Function callbacks around elicitation methods that return Mono. This class provides a way to convert methods annotated with McpElicitation into callback functions that can be used to handle elicitation requests in a reactive way. It supports methods with a single ElicitRequest parameter.
Author:
Christian Tzolov
  • Method Details

    • apply

      public reactor.core.publisher.Mono<io.modelcontextprotocol.spec.McpSchema.ElicitResult> apply(io.modelcontextprotocol.spec.McpSchema.ElicitRequest request)
      Apply the callback to the given request.

      This method builds the arguments for the method call, invokes the method, and returns a Mono that completes with the result.

      Specified by:
      apply in interface Function<io.modelcontextprotocol.spec.McpSchema.ElicitRequest,reactor.core.publisher.Mono<io.modelcontextprotocol.spec.McpSchema.ElicitResult>>
      Parameters:
      request - The elicitation request, must not be null
      Returns:
      A Mono that completes with the result of the method invocation
      Throws:
      AbstractMcpElicitationMethodCallback.McpElicitationMethodException - if there is an error invoking the elicitation method
      IllegalArgumentException - if the request is null
    • validateReturnType

      protected void validateReturnType(Method method)
      Validates that the method return type is compatible with the elicitation callback.
      Specified by:
      validateReturnType in class AbstractMcpElicitationMethodCallback
      Parameters:
      method - The method to validate
      Throws:
      IllegalArgumentException - if the return type is not compatible
    • isExchangeType

      protected boolean isExchangeType(Class<?> paramType)
      Checks if a parameter type is compatible with the exchange type.
      Specified by:
      isExchangeType in class AbstractMcpElicitationMethodCallback
      Parameters:
      paramType - The parameter type to check
      Returns:
      true if the parameter type is compatible with the exchange type, false otherwise
    • builder

      Create a new builder.
      Returns:
      A new builder instance