Class: StimulusPlumbers::MCP::Plugins::Versions

Inherits:
Base
  • Object
show all
Defined in:
lib/stimulus_plumbers/mcp/plugins/versions.rb

Class Method Summary collapse

Methods inherited from Base

dynamic_resource_templates, json_resource, not_found, text_resource, text_tool

Class Method Details

.loaderObject



10
# File 'lib/stimulus_plumbers/mcp/plugins/versions.rb', line 10

def loader = VersionsLoader

.loader_keyObject



8
# File 'lib/stimulus_plumbers/mcp/plugins/versions.rb', line 8

def loader_key = :versions

.read(uri, store) ⇒ Object



24
25
26
27
28
# File 'lib/stimulus_plumbers/mcp/plugins/versions.rb', line 24

def read(uri, store)
  return unless uri == "versions://sources"

  json_resource(uri, store[:versions])
end

.register_tools(server, store) ⇒ Object



30
31
32
33
34
35
36
37
38
39
# File 'lib/stimulus_plumbers/mcp/plugins/versions.rb', line 30

def register_tools(server, store)
  text_tool(
    server,
    name:        "get_source_versions",
    description: "Returns the resolved version (and resolution path, for stimulus) of each " \
                 "gem/package backing this server's data — use to spot version drift between sources"
  ) do
    JSON.generate(store[:versions])
  end
end

.static_resourcesObject



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/stimulus_plumbers/mcp/plugins/versions.rb', line 12

def static_resources
  [
    ::MCP::Resource.new(
      uri:         "versions://sources",
      name:        "source-versions",
      description: "Resolved version (and resolution path, for stimulus) of each gem/package " \
                   "backing this server's data — use to spot version drift between sources",
      mime_type:   "application/json"
    )
  ].freeze
end