Class: McpToolkit::Tools::List

Inherits:
Base
  • Object
show all
Defined in:
lib/mcp_toolkit/tools/list.rb

Overview

Fetches a paginated list of records from a registered resource, scoped to the resolved scope root.

Class Method Summary collapse

Class Method Details

.call(server_context:, resource: nil, account_id: nil, **params) ⇒ Object



71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/mcp_toolkit/tools/list.rb', line 71

def self.call(server_context:, resource: nil, account_id: nil, **params)
  config = config_from(server_context)
  # Resolve the resource FIRST so its effective required scope is known before
  # the scope check (and so an unknown resource is a clean tool error).
  descriptor = resolve_descriptor(resource, config)
  required_scope = config.registry.required_scope_for(descriptor)
  (server_context, account_id:, required_scope:) do |scope_root|
    McpToolkit::ListExecutor.call(resource: descriptor, scope_root:, params:)
  end
rescue McpToolkit::Errors::InvalidParams => e
  error_response("Invalid request: #{e.message}")
end