@jorgeceballos/mcp-server-oci
Version:
Model Context Protocol server for Oracle Cloud Infrastructure
79 lines (78 loc) • 3.21 kB
JavaScript
;
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);