11import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js" ;
2- import { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js' ;
32import { InMemoryEventStore } from '@modelcontextprotocol/sdk/examples/shared/inMemoryEventStore.js' ;
43import express , { Request , Response } from "express" ;
54import { createServer } from "./everything.js" ;
65import { randomUUID } from 'node:crypto' ;
76
87const app = express ( ) ;
98
10- app . use ( express . json ( ) ) ;
11-
129const { server, cleanup } = createServer ( ) ;
1310
1411const transports : { [ sessionId : string ] : StreamableHTTPServerTransport } = { } ;
1512
1613app . post ( '/mcp' , async ( req : Request , res : Response ) => {
17- console . log ( 'Received MCP request:' , req . body ) ;
14+ console . log ( 'Received MCP POST request' ) ;
1815 try {
1916 // Check for existing session ID
2017 const sessionId = req . headers [ 'mcp-session-id' ] as string | undefined ;
@@ -23,7 +20,7 @@ app.post('/mcp', async (req: Request, res: Response) => {
2320 if ( sessionId && transports [ sessionId ] ) {
2421 // Reuse existing transport
2522 transport = transports [ sessionId ] ;
26- } else if ( ! sessionId && isInitializeRequest ( req . body ) ) {
23+ } else if ( ! sessionId ) {
2724 // New initialization request
2825 const eventStore = new InMemoryEventStore ( ) ;
2926 transport = new StreamableHTTPServerTransport ( {
@@ -50,7 +47,7 @@ app.post('/mcp', async (req: Request, res: Response) => {
5047 // so responses can flow back through the same transport
5148 await server . connect ( transport ) ;
5249
53- await transport . handleRequest ( req , res , req . body ) ;
50+ await transport . handleRequest ( req , res ) ;
5451 return ; // Already handled
5552 } else {
5653 // Invalid request - no session ID or not initialization request
@@ -67,7 +64,7 @@ app.post('/mcp', async (req: Request, res: Response) => {
6764
6865 // Handle the request with existing transport - no need to reconnect
6966 // The existing transport is already connected to the server
70- await transport . handleRequest ( req , res , req . body ) ;
67+ await transport . handleRequest ( req , res ) ;
7168 } catch ( error ) {
7269 console . error ( 'Error handling MCP request:' , error ) ;
7370 if ( ! res . headersSent ) {
@@ -86,6 +83,7 @@ app.post('/mcp', async (req: Request, res: Response) => {
8683
8784// Handle GET requests for SSE streams (using built-in support from StreamableHTTP)
8885app . get ( '/mcp' , async ( req : Request , res : Response ) => {
86+ console . log ( 'Received MCP GET request' ) ;
8987 const sessionId = req . headers [ 'mcp-session-id' ] as string | undefined ;
9088 if ( ! sessionId || ! transports [ sessionId ] ) {
9189 res . status ( 400 ) . json ( {
0 commit comments