import { Client } from '@modelcontextprotocol/sdk/client/index.js'; import { MCP_SERVER_TYPE, SSEClientTransportOptions } from './types'; export interface IMCPServer { isStarted(): boolean; start(): Promise; getServerName(): string; callTool(toolName: string, toolCallId: string, arg_string: string): ReturnType; getTools(): ReturnType; getClient(): Client | null; update(command: string, args?: string[], env?: { [key: string]: string; }): void; stop(): void; } export interface MCPServerManager { callTool(serverName: string, toolName: string, toolCallId: string, arg_string: string): ReturnType; removeServer(name: string): void; addOrUpdateServer(description: MCPServerDescription): void; addOrUpdateServerDirectly(server: any): void; initBuiltinServer(builtinMCPServer: any, enabled: boolean): void; getTools(serverName: string): ReturnType; getServerNames(): Promise; startServer(serverName: string): Promise; stopServer(serverName: string): Promise; getStartedServers(): Promise; registerTools(serverName: string): Promise; addExternalMCPServers(servers: MCPServerDescription[]): void; getServers(): Map; getServerByName(name: string): IMCPServer | undefined; } export type MCPTool = Awaited>['tools'][number]; export type MCPToolParameter = Awaited>['tools'][number]['inputSchema']; export interface BaseMCPServerDescription { /** * The unique name of the MCP server. */ name: string; /** * Whether to enable the MCP server. */ enabled?: boolean; } export interface StdioMCPServerDescription extends BaseMCPServerDescription { /** * The unique name of the MCP server. */ name: string; /** * The command to execute the MCP server. */ command: string; /** * An array of arguments to pass to the command. */ args?: string[]; /** * Optional environment variables to set when starting the server. */ env?: { [key: string]: string; }; } export interface SSEMCPServerDescription extends BaseMCPServerDescription { /** * The host of the MCP server. */ url: string; transportOptions?: SSEClientTransportOptions; } export interface BuiltinMCPServerDescription { /** * The unique name of the MCP server. */ name: string; /** * Whether to enable the MCP server. */ enabled?: boolean; } export type MCPServerDescription = ({ type: MCP_SERVER_TYPE.STDIO; } & StdioMCPServerDescription) | ({ type: MCP_SERVER_TYPE.SSE; } & SSEMCPServerDescription) | ({ type: MCP_SERVER_TYPE.BUILTIN; } & BuiltinMCPServerDescription); export declare const MCPServerManager: unique symbol; export declare const MCPServerManagerPath = "ServicesMCPServerManager"; export declare const MCPServersEnabledKey = "mcp_servers_enabled"; //# sourceMappingURL=mcp-server-manager.d.ts.map