@gebrai/gebrai
Version:
Model Context Protocol server for GeoGebra mathematical visualization
82 lines • 3.29 kB
JavaScript
;
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