McpClientEvent
This content is not available in your language yet.
type McpClientEvent = | { protocolVersion: string; server: string; serverInfo?: McpPeerInfo; transport: McpTransportKind; type: "mcp.connected";} | { code: McpErrorCode; message: string; server: string; type: "mcp.connect_failed";} | { detail?: string; reason: "closed" | "server_exit" | "error"; server: string; type: "mcp.closed";} | { message?: string; mode: "form" | "url"; server: string; type: "mcp.elicitation_declined";} | { level: string; message: string; server: string; type: "mcp.log";} | { requestId: string | number; server: string; type: "mcp.cancel_sent";} | { reason: "duplicate_name" | "invalid_name"; server: string; tool: string; type: "mcp.tool_skipped";} | { durationMs: number; folds?: { bridged: string; tool: string; }[]; phase: "catalog" | "expand"; server: string; source: "catalog-cache" | "live"; tools: string[]; type: "mcp.discovered";} | { added: number; changed: number; removed: number; server: string; type: "mcp.catalog_updated";} | { attempt: number; connection: number; delayMs: number; server: string; type: "mcp.reconnecting";} | { attempt: number; connection: number; downtimeMs: number; server: string; type: "mcp.reconnected";} | { attempts: number; connection: number; server: string; type: "mcp.reconnect_exhausted";};MCP 结构化观测事件(注入观察者形态——附着发生在装配期,先于会话事件包络)。 contract-v0.4 起其中五型已契约化为 KernelEvent mcp.* 事件族, 由表面层装配处映射进会话事件流(cli assembly/mcp-events.ts);log 与 cancel_sent 刻意只走本回调不进契约。表面层按 type 映射 kernel.mcp.* i18n 键。
SC-31 增三型(reconnecting / reconnected / reconnect_exhausted):连接治理
层的自动重连生命周期;contract-v0.21(RFC-SC-3,SC-45)起已契约化为
KernelEvent mcp.* 三型(字段以本回调形为准、逐字段同名;cli
assembly/mcp-events.ts 映射即契约化,与 connected/closed、discovered/
catalog_updated 同先例)。重连成功本身仍由既有 mcp.connected 表达
(每次成功握手一枚),mcp.reconnected 是附加的治理层注记。
{ protocolVersion: string; server: string; serverInfo?: McpPeerInfo; transport: McpTransportKind; type: "mcp.connected";}{ code: McpErrorCode; message: string; server: string; type: "mcp.connect_failed";}{ detail?: string; reason: "closed" | "server_exit" | "error"; server: string; type: "mcp.closed";}{ message?: string; mode: "form" | "url"; server: string; type: "mcp.elicitation_declined";}message?
Section titled “message?”optional message?: string;mode: "form" | "url";server
Section titled “server”server: string;type: "mcp.elicitation_declined";服务端发起 elicitation,本期策略:结构化拒绝(action=decline)+ 本事件可观测
{ level: string; message: string; server: string; type: "mcp.log";}{ requestId: string | number; server: string; type: "mcp.cancel_sent";}{ reason: "duplicate_name" | "invalid_name"; server: string; tool: string; type: "mcp.tool_skipped";}{ durationMs: number; folds?: { bridged: string; tool: string; }[]; phase: "catalog" | "expand"; server: string; source: "catalog-cache" | "live"; tools: string[]; type: "mcp.discovered";}durationMs
Section titled “durationMs”durationMs: number;folds?
Section titled “folds?”optional folds?: { bridged: string; tool: string;}[];phase: "catalog" | "expand";server
Section titled “server”server: string;source
Section titled “source”source: "catalog-cache" | "live";tools: string[];type: "mcp.discovered";CW17-M2A(doc/60 §4.4;契约化候 RFC-M2/W2)— 发现与展开审计: phase=‘catalog’ 为装配期目录建立(source 区分目录来自缓存或现连 发现,tools 为远端工具名);phase=‘expand’ 为展开动作把 def 拉进 模型上下文(tools 为桥接名,folds 为 64 字符帽折叠映射,可审计)。
{ added: number; changed: number; removed: number; server: string; type: "mcp.catalog_updated";}added: number;changed
Section titled “changed”changed: number;removed
Section titled “removed”removed: number;server
Section titled “server”server: string;type: "mcp.catalog_updated";CW17-M2A(doc/60 §3.3/§4.4;契约化候 RFC-M2/W2)— 目录缓存演进: 连接后真实 tools/list 与缓存 diff 的计数(本会话目录段与 toolDefs 恒不动,下会话生效——该语义要能对账)。
{ attempt: number; connection: number; delayMs: number; server: string; type: "mcp.reconnecting";}attempt
Section titled “attempt”attempt: number;connection
Section titled “connection”connection: number;delayMs
Section titled “delayMs”delayMs: number;server
Section titled “server”server: string;type: "mcp.reconnecting";SC-31:某成员连接意外断开(或重连尝试失败)后已排定下一次自动重连。 attempt = 即将进行的第几次尝试(1 起);delayMs = 退避等待(含抖动); connection = 池内成员序号(0 起;缺省池 1 恒 0)。
{ attempt: number; connection: number; downtimeMs: number; server: string; type: "mcp.reconnected";}attempt
Section titled “attempt”attempt: number;connection
Section titled “connection”connection: number;downtimeMs
Section titled “downtimeMs”downtimeMs: number;server
Section titled “server”server: string;type: "mcp.reconnected";SC-31:成员连接自动重连成功(第 attempt 次尝试;downtimeMs = 断开至恢复墙钟)
{ attempts: number; connection: number; server: string; type: "mcp.reconnect_exhausted";}attempts
Section titled “attempts”attempts: number;connection
Section titled “connection”connection: number;server
Section titled “server”server: string;type: "mcp.reconnect_exhausted";达到 reconnect.maxAttempts,该成员停止自动重连(手动重连可复位)
Was this page helpful?
Thanks for your feedback.