il2cpp-dump-analyzer-mcp
Version:
Agentic RAG system for analyzing IL2CPP dump.cs files from Unity games
191 lines (190 loc) • 5.02 kB
TypeScript
/**
* Transport types and interfaces for IL2CPP MCP Server
* Supports stdio, HTTP, and WebSocket transports for local and remote access
*/
import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
/**
* Available transport types
*/
export declare enum TransportType {
STDIO = "stdio",
HTTP = "http",
WEBSOCKET = "websocket",
SSE = "sse"
}
/**
* Transport configuration interface
*/
export interface TransportConfig {
/** Transport type to use */
type: TransportType;
/** Host for network transports (default: 'localhost') */
host?: string;
/** Port for network transports (default: 3000) */
port?: number;
/** Enable CORS for network transports (default: true) */
enableCors?: boolean;
/** API key for authentication (optional) */
apiKey?: string;
/** Session timeout in milliseconds (default: 30 minutes) */
sessionTimeout?: number;
/** Enable request logging (default: false) */
enableLogging?: boolean;
/** Maximum request size in bytes (default: 10MB) */
maxRequestSize?: number;
/** Rate limiting: requests per minute (default: 100) */
rateLimitRpm?: number;
/** Enable SSL/TLS for HTTPS (default: false) */
enableSsl?: boolean;
/** SSL certificate path (required if enableSsl is true) */
sslCertPath?: string;
/** SSL private key path (required if enableSsl is true) */
sslKeyPath?: string;
}
/**
* Default transport configuration
*/
export declare const DEFAULT_TRANSPORT_CONFIG: Required<TransportConfig>;
/**
* Transport factory interface
*/
export interface ITransportFactory {
/**
* Create a transport instance based on configuration
*/
createTransport(config: TransportConfig): Promise<Transport>;
/**
* Validate transport configuration
*/
validateConfig(config: TransportConfig): boolean;
/**
* Get supported transport types
*/
getSupportedTypes(): TransportType[];
}
/**
* Network transport options for HTTP/WebSocket
*/
export interface NetworkTransportOptions {
/** Server host */
host: string;
/** Server port */
port: number;
/** Enable CORS */
enableCors: boolean;
/** API key for authentication */
apiKey?: string;
/** Session timeout */
sessionTimeout: number;
/** Enable request logging */
enableLogging: boolean;
/** Maximum request size */
maxRequestSize: number;
/** Rate limiting */
rateLimitRpm: number;
/** SSL configuration */
ssl?: {
enabled: boolean;
certPath: string;
keyPath: string;
};
}
/**
* Transport status information
*/
export interface TransportStatus {
/** Transport type */
type: TransportType;
/** Is transport active */
active: boolean;
/** Connection count (for network transports) */
connections?: number;
/** Server address (for network transports) */
address?: string;
/** Last activity timestamp */
lastActivity?: Date;
/** Error information if transport failed */
error?: string;
}
/**
* Transport metrics for monitoring
*/
export interface TransportMetrics {
/** Total requests processed */
totalRequests: number;
/** Active connections */
activeConnections: number;
/** Requests per minute */
requestsPerMinute: number;
/** Average response time in milliseconds */
averageResponseTime: number;
/** Error count */
errorCount: number;
/** Last error timestamp */
lastError?: Date;
/** Bytes sent */
bytesSent: number;
/** Bytes received */
bytesReceived: number;
}
/**
* Authentication information for network requests
*/
export interface AuthInfo {
/** API key */
apiKey?: string;
/** Client IP address */
clientIp?: string;
/** User agent */
userAgent?: string;
/** Session ID */
sessionId?: string;
/** Request timestamp */
timestamp: Date;
}
/**
* Rate limiting information
*/
export interface RateLimitInfo {
/** Requests remaining in current window */
remaining: number;
/** Total requests allowed per window */
limit: number;
/** Window reset time */
resetTime: Date;
/** Current window start time */
windowStart: Date;
}
/**
* Transport event types
*/
export declare enum TransportEvent {
CONNECTED = "connected",
DISCONNECTED = "disconnected",
MESSAGE_RECEIVED = "message_received",
MESSAGE_SENT = "message_sent",
ERROR = "error",
RATE_LIMITED = "rate_limited",
AUTH_FAILED = "auth_failed"
}
/**
* Transport event data
*/
export interface TransportEventData {
/** Event type */
type: TransportEvent;
/** Event timestamp */
timestamp: Date;
/** Transport type */
transportType: TransportType;
/** Client information */
client?: {
id: string;
ip?: string;
userAgent?: string;
};
/** Error information */
error?: Error;
/** Additional event data */
data?: any;
}