Registry and publication coordinator for MCP 2026-07-28 subscriptions.
Registrations contain no credential material. Each listener is isolated in a monitored process with an acknowledgment-first, bounded queue. The default adapter is node-local; clustered deployments can configure another adapter.
Summary
Functions
Returns a specification to start this module under a supervisor.
Types
@type registry() :: GenServer.server()
Functions
@spec cancel(pid(), ExMCP.Types.request_id(), keyword()) :: :ok
Returns a specification to start this module under a supervisor.
See Supervisor.
@spec close(pid(), ExMCP.Types.request_id(), atom(), keyword()) :: :ok | {:error, :not_found}
@spec delivered(pid()) :: :ok
@spec entries(keyword()) :: [ExMCP.Server.Subscriptions.Entry.t()]
@spec listen(ExMCP.Types.request_id(), map(), pid(), keyword()) :: {:ok, ExMCP.Server.Subscriptions.Entry.t()} | {:error, term()}
@spec publish(String.t(), map(), keyword()) :: %{ subscribers: non_neg_integer(), enqueued: non_neg_integer(), coalesced: non_neg_integer(), closed: non_neg_integer() }
@spec start_link(keyword()) :: GenServer.on_start()