Class: RubyLLM::MCP::Handlers::ElicitationHandler

Inherits:
Object
  • Object
show all
Includes:
Concerns::AsyncExecution, Concerns::ElicitationActions, Concerns::ErrorHandling, Concerns::Lifecycle, Concerns::Logging, Concerns::Options, Concerns::RegistryIntegration, Concerns::Timeouts
Defined in:
lib/ruby_llm/mcp/handlers/elicitation_handler.rb

Overview

Base class for elicitation request handlers Provides access to elicitation object and async support

Examples:

Basic elicitation handler

class MyElicitationHandler < RubyLLM::MCP::Handlers::ElicitationHandler
  def execute
    response = build_response(elicitation)
    accept(response)
  end
end

Async elicitation handler

class AsyncElicitationHandler < RubyLLM::MCP::Handlers::ElicitationHandler
  async_execution timeout: 300

  on_timeout :handle_timeout_event

  def execute
    notify_user(elicitation)
    defer # Returns AsyncResponse
  end

  private

  def handle_timeout_event
    reject("Request timed out")
  end
end

Instance Attribute Summary collapse

Attributes included from Concerns::ElicitationActions

#elicitation

Attributes included from Concerns::Options

#options

Instance Method Summary collapse

Methods included from Concerns::Timeouts

#handle_timeout, included

Methods included from Concerns::AsyncExecution

#async?, included, #timeout

Methods included from Concerns::ErrorHandling

#call

Methods included from Concerns::Lifecycle

#call, #execute, included

Methods included from Concerns::Options

included

Constructor Details

#initialize(elicitation:, coordinator:, **options) ⇒ ElicitationHandler

Initialize elicitation handler

Parameters:

  • elicitation (RubyLLM::MCP::Elicitation)

    the elicitation request

  • coordinator (Object)

    the coordinator managing the request

  • options (Hash)

    handler-specific options



50
51
52
53
54
# File 'lib/ruby_llm/mcp/handlers/elicitation_handler.rb', line 50

def initialize(elicitation:, coordinator:, **options)
  @elicitation = elicitation
  @coordinator = coordinator
  super(**options)
end

Instance Attribute Details

#coordinatorObject (readonly)

Returns the value of attribute coordinator.



44
45
46
# File 'lib/ruby_llm/mcp/handlers/elicitation_handler.rb', line 44

def coordinator
  @coordinator
end