Class: ActionMCP::Server::ElicitationRequest
- Inherits:
-
Object
- Object
- ActionMCP::Server::ElicitationRequest
- Includes:
- ActiveModel::Attributes, ActiveModel::Model
- Defined in:
- lib/action_mcp/server/elicitation_request.rb
Overview
Value object for form-mode elicitation requests. Validates that the requested schema follows MCP constraints: flat object with primitive properties only.
Instance Method Summary collapse
-
#assert_valid! ⇒ Object
Validates and raises ArgumentError on failure (preserving public API).
-
#requested_schema=(value) ⇒ Object
Wrap incoming schema in indifferent access so both string and symbol keys work.
-
#to_params ⇒ Hash
JSON-RPC params for elicitation/create.
Instance Method Details
#assert_valid! ⇒ Object
Validates and raises ArgumentError on failure (preserving public API). Named assert_valid! to avoid shadowing ActiveModel#validate!
35 36 37 38 39 |
# File 'lib/action_mcp/server/elicitation_request.rb', line 35 def assert_valid! return if valid? raise ArgumentError, errors..join(", ") end |
#requested_schema=(value) ⇒ Object
Wrap incoming schema in indifferent access so both string and symbol keys work.
22 23 24 |
# File 'lib/action_mcp/server/elicitation_request.rb', line 22 def requested_schema=(value) super(value.is_a?(Hash) ? value.with_indifferent_access : value) end |
#to_params ⇒ Hash
Returns JSON-RPC params for elicitation/create.
27 28 29 30 31 |
# File 'lib/action_mcp/server/elicitation_request.rb', line 27 def to_params params = { mode: "form", message: , requestedSchema: requested_schema.to_hash.deep_symbolize_keys } params[:_meta] = if .present? params end |