UNPKG

@todo-for-ai/mcp

Version:

Model Context Protocol server for Todo for AI task management system with Streamable HTTP transport. Provides AI assistants with access to task management, project information, and feedback submission capabilities through modern HTTP-based communication.

75 lines 2.6 kB
import { TodoMcpServer } from './server.js'; import { logger } from './logger.js'; import { CONFIG } from './config.js'; import { setupGlobalErrorHandlers } from './error-handler.js'; /** * Main entry point for the Todo for AI MCP Server */ async function main() { const startTime = Date.now(); const processId = process.pid; console.log('[MAIN] Todo for AI MCP Server starting...', { processId, startTime: new Date(startTime).toISOString(), nodeVersion: process.version, platform: process.platform, arch: process.arch, cwd: process.cwd(), argv: process.argv }); // Setup global error handlers console.log('[MAIN] Setting up global error handlers...'); setupGlobalErrorHandlers(); console.log('[MAIN] Global error handlers setup complete'); logger.info('[MAIN] Initializing Todo for AI MCP Server...', { processId, startupTime: Date.now() - startTime + 'ms' }); logger.debug('[MAIN] Configuration details:', { apiBaseUrl: CONFIG.apiBaseUrl, apiTimeout: CONFIG.apiTimeout, logLevel: CONFIG.logLevel, hasApiToken: !!CONFIG.apiToken, processId, memoryUsage: process.memoryUsage() }); logger.debug('[MAIN] Creating TodoMcpServer instance...'); const server = new TodoMcpServer(); logger.debug('[MAIN] Starting server...'); await server.run(); const totalStartupTime = Date.now() - startTime; logger.info('[MAIN] Todo for AI MCP Server startup complete', { processId, totalStartupTime: totalStartupTime + 'ms', memoryUsage: process.memoryUsage() }); } // Handle process signals process.on('SIGINT', () => { logger.info('[MAIN] Received SIGINT, shutting down gracefully...', { processId: process.pid, uptime: process.uptime(), memoryUsage: process.memoryUsage() }); process.exit(0); }); process.on('SIGTERM', () => { logger.info('[MAIN] Received SIGTERM, shutting down gracefully...', { processId: process.pid, uptime: process.uptime(), memoryUsage: process.memoryUsage() }); process.exit(0); }); // Start the server main().catch((error) => { logger.error('[MAIN] Fatal error during startup:', { error: error instanceof Error ? error.message : String(error), stack: error instanceof Error ? error.stack : undefined, processId: process.pid, uptime: process.uptime(), memoryUsage: process.memoryUsage() }); process.exit(1); }); //# sourceMappingURL=index.js.map