Class: ActionMCP::Server::UrlElicitationRequest

Inherits:
Object
  • Object
show all
Includes:
ActiveModel::Attributes, ActiveModel::Model
Defined in:
lib/action_mcp/server/url_elicitation_request.rb

Overview

Value object for URL-mode elicitation requests. Used for sensitive data collection (API keys, OAuth, payments) that must not pass through the MCP client.

Instance Method Summary collapse

Constructor Details

#initialize(attributes = {}) ⇒ UrlElicitationRequest

Returns a new instance of UrlElicitationRequest.



23
24
25
26
# File 'lib/action_mcp/server/url_elicitation_request.rb', line 23

def initialize(attributes = {})
  super
  self.elicitation_id = SecureRandom.uuid_v7 if elicitation_id.blank?
end

Instance Method Details

#assert_valid!Object

Validates and raises ArgumentError on failure (preserving public API). Named assert_valid! to avoid shadowing ActiveModel#validate!

Raises:

  • (ArgumentError)


42
43
44
45
46
# File 'lib/action_mcp/server/url_elicitation_request.rb', line 42

def assert_valid!
  return if valid?

  raise ArgumentError, errors.full_messages.join(", ")
end

#to_paramsHash

Returns JSON-RPC params for elicitation/create.

Returns:

  • (Hash)

    JSON-RPC params for elicitation/create



29
30
31
32
33
34
35
36
37
38
# File 'lib/action_mcp/server/url_elicitation_request.rb', line 29

def to_params
  params = {
    mode: "url",
    message: message,
    url: url,
    elicitationId: elicitation_id
  }
  params[:_meta] = _meta if _meta.present?
  params
end