Beyond MCP Server
- src
import express from 'express';
import cors from 'cors';
import helmet from 'helmet';
import { createSseTransport } from './mcp/server';
import config from './config';
export async function createExpressServer() {
const app = express();
// Middleware
app.use(helmet());
app.use(cors());
app.use(express.json());
// Health check endpoint
app.get('/health', (req, res) => {
res.json({
status: 'ok',
timestamp: new Date().toISOString(),
version: '1.0.0'
});
});
// SSE endpoint for MCP
app.get('/sse', async (req, res) => {
res.setHeader('Content-Type', 'text/event-stream');
res.setHeader('Cache-Control', 'no-cache');
res.setHeader('Connection', 'keep-alive');
// Create SSE transport
const transport = await createSseTransport(res);
// Handle client disconnect
req.on('close', () => {
console.error('Client disconnected from SSE');
});
});
// Message endpoint for MCP over HTTP
app.post('/messages', async (req, res) => {
// This would need to be implemented with proper session management
// in a production environment
res.status(501).json({ error: 'Not implemented' });
});
return app;
}
export async function startExpressServer() {
const app = await createExpressServer();
const port = config.server.port;
app.listen(port, () => {
console.error(`Beyond MCP Server listening on port ${port}`);
});
}