Class: Sxn::MCP::Tools::Projects::ListProjects

Inherits:
MCP::Tool
  • Object
show all
Defined in:
lib/sxn/mcp/tools/projects.rb

Overview

List registered projects

Class Method Summary collapse

Class Method Details

.call(server_context:) ⇒ Object



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

def call(server_context:)
  BaseTool.ensure_initialized!(server_context)

  BaseTool::ErrorMapping.wrap do
    project_manager = server_context[:project_manager]
    projects = project_manager.list_projects

    if projects.empty?
      BaseTool.text_response("No projects registered. Use sxn_projects_add to register a project.")
    else
      formatted = projects.map do |p|
        "- #{p[:name]} (#{p[:type]})\n  #{p[:path]}\n  Default branch: #{p[:default_branch]}"
      end.join("\n")

      BaseTool.text_response("Registered projects (#{projects.length}):\n#{formatted}")
    end
  end
end