Module: MicroMcp::ValidationHelpers
- Defined in:
- lib/micro_mcp/validation_helpers.rb
Class Method Summary collapse
-
.stringify_keys(obj) ⇒ Object
Helper to convert symbol keys to string keys recursively.
-
.validate_create_message_params(params) ⇒ Object
Validate create_message parameters before sending.
Class Method Details
.stringify_keys(obj) ⇒ Object
Helper to convert symbol keys to string keys recursively
48 49 50 51 52 53 54 55 56 57 |
# File 'lib/micro_mcp/validation_helpers.rb', line 48 def self.stringify_keys(obj) case obj when Hash obj.transform_keys(&:to_s).transform_values { |v| stringify_keys(v) } when Array obj.map { |v| stringify_keys(v) } else obj end end |
.validate_create_message_params(params) ⇒ Object
Validate create_message parameters before sending
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/micro_mcp/validation_helpers.rb', line 6 def self.(params) errors = [] # Check required fields errors << "Missing 'messages' field" unless params.key?("messages") errors << "Missing 'maxTokens' field" unless params.key?("maxTokens") if params["messages"] # Validate messages structure if params["messages"].is_a?(Array) params["messages"].each_with_index do |msg, i| unless msg.is_a?(Hash) errors << "Message #{i} must be a hash" next end unless msg.key?("role") errors << "Message #{i} missing 'role' field" end unless msg.key?("content") errors << "Message #{i} missing 'content' field" end if msg["content"] && !msg["content"].is_a?(Hash) errors << "Message #{i} 'content' must be a hash" end end else errors << "'messages' must be an array" end end # Check for common mistakes if params.any? { |k, v| k.is_a?(Symbol) } errors << "Hash keys must be strings, not symbols. Use string keys throughout." end errors end |