@@ -313,16 +313,29 @@ const app = express();
313313app .use (express .json ());
314314
315315const transport: StreamableHTTPServerTransport = new StreamableHTTPServerTransport ({
316- sessionIdGenerator: undefined ,
316+ sessionIdGenerator: undefined , // set to undefined for stateless servers
317317});
318- await server .connect (transport );
318+
319+ // Setup routes for the server
320+ const setupServer = async () => {
321+ await server .connect (transport );
322+ };
319323
320324app .post (' /mcp' , async (req : Request , res : Response ) => {
321325 console .log (' Received MCP request:' , req .body );
322326 try {
323327 await transport .handleRequest (req , res , req .body );
324328 } catch (error ) {
325- // ... handle error
329+ console .error (' Error handling MCP request:' , error );
330+ if (! res .headersSent ) {
331+ res .status (500 ).json ({
332+ jsonrpc: ' 2.0' ,
333+ error: {
334+ code: - 32603 ,
335+ message: ' Internal server error' ,
336+ },
337+ id: null ,
338+ });
326339 }
327340 }
328341});
@@ -353,8 +366,13 @@ app.delete('/mcp', async (req: Request, res: Response) => {
353366
354367// Start the server
355368const PORT = 3000 ;
356- app .listen (PORT , () => {
357- console .log (` Stateless MCP Streamable HTTP Server listening on port ${PORT } ` );
369+ setupServer ().then (() => {
370+ app .listen (PORT , () => {
371+ console .log (` MCP Streamable HTTP Server listening on port ${PORT } ` );
372+ });
373+ }).catch (error => {
374+ console .error (' Failed to set up the server:' , error );
375+ process .exit (1 );
358376});
359377
360378```
0 commit comments