mirror of
https://github.com/czlonkowski/n8n-mcp.git
synced 2026-03-31 22:53:07 +00:00
Add new MCP tool that enables AI-powered workflow generation from natural language descriptions. Uses handler delegation pattern — hosting environments inject a GenerateWorkflowHandler via EngineOptions, self-hosted instances receive a hosted-only informational response. Handler flows through N8NMCPEngine → SingleSessionHTTPServer → N8NDocumentationMCPServer with helpers for createWorkflow, validateWorkflow, autofixWorkflow, and getWorkflow. Includes full tool documentation, tests, and corrected tools overview count. Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
58 lines
1.9 KiB
JavaScript
58 lines
1.9 KiB
JavaScript
#!/usr/bin/env node
|
|
import express from 'express';
|
|
import { InstanceContext } from './types/instance-context';
|
|
import { SessionState } from './types/session-state';
|
|
import { GenerateWorkflowHandler } from './types/generate-workflow';
|
|
export interface SingleSessionHTTPServerOptions {
|
|
generateWorkflowHandler?: GenerateWorkflowHandler;
|
|
}
|
|
export declare class SingleSessionHTTPServer {
|
|
private transports;
|
|
private servers;
|
|
private sessionMetadata;
|
|
private sessionContexts;
|
|
private contextSwitchLocks;
|
|
private session;
|
|
private consoleManager;
|
|
private expressServer;
|
|
private sessionTimeout;
|
|
private authToken;
|
|
private cleanupTimer;
|
|
private generateWorkflowHandler?;
|
|
constructor(options?: SingleSessionHTTPServerOptions);
|
|
private startSessionCleanup;
|
|
private cleanupExpiredSessions;
|
|
private removeSession;
|
|
private getActiveSessionCount;
|
|
private canCreateSession;
|
|
private isValidSessionId;
|
|
private isJsonRpcNotification;
|
|
private sanitizeErrorForClient;
|
|
private updateSessionAccess;
|
|
private switchSessionContext;
|
|
private performContextSwitch;
|
|
private getSessionMetrics;
|
|
private loadAuthToken;
|
|
private validateEnvironment;
|
|
handleRequest(req: express.Request, res: express.Response, instanceContext?: InstanceContext): Promise<void>;
|
|
private resetSessionSSE;
|
|
private isExpired;
|
|
private isSessionExpired;
|
|
start(): Promise<void>;
|
|
shutdown(): Promise<void>;
|
|
getSessionInfo(): {
|
|
active: boolean;
|
|
sessionId?: string;
|
|
age?: number;
|
|
sessions?: {
|
|
total: number;
|
|
active: number;
|
|
expired: number;
|
|
max: number;
|
|
sessionIds: string[];
|
|
};
|
|
};
|
|
exportSessionState(): SessionState[];
|
|
restoreSessionState(sessions: SessionState[]): number;
|
|
}
|
|
//# sourceMappingURL=http-server-single-session.d.ts.map
|