Class: McpToolkit::Tools::ResourceSchema

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

Overview

Discovery tool: the detailed schema (attributes + relationships) of one resource.

Class Method Summary collapse

Class Method Details

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



29
30
31
32
33
34
35
36
37
38
39
# File 'lib/mcp_toolkit/tools/resource_schema.rb', line 29

def self.call(server_context:, resource: nil, **_args)
  config = config_from(server_context)
  # Resolve the resource FIRST so its effective required scope gates discovery
  # of THIS resource's shape (and an unknown resource is a clean tool error).
  descriptor = resolve_descriptor(resource, config)
  with_authentication(server_context, required_scope: config.registry.required_scope_for(descriptor)) do
    McpToolkit::ResourceSchema.call(descriptor, registry: config.registry)
  end
rescue McpToolkit::Errors::InvalidParams => e
  error_response("Invalid request: #{e.message}")
end