UNPKG

@gebrai/gebrai

Version:

Model Context Protocol server for GeoGebra mathematical visualization

82 lines 3.29 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.toolRegistry = exports.McpServer = void 0; require("dotenv/config"); const server_1 = require("./server"); const logger_1 = __importDefault(require("./utils/logger")); /** * Main entry point for the GeoGebra MCP Tool server */ async function main() { try { // Server configuration const config = { name: 'GeoGebra MCP Tool', version: '1.0.0', description: 'Model Context Protocol server for GeoGebra mathematical visualization', logLevel: process.env['LOG_LEVEL'] || 'info' }; // Create and start the MCP server const server = new server_1.McpServer(config); // Set up graceful shutdown const shutdown = async (signal) => { logger_1.default.info(`Received ${signal}, shutting down gracefully...`); try { await server.stop(); process.exit(0); } catch (error) { logger_1.default.error('Error during shutdown:', error); process.exit(1); } }; // Handle shutdown signals process.on('SIGTERM', () => shutdown('SIGTERM')); process.on('SIGINT', () => shutdown('SIGINT')); // Handle uncaught exceptions process.on('uncaughtException', (error) => { logger_1.default.error('Uncaught exception:', error); process.exit(1); }); process.on('unhandledRejection', (reason, promise) => { logger_1.default.error('Unhandled rejection at:', promise, 'reason:', reason); process.exit(1); }); // Start the server await server.start(); } catch (error) { logger_1.default.error('Failed to start server:', error); process.exit(1); } } // Start the application if (require.main === module) { main().catch((error) => { logger_1.default.error('Application startup failed:', error); process.exit(1); }); } var server_2 = require("./server"); Object.defineProperty(exports, "McpServer", { enumerable: true, get: function () { return server_2.McpServer; } }); var tools_1 = require("./tools"); Object.defineProperty(exports, "toolRegistry", { enumerable: true, get: function () { return tools_1.toolRegistry; } }); __exportStar(require("./types/mcp"), exports); //# sourceMappingURL=index.js.map