Merge pull request #53 from modelcontextprotocol/justin/server-connection-errors

Fix server dying when an error occurs
This commit is contained in:
Justin Spahr-Summers
2024-11-12 15:31:36 +00:00
committed by GitHub

View File

@@ -51,6 +51,7 @@ const createTransport = async (query: express.Request["query"]) => {
};
app.get("/sse", async (req, res) => {
try {
console.log("New SSE connection");
const backingServerTransport = await createTransport(req.query);
@@ -73,22 +74,36 @@ app.get("/sse", async (req, res) => {
},
});
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) => {
try {
const sessionId = req.query.sessionId;
console.log(`Received message for sessionId ${sessionId}`);
const transport = webAppTransports.find((t) => t.sessionId === sessionId);
if (!transport) {
res.status(404).send("Session not found");
res.status(404).end("Session not found");
return;
}
await transport.handlePostMessage(req, res);
} catch (error) {
console.error("Error in /message route:", error);
res.status(500).json(error);
}
});
app.get("/default-environment", (req, res) => {
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;