Module: Legion::MCP::Resources::RunnerCatalog

Extended by:
Logging::Helper
Defined in:
lib/legion/mcp/resources/runner_catalog.rb

Constant Summary collapse

RESOURCE =
::MCP::Resource.new(
  uri:         'legion://runners',
  name:        'runner-catalog',
  description: 'All available extension.runner.function paths in this Legion instance.',
  mime_type:   'application/json'
)

Class Method Summary collapse

Class Method Details

.register(server) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/legion/mcp/resources/runner_catalog.rb', line 17

def register(server)
  log.info('Starting legion.mcp.resources.runner_catalog.register')
  server.resources << RESOURCE

  server.resources_read_handler do |params|
    if params[:uri] == 'legion://runners'
      [{ uri: 'legion://runners', mimeType: 'application/json', text: catalog_json }]
    elsif params[:uri]&.start_with?('legion://extensions/')
      ExtensionInfo.read(params[:uri])
    else
      []
    end
  end
end