Class: McpToolkit::Tools::Get

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

Overview

Fetches a single record by id from a registered resource, scoped to the resolved scope root.

Class Method Summary collapse

Class Method Details

.call(server_context:, resource: nil, id: nil, account_id: nil, fields: nil, **_args) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/mcp_toolkit/tools/get.rb', line 45

def self.call(server_context:, resource: nil, id: nil, account_id: nil, fields: nil, **_args)
  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::GetExecutor.call(resource: descriptor, scope_root:, id:, fields:)
  end
rescue McpToolkit::Errors::InvalidParams => e
  error_response("Invalid request: #{e.message}")
end