Skip to main content
Glama
index.ts2.81 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 { setupToolsConsolidated as setupTools } from './tools/index-v6-consolidated.js'; import { setupResources } from './tools/resources.js'; import { connectToMongoDB, closeMongoDBConnection } from './db/connection.js'; import { logger } from './utils/logger.js'; import { readFileSync } from 'fs'; import { fileURLToPath } from 'url'; import { dirname, join } from 'path'; // Load environment variables (check .env.local first, then .env) config({ path: '.env.local' }); config({ path: '.env' }); // Get version from package.json const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); const packageJson = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf-8')); const SERVER_NAME = 'memory-engineering-mcp'; const SERVER_VERSION = packageJson.version; async function main(): Promise<void> { // Create server instance const server = new Server( { name: SERVER_NAME, version: SERVER_VERSION, }, { capabilities: { tools: {}, resources: { subscribe: false, listChanged: false, }, }, }, ); // Connect to MongoDB try { await connectToMongoDB(); logger.info('🌐 MONGODB NEURAL LINK ESTABLISHED - Memory system online!'); } catch (error) { logger.error('💀 MONGODB CONNECTION CATASTROPHE - Memory system OFFLINE!', error); process.exit(1); } // Set up consolidated tools (6 instead of 10) setupTools(server); // Set up resources setupResources(server); // Handle graceful shutdown process.on('SIGINT', async () => { logger.info('🛑 GRACEFUL SHUTDOWN INITIATED - Saving all memories...'); await closeMongoDBConnection(); process.exit(0); }); process.on('SIGTERM', async () => { logger.info('🛑 GRACEFUL SHUTDOWN INITIATED - Saving all memories...'); 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} ACTIVATED - AI Memory System ONLINE!`); } // Handle uncaught errors process.on('uncaughtException', (error) => { logger.error('💀 UNCAUGHT EXCEPTION - System crash imminent!', error); process.exit(1); }); process.on('unhandledRejection', (error) => { logger.error('💥 UNHANDLED REJECTION - Promise explosion!', error); process.exit(1); }); // Start the server main().catch((error) => { logger.error('🔴 SERVER STARTUP CATASTROPHE - Memory system FAILED!', 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/romiluz13/memory-engineering-mcp'

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