Skip to main content
Glama

MCP Server Chart

Official
sse.ts1.89 kB
import type { Server } from "@modelcontextprotocol/sdk/server/index.js"; import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js"; import express, { type Request, type Response } from "express"; import { logger } from "../utils/logger"; export const startSSEMcpServer = async ( server: Server, endpoint = "/sse", port = 1122, host = "localhost", ): Promise<void> => { const app = express(); app.use(express.json()); const transports: Record<string, SSEServerTransport> = {}; app.get(endpoint, async (req: Request, res: Response) => { const transport = new SSEServerTransport("/messages", res); transports[transport.sessionId] = transport; transport.onclose = () => { delete transports[transport.sessionId]; logger.info(`SSE Server disconnected: sessionId=${transport.sessionId}`); }; await server.connect(transport); logger.info(`SSE Server connected: sessionId=${transport.sessionId}`); }); app.post("/messages", async (req: Request, res: Response) => { const sessionId = req.query.sessionId as string; if (!sessionId) { logger.warn("SSE Server sessionId parameter is missing"); return res.status(400).send("Missing sessionId parameter"); } const transport = transports[sessionId]; if (!transport) { logger.warn(`SSE Server session not found: sessionId=${sessionId}`); return res.status(404).send("Session not found"); } try { logger.info(`SSE Server handling message: sessionId=${sessionId}`); await transport.handlePostMessage(req, res, req.body); } catch (e) { logger.error("SSE Server error handling message", e); if (!res.headersSent) res.status(500).send("Error handling request"); } }); app.listen(port, host, () => { logger.success(`SSE Server listening on http://${host}:${port}${endpoint}`); }); };

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/antvis/mcp-server-chart'

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