Skip to main content
Glama
sse.js2.39 kB
const {logger} = require("../utils/logger"); const express = require("express"); const cors = require("cors"); const { SSEServerTransport } = require("@modelcontextprotocol/sdk/server/sse.js"); const {startServer} = require("./base"); const startSSEServer = async () => { try { // Log the current log level on startup logger.info(`Starting sse server`) const app = express() const server = startServer() app.use(cors()); const transports = {}; app.get("/sse", async (req, res) => { const transport = new SSEServerTransport("/messages", res); transports[transport.sessionId] = transport; logger.info("New SSE connection established", { sessionId: transport.sessionId }) res.on("close", () => { logger.info("SSE connection closed", { sessionId: transport.sessionId }) delete transports[transport.sessionId] }) try { await server.connect(transport); } catch (error) { logger.error("Error connecting transport", { sessionId: transport.sessionId, error }) } }) app.post("/messages", async (req, res) => { const sessionId = req.query.sessionId; const transport = transports[sessionId]; if (transport) { logger.debug("Handling message", { sessionId, body: req.body }) try { await transport.handlePostMessage(req, res) } catch (error) { logger.error("Error handling message", { sessionId, error }) res.status(500).send("Internal server error") } } else { logger.warn("No transport found for session", { sessionId }) res.status(400).send("No transport found for sessionId") } }) const PORT = process.env.PORT || 3001 app.listen(PORT, () => { logger.info( `BlockChain MCP SSE Server is running on http://localhost:${PORT}` ) }) return server; } catch (e) { logger.error("Error starting BlockChain MCP SSE Server:", e) } } module.exports = {startSSEServer}

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dddd-community/hexiaoyi-mcp-js'

If you have feedback or need assistance with the MCP directory API, please join our Discord server