From c485e57a3995362be56119aa103bf0da021b5fa0 Mon Sep 17 00:00:00 2001 From: cliffhall Date: Tue, 3 Jun 2025 17:46:43 -0400 Subject: [PATCH] Add reporting of the Proxy <-> Server sessionId. It's only possible to get the session id for this leg of the proxy if it is a StreamableHttp connection. * In server/src/index.ts - slight format tweak of the Client <-> Proxy message so that the two messages will line up when displayed * In server/src/mcpProxy.ts - add reportedServerSession boolean initialized to false - in transportToServer.onmessage, - if reportedServerSession isn't set yet, report the sessionId if present on the transport, and then set reportedServerSession to true --- server/src/index.ts | 2 +- server/src/mcpProxy.ts | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/server/src/index.ts b/server/src/index.ts index 1e43eea2..37327fa2 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -197,7 +197,7 @@ app.post("/mcp", async (req, res) => { onsessioninitialized: (sessionId) => { webAppTransports.set(sessionId, webAppTransport); serverTransports.set(sessionId, serverTransport!); - console.log("New client <-> proxy server sessionId: " + sessionId); + console.log("Client <-> Proxy sessionId: " + sessionId); }, }); console.log("Created StreamableHttp client transport"); diff --git a/server/src/mcpProxy.ts b/server/src/mcpProxy.ts index 15167305..9dee9de4 100644 --- a/server/src/mcpProxy.ts +++ b/server/src/mcpProxy.ts @@ -27,6 +27,8 @@ export default function mcpProxy({ let transportToClientClosed = false; let transportToServerClosed = false; + let reportedServerSession = false; + transportToClient.onmessage = (message) => { transportToServer.send(message).catch((error) => { // Send error response back to client if it was a request (has id) and connection is still open @@ -46,6 +48,15 @@ export default function mcpProxy({ }; transportToServer.onmessage = (message) => { + if (!reportedServerSession) { + if (transportToServer.sessionId) { + // Can only report for StreamableHttp + console.error( + "Proxy <-> Server sessionId: " + transportToServer.sessionId, + ); + } + reportedServerSession = true; + } transportToClient.send(message).catch(onClientError); };