/** * MCP Client - 充血模型主类 * * 集成所有 MCP 相关功能:配置管理、连接管理、协议处理 */ import { EventEmitter } from 'events'; import type { McpServerConfig, TransportConfig, ToolInfo, ResourceInfo, PromptInfo, ToolCallResult, ResourceContent, PromptResult, JsonRpcRequest, JsonRpcResponse } from './types/index.js'; interface Transport { connect(): Promise; sendRequest(request: JsonRpcRequest): Promise; close(): Promise; isConnected(): boolean; on(event: 'error' | 'close', handler: (...args: any[]) => void): void; } interface ServerState { id: string; name: string; config: TransportConfig; transport?: Transport; status: 'disconnected' | 'connecting' | 'connected' | 'error'; tools?: ToolInfo[]; resources?: ResourceInfo[]; error?: string; connectedAt?: Date; reconnectAttempts: number; isReconnecting: boolean; } export declare enum ConnectionStatus { DISCONNECTED = "disconnected", CONNECTING = "connecting", CONNECTED = "connected", ERROR = "error" } export interface McpClientOptions { /** 配置文件路径 */ configFile?: string; /** 是否自动保存配置 */ autoSaveConfig?: boolean; /** 默认超时时间 */ defaultTimeout?: number; /** 默认自动重连 */ defaultAutoReconnect?: boolean; } export declare class McpClient extends EventEmitter { private servers; private configPath; private autoSaveConfig; private defaultTimeout; private defaultAutoReconnect; private initialized; private requestIdCounter; constructor(options?: McpClientOptions); /** * 初始化客户端 - 合并原 ConfigManager 功能 */ initialize(configFile?: string): Promise; /** * 清理资源 */ dispose(): Promise; /** * 添加服务器配置 */ addServer(config: McpServerConfig): Promise; /** * 更新服务器配置 */ updateServer(serverId: string, updates: Partial): Promise; /** * 删除服务器配置 */ removeServer(serverId: string): Promise; /** * 获取服务器配置 */ getServer(serverId: string): McpServerConfig | null; /** * 列出所有服务器配置 */ listServers(): McpServerConfig[]; /** * 连接到服务器 */ connect(serverId: string): Promise; /** * 断开服务器连接 */ disconnect(serverId: string): Promise; /** * 检查服务器是否已连接 */ isConnected(serverId: string): boolean; /** * 获取连接状态 */ getConnectionStatus(serverId: string): ConnectionStatus; /** * 列出所有连接信息 */ listConnections(): Array<{ serverId: string; status: ConnectionStatus; connectedAt?: Date; error?: string; }>; /** * 调用工具 */ callTool(serverId: string, toolName: string, args?: any): Promise; /** * 读取资源 */ readResource(serverId: string, uri: string): Promise; /** * 获取提示词 */ getPrompt(serverId: string, name: string, args?: any): Promise; /** * 列出服务器的工具 */ listTools(serverId: string): Promise; /** * 列出服务器的资源 */ listResources(serverId: string): Promise; /** * 列出服务器的提示词 */ listPrompts(serverId: string): Promise; /** * 发送原始请求 */ sendRequest(server: ServerState, method: string, params?: any): Promise; private ensureInitialized; private ensureConnected; private createTransport; private createStdioTransport; private createHttpTransport; private createWebSocketTransport; private createStreamableHttpTransport; private setupTransportHandlers; private performMcpHandshake; private handleConnectionError; private handleConnectionClose; private updateServerStatus; private cleanupServerConnection; private generateRequestId; private withTimeout; private validateServerConfig; private getDefaultConfigPath; private loadConfig; private saveConfig; private importClaudeDesktopConfig; /** * 自动检测传输类型(向后兼容) */ private detectTransportType; private importNativeConfig; } export {}; //# sourceMappingURL=McpClient.d.ts.map