Module: MCP::Client::Elicitation

Defined in:
lib/mcp/client/elicitation.rb

Overview

Client-side helpers for the elicitation/create server-to-client request. https://modelcontextprotocol.io/specification/2025-11-25/client/elicitation

Class Method Summary collapse

Class Method Details

.apply_defaults(requested_schema, content = {}) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/mcp/client/elicitation.rb', line 29

def apply_defaults(requested_schema, content = {})
  filled = content.to_h.transform_keys(&:to_s)
  properties = requested_schema["properties"] || requested_schema[:properties]
  return filled unless properties.is_a?(Hash)

  properties.each do |name, property_schema|
    name = name.to_s
    next if filled.key?(name)
    next unless property_schema.is_a?(Hash)

    if property_schema.key?("default")
      filled[name] = property_schema["default"]
    elsif property_schema.key?(:default)
      filled[name] = property_schema[:default]
    end
  end

  filled
end