UNPKG

falkordb-mcpserver

Version:

Model Context Protocol server for FalkorDB graph databases - enables AI assistants to query and manage graph data using natural language

47 lines (46 loc) 1.52 kB
import { AppError } from './AppError.js'; import { logger } from '../services/logger.service.js'; /** * Centralized error handler following Node.js best practices for MCP servers * Handles logging, monitoring, and determining crash behavior */ export class ErrorHandler { async handleError(err) { await this.logError(err); await this.determineIfOperationalError(err); } isTrustedError(error) { if (error instanceof AppError) { return error.isOperational; } return false; } async logError(err) { await logger.error('Unhandled error occurred', err, { timestamp: new Date().toISOString(), errorType: err.constructor.name }); } async determineIfOperationalError(err) { if (this.isTrustedError(err)) { await logger.info('Operational error handled gracefully', { errorName: err.name, errorMessage: err.message }); } else { await logger.error('Programmer error detected - may require process restart', err, { recommendation: 'Review code for bugs', severity: 'critical' }); } } crashIfUntrustedError(error) { if (!this.isTrustedError(error)) { logger.errorSync('Crashing process due to untrusted error', error); process.exit(1); } } } // Export singleton instance export const errorHandler = new ErrorHandler();