Class: Sxn::MCP::Tools::Projects::GetProject

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

Overview

Get project details

Class Method Summary collapse

Class Method Details

.call(name:, server_context:) ⇒ Object



110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# File 'lib/sxn/mcp/tools/projects.rb', line 110

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

  BaseTool::ErrorMapping.wrap do
    project_manager = server_context[:project_manager]
    project = project_manager.get_project(name)

    # Validate the project
    validation = project_manager.validate_project(name)

    # Get project rules
    rules = project_manager.get_project_rules(name)
    rules_summary = rules.map { |type, configs| "#{type}: #{Array(configs).length}" }.join(", ")

    output = "      Project: \#{project[:name]}\n      Type: \#{project[:type]}\n      Path: \#{project[:path]}\n      Default branch: \#{project[:default_branch]}\n\n      Validation: \#{validation[:valid] ? \"Valid\" : \"Invalid\"}\n      \#{validation[:issues].map { |i| \"  - \#{i}\" }.join(\"\\n\") unless validation[:valid]}\n\n      Rules: \#{rules_summary.empty? ? \"(none)\" : rules_summary}\n    INFO\n\n    BaseTool.text_response(output.strip)\n  end\nend\n"