Class: RosettAi::Mcp::Admin::HealthChecker

Inherits:
Object
  • Object
show all
Defined in:
lib/rosett_ai/mcp/admin/health_checker.rb

Overview

Health checker for configured MCP servers.

Probes each server with a configurable timeout (default 5s) to verify availability and capability negotiation.

Author:

  • hugo

  • claude

Constant Summary collapse

DEFAULT_TIMEOUT =
5

Instance Method Summary collapse

Constructor Details

#initialize(timeout: DEFAULT_TIMEOUT) ⇒ HealthChecker

Returns a new instance of HealthChecker.

Parameters:

  • timeout (Integer) (defaults to: DEFAULT_TIMEOUT)

    maximum seconds per health check



20
21
22
# File 'lib/rosett_ai/mcp/admin/health_checker.rb', line 20

def initialize(timeout: DEFAULT_TIMEOUT)
  @timeout = timeout
end

Instance Method Details

#check(server) ⇒ Hash

Checks health of a single server.

Parameters:

  • server (Hash)

    server entry from Registry

Returns:

  • (Hash)

    result with :name, :status, :transport, :message



28
29
30
31
32
33
34
35
36
37
38
# File 'lib/rosett_ai/mcp/admin/health_checker.rb', line 28

def check(server)
  case server[:transport]
  when 'stdio'
    check_stdio(server)
  when 'http', 'streamable-http'
    check_http(server)
  else
    { name: server[:name], status: :unknown, transport: server[:transport],
      message: "Unknown transport: #{server[:transport]}" }
  end
end

#check_all(registry) ⇒ Array<Hash>

Checks health of all servers in a registry.

Parameters:

  • registry (Registry)

    server registry

Returns:

  • (Array<Hash>)

    health results



44
45
46
# File 'lib/rosett_ai/mcp/admin/health_checker.rb', line 44

def check_all(registry)
  registry.list.map { |server| check(server) }
end