Packages
os_sup_mcp
0.1.0
TCP MCP server for supervising child BEAM OS instances. Spawns Mix projects as child nodes via Port, connects through Erlang distribution for remote evaluation.
Current section
Files
Jump to
Current section
Files
lib/os_sup_mcp/application.ex
defmodule OsSupMcp.Application do
@moduledoc false
use Application
require Logger
@impl true
def start(_type, _args) do
ensure_distribution!()
children = [
{OsSupMcp.Node.Manager, []},
{OsSupMcp.Node.WorkerSupervisor, []},
{OsSupMcp.MCP.Server, []}
]
opts = [strategy: :rest_for_one, name: OsSupMcp.Supervisor]
Supervisor.start_link(children, opts)
end
defp ensure_distribution! do
unless Node.alive?() do
{:ok, hostname} = :inet.gethostname()
node_name = :"os_sup_mcp@#{hostname}"
{:ok, _} = Node.start(node_name, :shortnames)
Logger.info("[app] Started distribution as #{Node.self()}")
end
end
end