Source-owned registry for MCP server declarations.
This is declaration metadata, not the per-provider live client registry. Native providers read this registry to build their MCP config list and keep active sessions synchronized when extension MCP contributions are removed or reloaded.
Summary
Types
Registry entry for one MCP server declaration.
Source that contributed MCP server declarations.
Functions
Returns all registered MCP configs in deterministic registration order.
Returns registry entries in deterministic registration order.
Registers a source-owned batch of MCP declarations. Same-source batches replace prior entries.
Resolves config-owned and registry-owned MCP configs with deterministic first-owner collision handling.
Starts the MCP server declaration registry.
Removes all MCP server declarations owned by a source.
Types
@type entry() :: %{ source: source(), id: String.t(), config: MingaAgent.MCP.ServerConfig.t() }
Registry entry for one MCP server declaration.
@type source() :: Minga.Extension.ContributionCleanup.contribution_source()
Source that contributed MCP server declarations.
@type state() :: [entry()]
Functions
@spec configs() :: [MingaAgent.MCP.ServerConfig.t()]
Returns all registered MCP configs in deterministic registration order.
@spec entries() :: [entry()]
Returns registry entries in deterministic registration order.
Registers a source-owned batch of MCP declarations. Same-source batches replace prior entries.
@spec resolve_configs( [MingaAgent.MCP.ServerConfig.t()], keyword() ) :: [MingaAgent.MCP.ServerConfig.t()]
Resolves config-owned and registry-owned MCP configs with deterministic first-owner collision handling.
@spec start_link(keyword()) :: GenServer.on_start()
Starts the MCP server declaration registry.
@spec unregister_source(source()) :: :ok
Removes all MCP server declarations owned by a source.