Skip to main content
Glama

Visum Thinker MCP Server

MIT License
test-project-analysis.mjsโ€ข7.15 kB
// Test analisi progetto Visum giร  caricato import { spawn } from 'child_process'; console.log("๐Ÿ” ANALISI PROGETTO VISUM CARICATO"); console.log("โ•".repeat(40)); async function analyzeLoadedProject() { console.log("๐Ÿ“Š Analizzando il progetto Campoleone giร  caricato...\n"); const script = ` try { # Check if Visum is running $visumProcess = Get-Process -Name "Visum250" -ErrorAction SilentlyContinue if (!$visumProcess) { Write-Host "โŒ Visum non รจ in esecuzione" @{ success = $false; error = "Visum not running" } | ConvertTo-Json exit } Write-Host "โœ… Visum processo trovato: ID $($visumProcess.Id)" Write-Host "๐Ÿ“ Finestra: $($visumProcess.MainWindowTitle)" Write-Host "" # Method 1: Try New-Object approach (create new instance and try to connect) Write-Host "๐Ÿ”„ Metodo 1: Creazione nuova istanza COM..." try { $visum = New-Object -ComObject "Visum.Visum" Write-Host "โœ… Oggetto COM creato" # Try to connect to existing session $visum.LoadVersion("2024") # Try different version Write-Host "โœ… Versione caricata" # Check if we have network data if ($visum.Net) { $nodeCount = $visum.Net.Nodes.Count $linkCount = $visum.Net.Links.Count $zoneCount = $visum.Net.Zones.Count Write-Host "๐Ÿ“Š Network trovata!" Write-Host " Nodi: $nodeCount" Write-Host " Link: $linkCount" Write-Host " Zone: $zoneCount" if ($nodeCount -gt 0) { @{ success = $true method = "New-Object" networkStats = @{ nodes = $nodeCount links = $linkCount zones = $zoneCount } message = "Network data found via New-Object" } | ConvertTo-Json -Depth 3 exit } } Write-Host "โš ๏ธ Network vuota con New-Object" } catch { Write-Host "โŒ New-Object fallito: $($_.Exception.Message)" } # Method 2: Try file-based analysis Write-Host "" Write-Host "๐Ÿ”„ Metodo 2: Analisi diretta file progetto..." $projectFile = "H:\\go\\italferr2025\\Campoleone\\100625_Versione_base_v0.3_sub_ok_priv.ver" if (Test-Path $projectFile) { $fileInfo = Get-Item $projectFile Write-Host "โœ… File progetto trovato:" Write-Host " Path: $projectFile" Write-Host " Size: $([math]::Round($fileInfo.Length / 1MB, 2)) MB" Write-Host " Modified: $($fileInfo.LastWriteTime)" # Try to read some basic info from the file $fileSize = $fileInfo.Length @{ success = $true method = "File-based" projectFile = $projectFile fileSize = $fileSize fileSizeMB = [math]::Round($fileSize / 1MB, 2) lastModified = $fileInfo.LastWriteTime.ToString() visumRunning = $true processId = $visumProcess.Id windowTitle = $visumProcess.MainWindowTitle message = "Project file analyzed, Visum process confirmed" } | ConvertTo-Json -Depth 3 } else { Write-Host "โŒ File progetto non trovato: $projectFile" @{ success = $false error = "Project file not found" processId = $visumProcess.Id windowTitle = $visumProcess.MainWindowTitle } | ConvertTo-Json } } catch { Write-Host "โŒ Errore generale: $($_.Exception.Message)" @{ success = $false error = $_.Exception.Message } | ConvertTo-Json } `; const powershell = spawn('powershell', ['-ExecutionPolicy', 'Bypass', '-Command', script]); let output = ''; let stderr = ''; powershell.stdout.on('data', (data) => { const text = data.toString(); output += text; console.log("๐Ÿ“ค", text.trim()); }); powershell.stderr.on('data', (data) => { const text = data.toString(); stderr += text; console.log("โš ๏ธ", text.trim()); }); return new Promise((resolve) => { powershell.on('close', (code) => { console.log(`\n๐Ÿ PowerShell chiuso con codice: ${code}`); try { const jsonStart = output.indexOf('{'); if (jsonStart !== -1) { const jsonStr = output.substring(jsonStart); const result = JSON.parse(jsonStr); console.log("โœ… Risultato analisi:", result); resolve(result); } else { console.log("โŒ Nessun JSON trovato nell'output"); resolve({ success: false, error: 'No JSON found' }); } } catch (e) { console.log("โŒ Errore parsing JSON:", e.message); console.log("Raw output:", output); resolve({ success: false, error: 'JSON parse error' }); } }); setTimeout(() => { powershell.kill(); resolve({ success: false, error: 'Timeout' }); }, 20000); }); } async function suggestSolutions() { console.log("\n๐Ÿ’ก SOLUZIONI ALTERNATIVE"); console.log("โ•".repeat(25)); console.log("๐Ÿ”ง Opzioni per analisi network:"); console.log(" 1. โœ… File-based: Analisi diretta file .ver"); console.log(" 2. ๐Ÿ”„ Script Python: Usare VisumPy se disponibile"); console.log(" 3. ๐Ÿ–ฅ๏ธ Manual: Interfaccia Visum per export dati"); console.log(" 4. ๐Ÿ“‹ Registry: Controllare COM registration"); console.log(" 5. ๐Ÿš€ Alternative: Usare file di export CSV/XML"); console.log("\n๐ŸŽฏ RACCOMANDAZIONE:"); console.log(" Dato che Visum รจ visibile e il progetto รจ caricato,"); console.log(" possiamo usare l'interfaccia Visum per esportare"); console.log(" i dati di rete in formato analizzabile."); } async function runAnalysis() { const result = await analyzeLoadedProject(); console.log("\n" + "โ•".repeat(40)); console.log("๐Ÿ“Š RISULTATO ANALISI"); console.log("โ•".repeat(40)); if (result.success) { console.log("๐ŸŽ‰ โœ… ANALISI COMPLETATA!"); console.log(` Metodo: ${result.method}`); if (result.networkStats) { console.log("๐Ÿ“Š Statistiche Network:"); console.log(` โ€ข Nodi: ${result.networkStats.nodes}`); console.log(` โ€ข Link: ${result.networkStats.links}`); console.log(` โ€ข Zone: ${result.networkStats.zones}`); } if (result.projectFile) { console.log("๐Ÿ“ File Progetto:"); console.log(` โ€ข Path: ${result.projectFile}`); console.log(` โ€ข Size: ${result.fileSizeMB} MB`); console.log(` โ€ข Modified: ${result.lastModified}`); } console.log("๐Ÿ–ฅ๏ธ Visum Status:"); console.log(` โ€ข Process ID: ${result.processId}`); console.log(` โ€ข Window: ${result.windowTitle || 'In caricamento...'}`); } else { console.log("โŒ ANALISI FALLITA"); console.log(` Errore: ${result.error}`); } await suggestSolutions(); } runAnalysis().catch(console.error);

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