/** * MCP Operator:管理 MCP 客户端生命周期,按配置为会话提供 ToolDefinition 列表。 * 支持 stdio(本地)与 sse(远程)两种传输。 */ import type { McpServerConfig } from "./types.js"; import type { ToolDefinition } from "@mariozechner/pi-coding-agent"; /** getMcpToolDefinitions 的可选参数:超时、重试与 sessionId(用于经 sendSessionMessage 推送进度) */ export interface GetMcpToolDefinitionsOptions { /** 连接或 list_tools 失败时的重试次数(不含首次,默认 1) */ connectRetries?: number; /** 重试间隔(毫秒,默认 3000) */ retryDelayMs?: number; /** stdio 初始化超时(毫秒) */ initTimeoutMs?: number; /** stdio 初始化重试次数(默认 1) */ initRetries?: number; /** stdio 初始化重试间隔(毫秒,默认 3000) */ initRetryDelayMs?: number; /** 会话 ID,用于经全局 sendSessionMessage 推送 MCP 进度系统消息 */ sessionId?: string; /** 单次 MCP 工具返回最大 token;超过则从尾部裁剪并打日志;不配置则不限制 */ maxResultTokens?: number; } /** * 为给定 MCP 服务器配置列表获取或创建客户端,并返回其工具对应的 ToolDefinition 数组。 * 连接失败或 list_tools 失败的 server 会按 options 重试,仍失败则跳过并打日志,不阻塞整体。 */ export declare function getMcpToolDefinitions(serverConfigs: McpServerConfig[], options?: GetMcpToolDefinitionsOptions): Promise; /** * 关闭并移除所有缓存的 MCP 客户端(进程退出或显式清理时调用)。 */ export declare function shutdownMcpClients(): Promise; /** * 测试单条 MCP 配置是否可用:连接、拉取工具列表后断开。 * 不写入 clientCache,用于配置界面「测试」按钮,可提前触发 uvx/npx 依赖安装。 */ export declare function testMcpConnection(config: McpServerConfig, options?: GetMcpToolDefinitionsOptions): Promise<{ success: boolean; error?: string; toolsCount?: number; }>;