UNPKG

@n8n/n8n-nodes-langchain

Version:
66 lines (65 loc) 3.04 kB
import type { Tool } from '@langchain/core/tools'; import type * as express from 'express'; import type { CredentialCheckResult, 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 pendingGateResults; private logger; private idleTtlMs; private sweepIntervalMs; private sweepTimer?; private constructor(); static instance(logger: Logger): McpServer; handleSetupRequest(_req: express.Request, resp: CompressionResponse, serverName: string, postUrl: string, tools: Tool[], instructions?: string): Promise<void>; handleStreamableHttpSetup(req: express.Request, resp: CompressionResponse, serverName: string, tools: Tool[], instructions?: string): Promise<void>; handlePostMessage(req: express.Request, resp: CompressionResponse, tools: Tool[], serverName?: string, gateResult?: CredentialCheckResult, instructions?: 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; hasSession(sessionId: string): boolean; 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; private startSweep; stopSweep(): void; private runSweep; private hasInFlightWork; isQueueMode(): boolean; getTransport(sessionId: string): McpTransport | undefined; getTools(sessionId: string): Tool[] | undefined; getPendingCallsManager(): PendingCallsManager; private createServer; private setupSession; private cleanupSession; private recreateStreamableHttpTransport; private clientSupportsUrlElicitation; private handleCredentialGate; private setupHandlers; } export { MCP_LIST_TOOLS_REQUEST_MARKER };