n8n-nodes-mcp-session
Version:
MCP nodes for n8n with session management support
48 lines (47 loc) • 1.58 kB
TypeScript
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
export declare class McpSessionManager {
private static instances;
private client;
private transport;
private isConnected;
private connectionPromise;
private lastUsed;
private readonly sessionId;
private cleanupTimer;
private static readonly SESSION_TIMEOUT;
private static readonly CLEANUP_INTERVAL;
private constructor();
static getInstance(sessionId: string): McpSessionManager;
static generateSessionId(connectionConfig: {
connectionType: string;
command?: string;
args?: string[];
env?: Record<string, string>;
httpStreamUrl?: string;
sseUrl?: string;
headers?: Record<string, string>;
timestamp?: number;
}): string;
connect(transport: Transport): Promise<Client>;
private doConnect;
getClient(): Promise<Client | null>;
getClientSync(): Client | null;
isSessionConnected(): boolean;
private validateConnection;
static createNewSession(connectionConfig: any): string;
cleanup(): Promise<void>;
private startCleanupTimer;
private checkAndCleanupExpiredSessions;
static cleanupAllSessions(): Promise<void>;
static getSessionStats(): {
totalSessions: number;
connectedSessions: number;
sessions: Array<{
sessionId: string;
isConnected: boolean;
lastUsed: Date;
age: number;
}>;
};
}