From e2c5cc8ed1a2865b1baf85195ec6a5db39e5c6a6 Mon Sep 17 00:00:00 2001 From: samanhappy Date: Wed, 28 May 2025 23:25:21 +0800 Subject: [PATCH] fix: refine sessionId handling in handleMcpPostRequest for initialization requests (#138) Co-authored-by: samanhappy@qq.com --- src/middlewares/index.ts | 3 +-- src/services/sseService.ts | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/middlewares/index.ts b/src/middlewares/index.ts index 76624ca..990f5c6 100644 --- a/src/middlewares/index.ts +++ b/src/middlewares/index.ts @@ -54,9 +54,8 @@ export const initMiddlewares = (app: express.Application): void => { // Only apply JSON parsing for API and auth routes, not for SSE or message endpoints if ( req.path !== `${basePath}/sse` && - req.path !== `${basePath}/messages` && !req.path.startsWith(`${basePath}/sse/`) && - !req.path.startsWith(`${basePath}/mcp/`) + req.path !== `${basePath}/messages` ) { express.json()(req, res, next); } else { diff --git a/src/services/sseService.ts b/src/services/sseService.ts index 37a9cda..67cb595 100644 --- a/src/services/sseService.ts +++ b/src/services/sseService.ts @@ -129,7 +129,7 @@ export const handleMcpPostRequest = async (req: Request, res: Response): Promise if (sessionId && transports[sessionId]) { console.log(`Reusing existing transport for sessionId: ${sessionId}`); transport = transports[sessionId].transport as StreamableHTTPServerTransport; - } else if (!sessionId) { + } else if (!sessionId && isInitializeRequest(req.body)) { transport = new StreamableHTTPServerTransport({ sessionIdGenerator: () => randomUUID(), onsessioninitialized: (sessionId) => {