UNPKG

mongodb-memory-bank-mcp-v2

Version:

MongoDB-powered Memory Bank MCP server with hybrid search capabilities for AI assistants

64 lines 2 kB
#!/usr/bin/env node import { Server } from '@modelcontextprotocol/sdk/server/index.js'; import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import { config } from 'dotenv'; import { setupTools } from './tools/index.js'; import { connectToMongoDB, closeMongoDBConnection } from './db/connection.js'; import { logger } from './utils/logger.js'; // Load environment variables config({ path: '.env.local' }); const SERVER_NAME = 'memory-bank-mcp'; const SERVER_VERSION = '0.1.0'; async function main() { // Create server instance const server = new Server({ name: SERVER_NAME, version: SERVER_VERSION, }, { capabilities: { tools: {}, resources: {}, }, }); // Connect to MongoDB try { await connectToMongoDB(); logger.info('Connected to MongoDB'); } catch (error) { logger.error('Failed to connect to MongoDB:', error); process.exit(1); } // Set up tools setupTools(server); // Handle graceful shutdown process.on('SIGINT', async () => { logger.info('Shutting down server...'); await closeMongoDBConnection(); process.exit(0); }); process.on('SIGTERM', async () => { logger.info('Shutting down server...'); await closeMongoDBConnection(); process.exit(0); }); // Create transport and start server const transport = new StdioServerTransport(); await server.connect(transport); logger.info(`${SERVER_NAME} v${SERVER_VERSION} started`); } // Handle uncaught errors process.on('uncaughtException', (error) => { logger.error('Uncaught exception:', error); process.exit(1); }); process.on('unhandledRejection', (error) => { logger.error('Unhandled rejection:', error); process.exit(1); }); // Start the server main().catch((error) => { logger.error('Server failed to start:', error); process.exit(1); }); //# sourceMappingURL=index.js.map