From 811a78f3104ffc0643eb5cb1b66f72ec37236f68 Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Thu, 23 Apr 2026 14:15:47 +0100 Subject: [PATCH] fix: close per-request server and transport in example-apps handler The stateless /:slug/mcp handler creates a fresh McpServer and StreamableHTTPServerTransport on every request but never closed them, leaking memory under load. Register a 'close' listener (fires on both normal completion and client abort mid-SSE) to release them. --- src/modules/example-apps/index.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/modules/example-apps/index.ts b/src/modules/example-apps/index.ts index 34513cf..b649b0c 100644 --- a/src/modules/example-apps/index.ts +++ b/src/modules/example-apps/index.ts @@ -133,6 +133,11 @@ export class ExampleAppsModule { sessionIdGenerator: undefined, // Stateless: no session management }); + res.on('close', () => { + transport.close(); + server.close(); + }); + await server.connect(transport); await transport.handleRequest(req, res, req.body); } catch (error) {