diff --git a/src/services/mcpService.ts b/src/services/mcpService.ts index 5e85744..de387dd 100644 --- a/src/services/mcpService.ts +++ b/src/services/mcpService.ts @@ -16,10 +16,16 @@ export const initMcpServer = async (name: string, version: string): Promise { +export const getMcpServer = (sessionId?: string): Server => { + if (!sessionId) { + return createMcpServer(config.mcpHubName, config.mcpHubVersion); + } + if (!servers[sessionId]) { const server = createMcpServer(config.mcpHubName, config.mcpHubVersion); servers[sessionId] = server; + } else { + console.log(`MCP server already exists for sessionId: ${sessionId}`); } return servers[sessionId]; }; diff --git a/src/services/sseService.ts b/src/services/sseService.ts index ade5b60..4129892 100644 --- a/src/services/sseService.ts +++ b/src/services/sseService.ts @@ -126,6 +126,7 @@ export const handleMcpPostRequest = async (req: Request, res: Response): Promise }); transport.onclose = () => { + console.log(`Transport closed: ${transport.sessionId}`); if (transport.sessionId) { delete transports[transport.sessionId]; deleteMcpServer(transport.sessionId); @@ -134,7 +135,7 @@ export const handleMcpPostRequest = async (req: Request, res: Response): Promise }; console.log(`MCP connection established: ${transport.sessionId}`); - await getMcpServer(transport.sessionId || 'mcp').connect(transport); + await getMcpServer(transport.sessionId).connect(transport); } else { res.status(400).json({ jsonrpc: '2.0',