Class: DebugMcp::Tools::RailsInfo

Inherits:
MCP::Tool
  • Object
show all
Defined in:
lib/debug_mcp/tools/rails_info.rb

Constant Summary collapse

SENSITIVE_KEYS =
%w[password secret secret_key_base secret_key].freeze

Class Method Summary collapse

Class Method Details

.call(session_id: nil, server_context:) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/debug_mcp/tools/rails_info.rb', line 34

def call(session_id: nil, server_context:)
  client = server_context[:session_manager].client(session_id)
  client.auto_repause!
  RailsHelper.require_rails!(client)

  parts = []

  # App name, Rails version, environment
  parts << build_app_section(client)

  # Root path
  parts << build_root_section(client)

  # Database configuration
  parts << build_db_section(client)

  # Route summary
  parts << build_routes_section(client)

  text = parts.compact.join("\n\n")

  if text.include?("(unavailable)")
    text += "\n\n#{RailsHelper::TRAP_CONTEXT_HINT}" if RailsHelper.trap_context?(client)
  end

  MCP::Tool::Response.new([{ type: "text", text: text }])
rescue DebugMcp::Error => e
  MCP::Tool::Response.new([{ type: "text", text: "Error: #{e.message}" }])
end