Skip to main content
Glama
server.ts1.62 kB
/** * Standalone Streamable HTTP Server for MCP Inspector * This creates an actual HTTP server that MCP Inspector can connect to */ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js'; import createStatelessServer from './index.js'; import express from 'express'; import cors from 'cors'; const app = express(); const PORT = parseInt(process.env.PORT || '3000'); // Enable CORS app.use(cors()); app.use(express.json()); // Create the MCP server once (reused across requests, config via environment variables) const server = createStatelessServer({ config: {} }); // Handle MCP requests app.post('/mcp', async (req, res) => { try { // Create a new transport for each request (stateless mode) const transport = new StreamableHTTPServerTransport({ sessionIdGenerator: undefined, enableJsonResponse: true }); res.on('close', () => { transport.close(); }); await server.connect(transport); await transport.handleRequest(req, res, req.body); } catch (error) { console.error('Error handling MCP request:', error); if (!res.headersSent) { res.status(500).json({ jsonrpc: '2.0', error: { code: -32603, message: 'Internal server error' }, id: null }); } } }); // Start HTTP server app.listen(PORT, () => { console.log(`MCP Server running on http://localhost:${PORT}/mcp`); console.log(`Middleware URL: ${process.env.MIDDLEWARE_URL || 'http://localhost:3000'}`); }).on('error', (error) => { console.error('Server error:', error); process.exit(1); });

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/hithereiamaliff/mcp-malaysiatransit'

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