Class: RosettAi::Mcp::Resources::DesignResource

Inherits:
Object
  • Object
show all
Defined in:
lib/rosett_ai/mcp/resources/design_resource.rb

Overview

MCP resource provider for rai design documents.

Exposes design YAML files as MCP resources with URIs in the format rosett-ai://design/name.

Author:

  • hugo

  • claude

Constant Summary collapse

URI_PREFIX =
'rosett-ai://design/'

Instance Method Summary collapse

Instance Method Details

#listArray<Hash>

Lists all available design resources.

Returns:

  • (Array<Hash>)

    resource entries with :uri, :name, :description



22
23
24
25
26
27
# File 'lib/rosett_ai/mcp/resources/design_resource.rb', line 22

def list
  dir = RosettAi.root.join('conf', 'design')
  return [] unless dir.directory?

  dir.glob('*.yml').map { |path| resource_entry(path) }
end

#read(name) ⇒ Hash?

Reads a specific design resource.

Parameters:

  • name (String)

    design name (without .yml)

Returns:

  • (Hash, nil)

    resource content with :uri, :content, :mime_type



33
34
35
36
37
38
39
40
41
42
# File 'lib/rosett_ai/mcp/resources/design_resource.rb', line 33

def read(name)
  path = RosettAi.root.join('conf', 'design', "#{name}.yml")
  return nil unless path.exist?

  {
    uri: "#{URI_PREFIX}#{name}",
    content: File.read(path),
    mime_type: 'application/x-yaml'
  }
end