Hermes.Server.Registry (hermes_mcp v0.10.0)
Registry for MCP server and transport processes.
This module provides a safe way to manage process names without creating atoms dynamically at runtime. It uses a via tuple pattern with Registry.
Usage
# Register a server process
{:ok, _pid} = GenServer.start_link(MyServer, arg, name: Registry.server(MyModule))
# Register a transport process
{:ok, _pid} = GenServer.start_link(Transport, arg, name: Registry.transport(MyModule, :stdio))
# Look up a process
GenServer.call(Registry.server(MyModule), :ping)
Summary
Functions
Returns a via tuple for naming a server process.
Returns a via tuple for naming a server session process.
Returns a via tuple for naming a supervisor process.
Returns a via tuple for naming a transport process.
Gets the PID of a registered server.
Gets the PID of a session-specific server.
Gets the PID of a supervisor process.
Gets the PID of a registered transport.
Functions
@spec server(server_module :: module()) :: GenServer.name()
Returns a via tuple for naming a server process.
@spec server_session(server_module :: module(), session_id :: String.t()) :: GenServer.name()
Returns a via tuple for naming a server session process.
@spec supervisor(kind :: atom(), server_module :: module()) :: GenServer.name()
Returns a via tuple for naming a supervisor process.
@spec transport(server_module :: module(), transport_type :: atom()) :: GenServer.name()
Returns a via tuple for naming a transport process.
Gets the PID of a registered server.
Gets the PID of a session-specific server.
Gets the PID of a supervisor process.
Gets the PID of a registered transport.