UNPKG

@jorgeceballos/mcp-server-oci

Version:

Model Context Protocol server for Oracle Cloud Infrastructure

79 lines (78 loc) 3.21 kB
#!/usr/bin/env node "use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const commander_1 = require("commander"); const server_1 = require("./server/server"); const dotenv_1 = __importDefault(require("dotenv")); const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); dotenv_1.default.config(); // Configuración para el modo Claude Desktop const isCloudeDesktop = process.env.CLAUDE_DESKTOP === 'true'; const logFile = path_1.default.join(process.cwd(), 'claude-desktop-server.log'); // Si estamos en modo Claude Desktop, redirigir los logs a un archivo if (isCloudeDesktop) { // Crear o limpiar el archivo de log try { fs_1.default.writeFileSync(logFile, `--- Inicio del servidor MCP-OCI (${new Date().toISOString()}) ---\n`); } catch (err) { // Si no podemos escribir en el archivo, continuamos de todas formas } // Guardar las funciones originales const originalConsoleLog = console.log; const originalConsoleError = console.error; // Redefinir console.log console.log = function () { const args = Array.from(arguments); const message = args.map(arg => typeof arg === 'object' ? JSON.stringify(arg, null, 2) : String(arg)).join(' '); try { fs_1.default.appendFileSync(logFile, `[LOG] ${message}\n`); } catch (err) { // No hacemos nada si falla la escritura en el log } }; // Redefinir console.error console.error = function () { const args = Array.from(arguments); const message = args.map(arg => typeof arg === 'object' ? JSON.stringify(arg, null, 2) : String(arg)).join(' '); try { fs_1.default.appendFileSync(logFile, `[ERROR] ${message}\n`); } catch (err) { // No hacemos nada si falla la escritura en el log } }; } const program = new commander_1.Command(); program .name('mcp-server-oci') .description('Model Context Protocol server for Oracle Cloud Infrastructure') .version('1.0.0') .option('-p, --port <port>', 'Port to run the server on', '3000') .option('--profile <profile>', 'OCI profile to use', 'DEFAULT') .option('--claude-desktop', 'Run in Claude Desktop mode', false) .action(async (options) => { try { const port = parseInt(options.port, 10); const profile = options.profile; // Si se especificó --claude-desktop en la línea de comandos, activar el modo Claude Desktop if (options.claudeDesktop) { process.env.CLAUDE_DESKTOP = 'true'; } // Solo mostrar estos mensajes si no estamos en modo Claude Desktop if (!isCloudeDesktop && !options.claudeDesktop) { console.log(`Starting MCP OCI server on port ${port} using profile "${profile}"...`); } await (0, server_1.startServer)(port, profile); } catch (error) { console.error('Error starting server:', error); process.exit(1); } }); program.parse(process.argv);