Class: ActiveMcp::Tool::Base
- Inherits:
-
Object
- Object
- ActiveMcp::Tool::Base
- Defined in:
- lib/active_mcp/tool/base.rb
Class Attribute Summary collapse
-
.description_value ⇒ Object
readonly
Returns the value of attribute description_value.
-
.schema ⇒ Object
readonly
Returns the value of attribute schema.
-
.tool_name_value ⇒ Object
readonly
Returns the value of attribute tool_name_value.
Class Method Summary collapse
- .argument(name, type, required: false, description: "") ⇒ Object
- .default_schema ⇒ Object
- .description(value) ⇒ Object
- .tool_name(value) ⇒ Object
- .visible?(context: {}) ⇒ Boolean
Instance Method Summary collapse
- #call(context: {}, **args) ⇒ Object
-
#initialize ⇒ Base
constructor
A new instance of Base.
- #validate(args) ⇒ Object
Constructor Details
#initialize ⇒ Base
Returns a new instance of Base.
38 39 |
# File 'lib/active_mcp/tool/base.rb', line 38 def initialize end |
Class Attribute Details
.description_value ⇒ Object (readonly)
Returns the value of attribute description_value.
7 8 9 |
# File 'lib/active_mcp/tool/base.rb', line 7 def description_value @description_value end |
.schema ⇒ Object (readonly)
Returns the value of attribute schema.
7 8 9 |
# File 'lib/active_mcp/tool/base.rb', line 7 def schema @schema end |
.tool_name_value ⇒ Object (readonly)
Returns the value of attribute tool_name_value.
7 8 9 |
# File 'lib/active_mcp/tool/base.rb', line 7 def tool_name_value @tool_name_value end |
Class Method Details
.argument(name, type, required: false, description: "") ⇒ Object
17 18 19 20 21 22 23 |
# File 'lib/active_mcp/tool/base.rb', line 17 def argument(name, type, required: false, description: "") @schema ||= default_schema @schema["properties"][name.to_s] = {"type" => type.to_s} @schema["properties"][name.to_s]["description"] = description if description @schema["required"] << name.to_s if required end |
.default_schema ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/active_mcp/tool/base.rb', line 25 def default_schema { "type" => "object", "properties" => {}, "required" => [] } end |
.description(value) ⇒ Object
13 14 15 |
# File 'lib/active_mcp/tool/base.rb', line 13 def description(value) @description_value = value end |
.tool_name(value) ⇒ Object
9 10 11 |
# File 'lib/active_mcp/tool/base.rb', line 9 def tool_name(value) @tool_name_value = value end |
.visible?(context: {}) ⇒ Boolean
33 34 35 |
# File 'lib/active_mcp/tool/base.rb', line 33 def visible?(context: {}) true end |
Instance Method Details
#call(context: {}, **args) ⇒ Object
49 50 51 |
# File 'lib/active_mcp/tool/base.rb', line 49 def call(context: {}, **args) raise NotImplementedError, "#{self.class.name}#call must be implemented" end |
#validate(args) ⇒ Object
41 42 43 44 45 46 47 |
# File 'lib/active_mcp/tool/base.rb', line 41 def validate(args) return true unless self.class.schema JSON::Validator.validate!(self.class.schema, args) rescue JSON::Schema::ValidationError => e {error: e.} end |