Skip to main content
Glama

Knowledge Graph Memory Server

MIT License
52,555
68,825
  • Apple
  • Linux
sse.ts2.14 kB
import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js"; import express from "express"; import { createServer } from "./everything.js"; import cors from 'cors'; console.error('Starting SSE server...'); const app = express(); app.use(cors({ "origin": "*", // use "*" with caution in production "methods": "GET,POST", "preflightContinue": false, "optionsSuccessStatus": 204, })); // Enable CORS for all routes so Inspector can connect const transports: Map<string, SSEServerTransport> = new Map<string, SSEServerTransport>(); app.get("/sse", async (req, res) => { let transport: SSEServerTransport; const { server, cleanup, startNotificationIntervals } = createServer(); if (req?.query?.sessionId) { const sessionId = (req?.query?.sessionId as string); transport = transports.get(sessionId) as SSEServerTransport; console.error("Client Reconnecting? This shouldn't happen; when client has a sessionId, GET /sse should not be called again.", transport.sessionId); } else { // Create and store transport for new session transport = new SSEServerTransport("/message", res); transports.set(transport.sessionId, transport); // Connect server to transport await server.connect(transport); console.error("Client Connected: ", transport.sessionId); // Start notification intervals after client connects startNotificationIntervals(transport.sessionId); // Handle close of connection server.onclose = async () => { console.error("Client Disconnected: ", transport.sessionId); transports.delete(transport.sessionId); await cleanup(); }; } }); app.post("/message", async (req, res) => { const sessionId = (req?.query?.sessionId as string); const transport = transports.get(sessionId); if (transport) { console.error("Client Message from", sessionId); await transport.handlePostMessage(req, res); } else { console.error(`No transport found for sessionId ${sessionId}`) } }); const PORT = process.env.PORT || 3001; app.listen(PORT, () => { console.error(`Server is running on port ${PORT}`); });

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/modelcontextprotocol/knowledge-graph-memory-server'

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