Class: Mcp::Tools::AggregatedService

Inherits:
BaseService show all
Extended by:
Gitlab::Utils::Override
Includes:
Concerns::Versionable
Defined in:
app/services/mcp/tools/aggregated_service.rb

Direct Known Subclasses

SearchService

Constant Summary

Constants included from Concerns::Versionable

Concerns::Versionable::VERSION_FORMAT

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Gitlab::Utils::Override

extended, extensions, included, method_added, override, prepended, queue_verification, verify!

Methods included from Concerns::Versionable

#description, #graphql_operation, #initialize_version, #input_schema, #operation_name, #version

Methods inherited from BaseService

#available?, #description, #input_schema, #set_cred, #to_h, tool_aliases

Constructor Details

#initialize(tools:, version: nil) ⇒ AggregatedService

Returns a new instance of AggregatedService.



14
15
16
17
18
# File 'app/services/mcp/tools/aggregated_service.rb', line 14

def initialize(tools:, version: nil)
  super(name: self.class.tool_name)
  initialize_version(version)
  @tools = tools
end

Class Method Details

.tool_nameObject

Raises:

  • (NoMethodError)


10
11
12
# File 'app/services/mcp/tools/aggregated_service.rb', line 10

def self.tool_name
  raise NoMethodError, "#{self.class.name}#tool_name should be implemented in a subclass"
end

Instance Method Details

#execute(request: nil, params: nil) ⇒ Object



21
22
23
24
25
26
# File 'app/services/mcp/tools/aggregated_service.rb', line 21

def execute(request: nil, params: nil)
  @request = request
  @params = params

  super
end