Deterministic, authorization-filtered MCP primitive registry.
Summary
Types
A normalized JSON-compatible primitive definition.
Supported registration categories.
One primitive registration supplied to the atomic batch API.
Functions
Returns a specification to start this module under a supervisor.
Returns definitions for one category in deterministic identity order.
Validates and registers one primitive, rejecting duplicate identities.
Validates and registers a batch atomically, returning its normalized definitions.
Validates and atomically replaces the complete primitive catalog.
Returns the monotonic catalog revision used to bind cursors.
Returns all normalized definitions grouped by primitive category.
Starts the registry; registration is serialized through this process.
Types
@type definition() :: map()
A normalized JSON-compatible primitive definition.
@type primitive() :: :tool | :resource | :template | :prompt | :completion
Supported registration categories.
One primitive registration supplied to the atomic batch API.
Functions
Returns a specification to start this module under a supervisor.
See Supervisor.
@spec list(pid(), primitive()) :: [definition()]
Returns definitions for one category in deterministic identity order.
Validates and registers one primitive, rejecting duplicate identities.
@spec register_all(pid(), [registration()]) :: {:ok, [{primitive(), String.t(), definition()}]} | {:error, term()}
Validates and registers a batch atomically, returning its normalized definitions.
@spec replace_all(pid(), [registration()]) :: {:ok, %{required(primitive()) => %{optional(term()) => definition()}}, [primitive()]} | {:error, term()}
Validates and atomically replaces the complete primitive catalog.
@spec revision(pid()) :: non_neg_integer()
Returns the monotonic catalog revision used to bind cursors.
@spec snapshot(pid()) :: %{ required(primitive()) => %{optional(term()) => definition()} }
Returns all normalized definitions grouped by primitive category.
@spec start_link(keyword()) :: GenServer.on_start()
Starts the registry; registration is serialized through this process.