/** * Model Control Protocol (MCP) Types * * This file defines the types and interfaces for the Model Control Protocol (MCP) * implementation in Brainy. MCP allows external models to access Brainy data and * use the augmentation pipeline as tools. */ /** * MCP version information */ export declare const MCP_VERSION = "1.0.0"; /** * MCP request types */ export declare enum MCPRequestType { DATA_ACCESS = "data_access", TOOL_EXECUTION = "tool_execution", SYSTEM_INFO = "system_info", AUTHENTICATION = "authentication" } /** * Base interface for all MCP requests */ export interface MCPRequest { /** The type of request */ type: MCPRequestType; /** Request ID for tracking and correlation */ requestId: string; /** API version */ version: string; /** Authentication token (if required) */ authToken?: string; } /** * Interface for data access requests */ export interface MCPDataAccessRequest extends MCPRequest { type: MCPRequestType.DATA_ACCESS; /** The data access operation to perform */ operation: 'get' | 'search' | 'add' | 'getRelationships'; /** Parameters for the operation */ parameters: Record; } /** * Interface for tool execution requests */ export interface MCPToolExecutionRequest extends MCPRequest { type: MCPRequestType.TOOL_EXECUTION; /** The name of the tool to execute */ toolName: string; /** Parameters for the tool */ parameters: Record; } /** * Interface for system info requests */ export interface MCPSystemInfoRequest extends MCPRequest { type: MCPRequestType.SYSTEM_INFO; /** The type of information to retrieve */ infoType: 'status' | 'availableTools' | 'version'; } /** * Interface for authentication requests */ export interface MCPAuthenticationRequest extends MCPRequest { type: MCPRequestType.AUTHENTICATION; /** The authentication credentials */ credentials: { apiKey?: string; username?: string; password?: string; }; } /** * Base interface for all MCP responses */ export interface MCPResponse { /** Whether the request was successful */ success: boolean; /** The request ID from the original request */ requestId: string; /** API version */ version: string; /** Response data (if successful) */ data?: any; /** Error information (if unsuccessful) */ error?: { code: string; message: string; details?: any; }; } /** * Interface for MCP tool definitions */ export interface MCPTool { /** The name of the tool */ name: string; /** A description of what the tool does */ description: string; /** The parameters the tool accepts */ parameters: { type: 'object'; properties: Record; required: string[]; }; } /** * Configuration options for MCP services */ export interface MCPServiceOptions { /** Port for the WebSocket server */ wsPort?: number; /** Port for the REST server */ restPort?: number; /** Whether to enable authentication */ enableAuth?: boolean; /** API keys for authentication */ apiKeys?: string[]; /** Rate limiting configuration */ rateLimit?: { /** Maximum number of requests per window */ maxRequests: number; /** Time window in milliseconds */ windowMs: number; }; /** CORS configuration for REST API */ cors?: { /** Allowed origins */ origin: string | string[]; /** Whether to allow credentials */ credentials: boolean; }; }