/** * MCP Server - Model Context Protocol Server Implementation * * Exposes agent tools and capabilities via MCP protocol. * * @example * ```typescript * import { MCPServer, Agent } from 'praisonai'; * * const agent = new Agent({ name: 'Helper', tools: [...] }); * const server = new MCPServer({ agent }); * * await server.start({ port: 3000 }); * ``` */ /** * MCP Tool definition */ export interface MCPServerTool { name: string; description: string; inputSchema: { type: 'object'; properties: Record; required?: string[]; }; handler: (params: Record) => Promise; } /** * MCP Resource definition */ export interface MCPResource { uri: string; name: string; description?: string; mimeType?: string; handler: () => Promise<{ contents: Array<{ uri: string; text?: string; blob?: string; }>; }>; } /** * MCP Prompt definition */ export interface MCPPrompt { name: string; description?: string; arguments?: Array<{ name: string; description?: string; required?: boolean; }>; handler: (args: Record) => Promise<{ messages: Array<{ role: string; content: any; }>; }>; } /** * MCP Server configuration */ export interface MCPServerConfig { /** Server name */ name?: string; /** Server version */ version?: string; /** Agent to expose */ agent?: any; /** Tools to expose */ tools?: MCPServerTool[]; /** Resources to expose */ resources?: MCPResource[]; /** Prompts to expose */ prompts?: MCPPrompt[]; /** Enable stdio transport */ stdio?: boolean; /** HTTP port (null = disabled) */ port?: number | null; /** Enable logging */ logging?: boolean; } /** * MCP Request */ interface MCPRequest { jsonrpc: '2.0'; id?: string | number; method: string; params?: Record; } /** * MCP Response */ interface MCPResponse { jsonrpc: '2.0'; id?: string | number; result?: any; error?: { code: number; message: string; data?: any; }; } /** * MCP Server - Expose tools via Model Context Protocol */ export declare class MCPServer { readonly id: string; private name; private version; private tools; private resources; private prompts; private logging; private running; private httpServer; constructor(config?: MCPServerConfig); /** * Register a tool */ registerTool(tool: MCPServerTool): void; /** * Register a resource */ registerResource(resource: MCPResource): void; /** * Register a prompt */ registerPrompt(prompt: MCPPrompt): void; /** * Extract and register tools from an agent */ private registerAgentTools; /** * Handle MCP request */ handleRequest(request: MCPRequest): Promise; /** * Handle initialize request */ private handleInitialize; /** * Handle tools/list */ private handleToolsList; /** * Handle tools/call */ private handleToolCall; /** * Handle resources/list */ private handleResourcesList; /** * Handle resources/read */ private handleResourceRead; /** * Handle prompts/list */ private handlePromptsList; /** * Handle prompts/get */ private handlePromptGet; /** * Start stdio transport */ startStdio(): Promise; /** * Start HTTP transport */ startHttp(port: number): Promise; /** * Start server */ start(options?: { port?: number; stdio?: boolean; }): Promise; /** * Stop server */ stop(): Promise; /** * Check if running */ isRunning(): boolean; /** * Get server info */ getInfo(): { name: string; version: string; tools: number; resources: number; prompts: number; }; } /** * Create an MCP server */ export declare function createMCPServer(config?: MCPServerConfig): MCPServer; export default MCPServer;