import { CallToolResult } from "@modelcontextprotocol/sdk/types.js"; import { EventEmitter } from "events"; import { TransportType, TransportConfig } from "./transports.js"; export interface MCPServerConfig { name: string; transport: TransportConfig; command?: string; args?: string[]; env?: Record; } export interface MCPTool { name: string; description: string; inputSchema: any; serverName: string; originalToolName: string; } export declare class MCPManager extends EventEmitter { private clients; private transports; private serverTools; private staleCaches; private debugLogFile?; setDebugLogFile(debugLogFile: string): void; addServer(config: MCPServerConfig): Promise; removeServer(serverName: string): Promise; /** * Mark a server's tool cache as stale. Next time tools are requested, this server will be refreshed. */ invalidateCache(serverName: string): void; /** * Refresh tools for a specific server by re-querying it. */ refreshServerTools(serverName: string): Promise; callTool(toolName: string, arguments_: any): Promise; getTools(): Promise; getServers(): string[]; shutdown(): Promise; getTransportType(serverName: string): TransportType | undefined; ensureServersInitialized(): Promise; }