@@ -7,14 +7,12 @@ import { randomUUID } from 'node:crypto';
7
7
8
8
const app = express ( ) ;
9
9
10
- app . use ( express . json ( ) ) ;
11
-
12
10
const { server, cleanup } = createServer ( ) ;
13
11
14
12
const transports : { [ sessionId : string ] : StreamableHTTPServerTransport } = { } ;
15
13
16
14
app . post ( '/mcp' , async ( req : Request , res : Response ) => {
17
- console . log ( 'Received MCP request:' , req . body ) ;
15
+ console . log ( 'Received MCP POST request' ) ;
18
16
try {
19
17
// Check for existing session ID
20
18
const sessionId = req . headers [ 'mcp-session-id' ] as string | undefined ;
@@ -23,7 +21,7 @@ app.post('/mcp', async (req: Request, res: Response) => {
23
21
if ( sessionId && transports [ sessionId ] ) {
24
22
// Reuse existing transport
25
23
transport = transports [ sessionId ] ;
26
- } else if ( ! sessionId && isInitializeRequest ( req . body ) ) {
24
+ } else if ( ! sessionId ) {
27
25
// New initialization request
28
26
const eventStore = new InMemoryEventStore ( ) ;
29
27
transport = new StreamableHTTPServerTransport ( {
@@ -50,7 +48,7 @@ app.post('/mcp', async (req: Request, res: Response) => {
50
48
// so responses can flow back through the same transport
51
49
await server . connect ( transport ) ;
52
50
53
- await transport . handleRequest ( req , res , req . body ) ;
51
+ await transport . handleRequest ( req , res ) ;
54
52
return ; // Already handled
55
53
} else {
56
54
// Invalid request - no session ID or not initialization request
@@ -67,7 +65,7 @@ app.post('/mcp', async (req: Request, res: Response) => {
67
65
68
66
// Handle the request with existing transport - no need to reconnect
69
67
// The existing transport is already connected to the server
70
- await transport . handleRequest ( req , res , req . body ) ;
68
+ await transport . handleRequest ( req , res ) ;
71
69
} catch ( error ) {
72
70
console . error ( 'Error handling MCP request:' , error ) ;
73
71
if ( ! res . headersSent ) {
@@ -86,6 +84,7 @@ app.post('/mcp', async (req: Request, res: Response) => {
86
84
87
85
// Handle GET requests for SSE streams (using built-in support from StreamableHTTP)
88
86
app . get ( '/mcp' , async ( req : Request , res : Response ) => {
87
+ console . log ( 'Received MCP GET request' ) ;
89
88
const sessionId = req . headers [ 'mcp-session-id' ] as string | undefined ;
90
89
if ( ! sessionId || ! transports [ sessionId ] ) {
91
90
res . status ( 400 ) . json ( {
0 commit comments