start-mcp.js•1.82 kB
#!/usr/bin/env node
/**
* 🏕️ TreePod Financial MCP - Script de inicio para Claude Desktop
* Este script asegura que el servidor MCP se inicie correctamente
* y sea compatible con Claude Desktop
*/
import { spawn } from 'child_process';
import { fileURLToPath } from 'url';
import { dirname, join } from 'path';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
// Configuración para Claude Desktop MCP
process.env.NODE_ENV = 'production';
// Ruta al servidor principal
const serverPath = join(__dirname, 'server.js');
console.error('🏕️ Iniciando TreePod Financial MCP para Claude Desktop...');
console.error(`📁 Servidor: ${serverPath}`);
console.error(`🔧 Modo: ${process.env.NODE_ENV}`);
// Iniciar el servidor con configuración específica para MCP
const server = spawn('node', [serverPath], {
stdio: ['pipe', 'pipe', 'inherit'], // stdin, stdout, stderr
env: {
...process.env,
MCP_SERVER: 'true',
TREEPOD_MCP_MODE: 'claude_desktop'
}
});
// Manejar la entrada estándar (requerido por MCP)
process.stdin.pipe(server.stdin);
server.stdout.pipe(process.stdout);
// Manejar errores
server.on('error', (error) => {
console.error('❌ Error iniciando servidor MCP:', error.message);
process.exit(1);
});
server.on('exit', (code, signal) => {
if (code !== 0) {
console.error(`❌ Servidor MCP terminó con código: ${code}, señal: ${signal}`);
process.exit(code || 1);
}
});
// Manejar señales del sistema
process.on('SIGINT', () => {
console.error('🛑 Deteniendo TreePod Financial MCP...');
server.kill('SIGINT');
});
process.on('SIGTERM', () => {
console.error('🛑 Terminando TreePod Financial MCP...');
server.kill('SIGTERM');
});
console.error('✅ TreePod Financial MCP iniciado correctamente');