Class: McpToolkit::Tools::Resources

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

Overview

Discovery tool: lists every read-only resource exposed by this server.

Class Method Summary collapse

Class Method Details

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



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/mcp_toolkit/tools/resources.rb', line 16

def self.call(server_context:, **_args)
  config = config_from(server_context)
  # Discovery requires the registry-level default scope (the satellite's
  # app-wide scope); per-resource scopes are enforced by `get` / `list`.
  with_authentication(server_context,
                      required_scope: config.registry.default_required_permissions_scope) do |introspection|
    {
      resources: config.registry.resources
                       .reject { |resource| resource.superusers_only? && !introspection.superuser? }
                       .map do |resource|
                         {
                           name: resource.name,
                           description: resource.description,
                           filterable: filterable?(resource, config),
                           note: resource.note
                         }.compact
                       end
    }
  end
end