Class SyncMcpElicitationMethodCallback

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

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

    • apply

      public 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 the result.

      Specified by:
      apply in interface Function<io.modelcontextprotocol.spec.McpSchema.ElicitRequest,io.modelcontextprotocol.spec.McpSchema.ElicitResult>
      Parameters:
      request - The elicitation request, must not be null
      Returns:
      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