CMDC.MCP.Supervisor (cmdc v0.5.1)

Copy Markdown View Source

MCP 客户端进程树监督者。

为每个配置的 MCP server 启动一个 CMDC.MCP.Client 子进程。 使用 DynamicSupervisor —— 逐个启动 server,单个启动失败只记日志,不影响其他。

进程树位置

SessionServer (:one_for_one)
 CMDC.MCP.Supervisor    此模块可选
    Client :server_a
    Client :server_b
    ...
 CMDC.Agent

当 Session 关闭时,此 Supervisor 级联终止所有 Anubis client 进程, 干净地关闭各 MCP 连接。

Summary

Functions

Returns a specification to start this module under a supervisor.

返回此 Supervisor 下正在运行的 MCP client pid 列表。

返回此 Supervisor 下正在运行的 MCP client 数量。

启动 MCP Supervisor 并逐个添加 server children。

Functions

child_spec(arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

running_clients(supervisor)

@spec running_clients(pid()) :: [pid()]

返回此 Supervisor 下正在运行的 MCP client pid 列表。

running_count(supervisor)

@spec running_count(pid()) :: non_neg_integer()

返回此 Supervisor 下正在运行的 MCP client 数量。

start_link(opts)

@spec start_link(keyword()) :: Supervisor.on_start()

启动 MCP Supervisor 并逐个添加 server children。

参数

  • opts — 关键字列表:
    • :servers[%{name: String.t(), transport: tuple}] 列表
    • :name — 可选进程名(atom 或 via-tuple)