Skip to main content
Glama

Visum Thinker MCP Server

MIT License
monitor-visum-servers.js•6.88 kB
#!/usr/bin/env node /** * Monitor Server Visum - Monitoraggio continuo dei server TCP e processi Visum */ import { spawn } from 'child_process'; console.log('šŸ” MONITOR SERVER VISUM - Avvio monitoraggio continuo...'); console.log('šŸ‘€ Monitoraggio: Porte TCP 79xx, processi Visum, Python, Node'); console.log('ā° Refresh ogni 5 secondi...\n'); let iteration = 0; function checkServers() { iteration++; console.log(`\n${'='.repeat(60)}`); console.log(`šŸ“Š MONITOR #${iteration} - ${new Date().toLocaleTimeString()}`); console.log('='.repeat(60)); // 1. Controllo porte TCP 79xx console.log('\nšŸ”— PORTE TCP 79xx (Server Visum):'); const netstat = spawn('netstat', ['-ano']); let netstatOutput = ''; netstat.stdout.on('data', (data) => { netstatOutput += data.toString(); }); netstat.on('close', () => { const tcpLines = netstatOutput.split('\n').filter(line => line.includes(':79') && line.includes('LISTENING') ); if (tcpLines.length === 0) { console.log(' āŒ Nessun server TCP attivo su porte 79xx'); } else { tcpLines.forEach(line => { const parts = line.trim().split(/\s+/); console.log(` āœ… ${parts[1]} - PID ${parts[4]}`); }); } // 2. Controllo processi Visum setTimeout(() => { console.log('\nšŸ–„ļø PROCESSI VISUM:'); const visumCheck = spawn('tasklist', ['/FI', 'IMAGENAME eq Visum*.exe']); let visumOutput = ''; visumCheck.stdout.on('data', (data) => { visumOutput += data.toString(); }); visumCheck.on('close', () => { const visumLines = visumOutput.split('\n').filter(line => line.includes('Visum') && line.includes('.exe') ); if (visumLines.length === 0) { console.log(' āŒ Nessun processo Visum attivo'); } else { visumLines.forEach(line => { const parts = line.trim().split(/\s+/); console.log(` āœ… ${parts[0]} - PID ${parts[1]} - ${parts[4]}`); }); } // 3. Controllo processi Python setTimeout(() => { console.log('\nšŸ PROCESSI PYTHON:'); const pythonCheck = spawn('tasklist', ['/FI', 'IMAGENAME eq python.exe']); let pythonOutput = ''; pythonCheck.stdout.on('data', (data) => { pythonOutput += data.toString(); }); pythonCheck.on('close', () => { const pythonLines = pythonOutput.split('\n').filter(line => line.includes('python.exe') ); if (pythonLines.length === 0) { console.log(' āŒ Nessun processo Python attivo'); } else { pythonLines.forEach(line => { const parts = line.trim().split(/\s+/); console.log(` āœ… ${parts[0]} - PID ${parts[1]} - ${parts[4]}`); }); } // 4. Controllo processi Node setTimeout(() => { console.log('\nšŸ“¦ PROCESSI NODE:'); const nodeCheck = spawn('tasklist', ['/FI', 'IMAGENAME eq node.exe']); let nodeOutput = ''; nodeCheck.stdout.on('data', (data) => { nodeOutput += data.toString(); }); nodeCheck.on('close', () => { const nodeLines = nodeOutput.split('\n').filter(line => line.includes('node.exe') ); if (nodeLines.length === 0) { console.log(' āŒ Nessun processo Node attivo'); } else { nodeLines.forEach(line => { const parts = line.trim().split(/\s+/); console.log(` āœ… ${parts[0]} - PID ${parts[1]} - ${parts[4]}`); }); } // 5. Controllo registry server setTimeout(() => { console.log('\nšŸ“‹ REGISTRY SERVER:'); try { const fs = require('fs'); if (fs.existsSync('server-registry.json')) { const registry = JSON.parse(fs.readFileSync('server-registry.json', 'utf8')); if (Object.keys(registry).length === 0) { console.log(' šŸ“ Registry vuoto'); } else { Object.entries(registry).forEach(([id, info]) => { console.log(` šŸ“Š ${info.projectName} - Porta ${info.port} - PID ${info.pid} - ${info.status}`); }); } } else { console.log(' šŸ“ Nessun registry trovato'); } } catch (e) { console.log(' āŒ Errore lettura registry:', e.message); } }, 100); }); }, 100); }); }, 100); }); }, 100); }); } // Avvia monitoraggio checkServers(); const monitor = setInterval(checkServers, 5000); // Gestione Ctrl+C process.on('SIGINT', () => { console.log('\n\nšŸ›‘ Monitor terminato dall\'utente'); clearInterval(monitor); process.exit(0); }); console.log('šŸ’” Premi Ctrl+C per terminare il monitoraggio');

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/multiluca2020/visum-thinker-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server