import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js"; import { Request, Response } from "express"; //#region src/http.d.ts /** * Session manager for stateful MCP connections. * Stores active transports by session ID. */ declare class McpSessionManager { private transports; /** * Get an existing transport by session ID. */ get(sessionId: string): StreamableHTTPServerTransport | undefined; /** * Store a transport with its session ID. */ set(sessionId: string, transport: StreamableHTTPServerTransport): void; /** * Remove a transport by session ID. */ delete(sessionId: string): boolean; /** * Check if a session exists. */ has(sessionId: string): boolean; /** * Get all active session IDs. */ getSessionIds(): string[]; /** * Clear all sessions. */ clear(): void; } /** * Options for creating an HTTP handler. */ interface HttpHandlerOptions { /** * Factory function to create a new MCP server for each session. * This allows per-session customization (e.g., different auth contexts). */ createServer: () => McpServer | Promise; /** * Session manager for stateful connections. * If not provided, a new one will be created. */ sessionManager?: McpSessionManager; /** * Optional callback when a new session is created. */ onSessionCreated?: (sessionId: string) => void; /** * Optional callback when a session is closed. */ onSessionClosed?: (sessionId: string) => void; /** * Optional error handler. */ onError?: (error: unknown) => void; } /** * Create HTTP request handlers for the MCP server. * Returns handlers for POST, GET, and DELETE methods. */ declare function createHttpHandlers(options: HttpHandlerOptions): { handlePost: (req: Request, res: Response) => Promise; handleGet: (req: Request, res: Response) => Promise; handleDelete: (req: Request, res: Response) => Promise; sessionManager: McpSessionManager; }; //#endregion export { HttpHandlerOptions, McpSessionManager, StreamableHTTPServerTransport, createHttpHandlers }; //# sourceMappingURL=http.d.mts.map