From 6f17a28cfc374eb71dfcc5db0c0705a510b17cae Mon Sep 17 00:00:00 2001 From: Charlotte Zhuang Date: Mon, 19 May 2025 18:44:24 -0700 Subject: [PATCH 1/2] Fix Not Connected Error in Everything Streamable HTTP Server --- src/everything/streamableHttp.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/everything/streamableHttp.ts b/src/everything/streamableHttp.ts index 9ea3a8fc14..b99662ad44 100644 --- a/src/everything/streamableHttp.ts +++ b/src/everything/streamableHttp.ts @@ -8,7 +8,7 @@ console.error('Starting Streamable HTTP server...'); const app = express(); -const { server, cleanup } = createServer(); +const cleanupHooks: (() => Promise)[] = []; const transports: { [sessionId: string]: StreamableHTTPServerTransport } = {}; @@ -47,6 +47,8 @@ app.post('/mcp', async (req: Request, res: Response) => { // Connect the transport to the MCP server BEFORE handling the request // so responses can flow back through the same transport + const { server, cleanup } = createServer(); + cleanupHooks.push(() => cleanup().then(() => server.close())); await server.connect(transport); await transport.handleRequest(req, res); @@ -167,8 +169,7 @@ process.on('SIGINT', async () => { console.error(`Error closing transport for session ${sessionId}:`, error); } } - await cleanup(); - await server.close(); + await Promise.all(cleanupHooks); console.error('Server shutdown complete'); process.exit(0); }); From 149ed4f7722280648a3198acb2f353f5aeda00a9 Mon Sep 17 00:00:00 2001 From: Charlotte Zhuang Date: Mon, 19 May 2025 19:10:29 -0700 Subject: [PATCH 2/2] rename variable --- src/everything/streamableHttp.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/everything/streamableHttp.ts b/src/everything/streamableHttp.ts index b99662ad44..7294e47b0b 100644 --- a/src/everything/streamableHttp.ts +++ b/src/everything/streamableHttp.ts @@ -8,7 +8,7 @@ console.error('Starting Streamable HTTP server...'); const app = express(); -const cleanupHooks: (() => Promise)[] = []; +const serverCleanupHooks: (() => Promise)[] = []; const transports: { [sessionId: string]: StreamableHTTPServerTransport } = {}; @@ -48,7 +48,7 @@ app.post('/mcp', async (req: Request, res: Response) => { // Connect the transport to the MCP server BEFORE handling the request // so responses can flow back through the same transport const { server, cleanup } = createServer(); - cleanupHooks.push(() => cleanup().then(() => server.close())); + serverCleanupHooks.push(() => cleanup().then(() => server.close())); await server.connect(transport); await transport.handleRequest(req, res); @@ -169,7 +169,7 @@ process.on('SIGINT', async () => { console.error(`Error closing transport for session ${sessionId}:`, error); } } - await Promise.all(cleanupHooks); + await Promise.all(serverCleanupHooks); console.error('Server shutdown complete'); process.exit(0); });