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
This commit is contained in:
parent
789c90cc0b
commit
c485e57a39
2 changed files with 12 additions and 1 deletions
|
|
@ -197,7 +197,7 @@ app.post("/mcp", async (req, res) => {
|
||||||
onsessioninitialized: (sessionId) => {
|
onsessioninitialized: (sessionId) => {
|
||||||
webAppTransports.set(sessionId, webAppTransport);
|
webAppTransports.set(sessionId, webAppTransport);
|
||||||
serverTransports.set(sessionId, serverTransport!);
|
serverTransports.set(sessionId, serverTransport!);
|
||||||
console.log("New client <-> proxy server sessionId: " + sessionId);
|
console.log("Client <-> Proxy sessionId: " + sessionId);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
console.log("Created StreamableHttp client transport");
|
console.log("Created StreamableHttp client transport");
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,8 @@ export default function mcpProxy({
|
||||||
let transportToClientClosed = false;
|
let transportToClientClosed = false;
|
||||||
let transportToServerClosed = false;
|
let transportToServerClosed = false;
|
||||||
|
|
||||||
|
let reportedServerSession = false;
|
||||||
|
|
||||||
transportToClient.onmessage = (message) => {
|
transportToClient.onmessage = (message) => {
|
||||||
transportToServer.send(message).catch((error) => {
|
transportToServer.send(message).catch((error) => {
|
||||||
// Send error response back to client if it was a request (has id) and connection is still open
|
// 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) => {
|
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);
|
transportToClient.send(message).catch(onClientError);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue