Class: MCP::Tool::InputSchema
- Inherits:
-
Object
- Object
- MCP::Tool::InputSchema
- Defined in:
- lib/mcp/tool/input_schema.rb
Defined Under Namespace
Classes: ValidationError
Instance Attribute Summary collapse
-
#properties ⇒ Object
readonly
Returns the value of attribute properties.
-
#required ⇒ Object
readonly
Returns the value of attribute required.
Instance Method Summary collapse
-
#initialize(properties: {}, required: []) ⇒ InputSchema
constructor
A new instance of InputSchema.
- #missing_required_arguments(arguments) ⇒ Object
- #missing_required_arguments?(arguments) ⇒ Boolean
- #to_h ⇒ Object
- #validate_arguments(arguments) ⇒ Object
Constructor Details
#initialize(properties: {}, required: []) ⇒ InputSchema
Returns a new instance of InputSchema.
12 13 14 15 16 |
# File 'lib/mcp/tool/input_schema.rb', line 12 def initialize(properties: {}, required: []) @properties = properties @required = required.map(&:to_sym) validate_schema! end |
Instance Attribute Details
#properties ⇒ Object (readonly)
Returns the value of attribute properties.
10 11 12 |
# File 'lib/mcp/tool/input_schema.rb', line 10 def properties @properties end |
#required ⇒ Object (readonly)
Returns the value of attribute required.
10 11 12 |
# File 'lib/mcp/tool/input_schema.rb', line 10 def required @required end |
Instance Method Details
#missing_required_arguments(arguments) ⇒ Object
28 29 30 |
# File 'lib/mcp/tool/input_schema.rb', line 28 def missing_required_arguments(arguments) (required - arguments.keys.map(&:to_sym)) end |
#missing_required_arguments?(arguments) ⇒ Boolean
24 25 26 |
# File 'lib/mcp/tool/input_schema.rb', line 24 def missing_required_arguments?(arguments) missing_required_arguments(arguments).any? end |
#to_h ⇒ Object
18 19 20 21 22 |
# File 'lib/mcp/tool/input_schema.rb', line 18 def to_h { type: "object", properties: }.tap do |hsh| hsh[:required] = required if required.any? end end |
#validate_arguments(arguments) ⇒ Object
32 33 34 35 36 37 |
# File 'lib/mcp/tool/input_schema.rb', line 32 def validate_arguments(arguments) errors = JSON::Validator.fully_validate(to_h, arguments) if errors.any? raise ValidationError, "Invalid arguments: #{errors.join(", ")}" end end |