@n8n/n8n-nodes-langchain
Version:

55 lines (54 loc) • 2.58 kB
TypeScript
import type { Tool } from '@langchain/core/tools';
import type * as express from 'express';
import type { Logger } from 'n8n-workflow';
import type { ExecutionStrategy } from './execution/ExecutionStrategy';
import { PendingCallsManager } from './execution/PendingCallsManager';
import type { McpToolCallInfo } from './protocol/types';
import { MCP_LIST_TOOLS_REQUEST_MARKER } from './protocol/types';
import type { SessionStore } from './session/SessionStore';
import type { CompressionResponse, McpTransport } from './transport/Transport';
export interface HandlePostResult {
wasToolCall: boolean;
toolCallInfo?: McpToolCallInfo;
messageId?: string;
relaySessionId?: string;
needsListToolsRelay?: boolean;
}
export declare class McpServer {
private static instance_;
private sessionManager;
private transportFactory;
private executionCoordinator;
private pendingCallsManager;
private resolveFunctions;
private pendingResponses;
private logger;
private constructor();
static instance(logger: Logger): McpServer;
handleSetupRequest(_req: express.Request, resp: CompressionResponse, serverName: string, postUrl: string, tools: Tool[]): Promise<void>;
handleStreamableHttpSetup(req: express.Request, resp: CompressionResponse, serverName: string, tools: Tool[]): Promise<void>;
handlePostMessage(req: express.Request, resp: CompressionResponse, tools: Tool[], serverName?: string): Promise<HandlePostResult>;
handleDeleteRequest(req: express.Request, resp: CompressionResponse): Promise<void>;
getSessionId(req: express.Request): string | undefined;
getMcpMetadata(req: express.Request): {
sessionId: string;
messageId: string;
} | undefined;
storePendingResponse(sessionId: string, messageId: string): void;
handleWorkerResponse(sessionId: string, messageId: string, result: unknown): void;
removePendingResponse(sessionId: string, messageId: string): void;
hasPendingResponse(sessionId: string, messageId: string): boolean;
get pendingResponseCount(): number;
setSessionStore(store: SessionStore): void;
setExecutionStrategy(strategy: ExecutionStrategy): void;
isQueueMode(): boolean;
getTransport(sessionId: string): McpTransport | undefined;
getTools(sessionId: string): Tool[] | undefined;
getPendingCallsManager(): PendingCallsManager;
private createServer;
private setupSession;
private cleanupSession;
private recreateStreamableHttpTransport;
private setupHandlers;
}
export { MCP_LIST_TOOLS_REQUEST_MARKER };