@@ -51,44 +51,59 @@ const createTransport = async (query: express.Request["query"]) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
app.get("/sse", async (req, res) => {
|
app.get("/sse", async (req, res) => {
|
||||||
console.log("New SSE connection");
|
try {
|
||||||
|
console.log("New SSE connection");
|
||||||
|
|
||||||
const backingServerTransport = await createTransport(req.query);
|
const backingServerTransport = await createTransport(req.query);
|
||||||
|
|
||||||
console.log("Connected MCP client to backing server transport");
|
console.log("Connected MCP client to backing server transport");
|
||||||
|
|
||||||
const webAppTransport = new SSEServerTransport("/message", res);
|
const webAppTransport = new SSEServerTransport("/message", res);
|
||||||
console.log("Created web app transport");
|
console.log("Created web app transport");
|
||||||
|
|
||||||
webAppTransports.push(webAppTransport);
|
webAppTransports.push(webAppTransport);
|
||||||
console.log("Created web app transport");
|
console.log("Created web app transport");
|
||||||
|
|
||||||
await webAppTransport.start();
|
await webAppTransport.start();
|
||||||
|
|
||||||
mcpProxy({
|
mcpProxy({
|
||||||
transportToClient: webAppTransport,
|
transportToClient: webAppTransport,
|
||||||
transportToServer: backingServerTransport,
|
transportToServer: backingServerTransport,
|
||||||
onerror: (error) => {
|
onerror: (error) => {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
console.log("Set up MCP proxy");
|
console.log("Set up MCP proxy");
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Error in /sse route:", error);
|
||||||
|
res.status(500).json(error);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
app.post("/message", async (req, res) => {
|
app.post("/message", async (req, res) => {
|
||||||
const sessionId = req.query.sessionId;
|
try {
|
||||||
console.log(`Received message for sessionId ${sessionId}`);
|
const sessionId = req.query.sessionId;
|
||||||
|
console.log(`Received message for sessionId ${sessionId}`);
|
||||||
|
|
||||||
const transport = webAppTransports.find((t) => t.sessionId === sessionId);
|
const transport = webAppTransports.find((t) => t.sessionId === sessionId);
|
||||||
if (!transport) {
|
if (!transport) {
|
||||||
res.status(404).send("Session not found");
|
res.status(404).end("Session not found");
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
await transport.handlePostMessage(req, res);
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Error in /message route:", error);
|
||||||
|
res.status(500).json(error);
|
||||||
}
|
}
|
||||||
await transport.handlePostMessage(req, res);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get("/default-environment", (req, res) => {
|
app.get("/default-environment", (req, res) => {
|
||||||
res.json(getDefaultEnvironment());
|
try {
|
||||||
|
res.json(getDefaultEnvironment());
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Error in /default-environment route:", error);
|
||||||
|
res.status(500).json(error);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const PORT = process.env.PORT || 3000;
|
const PORT = process.env.PORT || 3000;
|
||||||
|
|||||||
Reference in New Issue
Block a user