import dotenv from 'dotenv';
dotenv.config();
import express from 'express';
import cors from 'cors';
import routes from './routes';
import { mcpClient } from './mcpClient';
const app = express();
const PORT = process.env.PORT || 3000;
app.use(cors());
app.use(express.json());
app.use('/', routes);
async function startServer() {
try {
// Initialize MCP client connection
console.log('Connecting to Algolia MCP server...');
await mcpClient.connect();
console.log('MCP client connected successfully');
app.listen(PORT, () => {
console.log(`Server running on http://localhost:${PORT}`);
});
} catch (error) {
console.error('Failed to start server:', error);
process.exit(1);
}
}
// Handle graceful shutdown
process.on('SIGINT', async () => {
console.log('Shutting down server...');
await mcpClient.disconnect();
process.exit(0);
});
process.on('SIGTERM', async () => {
console.log('Shutting down server...');
await mcpClient.disconnect();
process.exit(0);
});
startServer();