fix: store session after handleRequest so sessionId is initialized

transport.sessionId is only populated during handleRequest(), not
before. Reading it before that call stored sessions under key
`undefined`, causing all subsequent requests to get "Session not found."

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Danijel
2026-03-18 02:17:56 +01:00
parent 2652f85bcf
commit 87d83ab4c6

View File

@@ -134,14 +134,14 @@ const httpServer = http.createServer(async (req, res) => {
const mcpServer = await createServer(config); const mcpServer = await createServer(config);
await mcpServer.connect(transport); await mcpServer.connect(transport);
await transport.handleRequest(req, res, parsedBody);
const sid = transport.sessionId!; const sid = transport.sessionId!;
sessions.set(sid, { transport, createdAt: Date.now() }); sessions.set(sid, { transport, createdAt: Date.now() });
transport.onclose = () => { transport.onclose = () => {
sessions.delete(sid); sessions.delete(sid);
}; };
await transport.handleRequest(req, res, parsedBody);
} else { } else {
// Existing session // Existing session
const session = sessions.get(sessionId); const session = sessions.get(sessionId);