Class: StimulusPlumbers::MCP::Plugins::ComponentDocs
- Inherits:
-
Base
- Object
- Base
- StimulusPlumbers::MCP::Plugins::ComponentDocs
show all
- Defined in:
- lib/stimulus_plumbers/mcp/plugins/component_docs.rb
Class Method Summary
collapse
Methods inherited from Base
json_resource, not_found, static_resources, text_resource, text_tool
Class Method Details
.dynamic_resource_templates ⇒ Object
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/stimulus_plumbers/mcp/plugins/component_docs.rb', line 12
def dynamic_resource_templates
[
::MCP::ResourceTemplate.new(
uri_template: "component://{name}/docs",
name: "component-docs",
description: "Full markdown documentation and ERB examples for a component",
mime_type: "text/markdown"
),
::MCP::ResourceTemplate.new(
uri_template: "component://{name}/helper",
name: "component-helper",
description: "Full sp_ helper option surface: keyword options with defaults and slot methods",
mime_type: "application/json"
)
].freeze
end
|
.loader ⇒ Object
10
|
# File 'lib/stimulus_plumbers/mcp/plugins/component_docs.rb', line 10
def loader = ComponentDocsLoader
|
.loader_key ⇒ Object
8
|
# File 'lib/stimulus_plumbers/mcp/plugins/component_docs.rb', line 8
def loader_key = :component_docs
|
.read(uri, store) ⇒ Object
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/stimulus_plumbers/mcp/plugins/component_docs.rb', line 29
def read(uri, store)
docs = store[:component_docs]
case uri
when %r{\Acomponent://([^/]+)/docs\z}
doc = docs[Regexp.last_match(1).to_sym]
doc ? text_resource(uri, "text/markdown", doc[:content]) : missing(uri, Regexp.last_match(1))
when %r{\Acomponent://([^/]+)/helper\z}
doc = docs[Regexp.last_match(1).to_sym]
doc ? json_resource(uri, doc[:signature]) : missing(uri, Regexp.last_match(1))
end
end
|
42
43
44
45
46
47
48
|
# File 'lib/stimulus_plumbers/mcp/plugins/component_docs.rb', line 42
def register_tools(server, store)
docs = store[:component_docs]
register_list_component_docs(server, docs)
register_get_component_examples(server, docs)
register_get_component_helper(server, docs)
end
|