index.ts•1.24 kB
import express from 'express';
import { config } from './config';
import { mcpRoutes } from './routes/mcp.routes';
import { authenticateMCP } from './middleware/auth.middleware';
import { falkorDBService } from './services/falkordb.service';
// Initialize Express app
const app = express();
// Middleware
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
// Apply authentication to MCP routes
app.use('/api/mcp', authenticateMCP, mcpRoutes);
// Basic routes
app.get('/', (req, res) => {
res.json({
name: 'FalkorDB MCP Server',
version: '1.0.0',
status: 'running',
});
});
// Start server
const PORT = config.server.port;
app.listen(PORT, () => {
console.log(`FalkorDB MCP Server listening on port ${PORT}`);
console.log(`Environment: ${config.server.nodeEnv}`);
});
// Handle graceful shutdown
process.on('SIGTERM', async () => {
console.log('SIGTERM received. Shutting down gracefully...');
// Close database connections
await falkorDBService.close();
process.exit(0);
});
process.on('SIGINT', async () => {
console.log('SIGINT received. Shutting down gracefully...');
// Close database connections
await falkorDBService.close();
process.exit(0);
});
export default app;