A loaded MCP source: tools, per-server status, and its own supervisor.
@type t() :: %Toolnexus.Mcp.Source{ connections: %{required(String.t()) => pid()}, status: %{required(String.t()) => String.t()}, sup: pid() | nil, tools: [Toolnexus.Tool.t()] }