Skip to main content
Glama

Visum Thinker MCP Server

MIT License
test-visible-launch.mjsโ€ข7.22 kB
// Test diretto del lancio Visum visibile import { spawn } from 'child_process'; console.log("๐Ÿš€ TEST LANCIO VISUM VISIBILE"); console.log("โ•".repeat(35)); async function testVisibleLaunch() { console.log("๐Ÿงช Eseguo il comando PowerShell per lanciare Visum visibile...\n"); const script = ` try { # Check if Visum is already running $visumProcess = Get-Process -Name "Visum250" -ErrorAction SilentlyContinue if ($visumProcess) { Write-Host "Visum giร  in esecuzione, terminando prima..." $visumProcess | Stop-Process -Force Start-Sleep -Seconds 2 } # Start Visum visibly Write-Host "Starting Visum visibly..." $visumPath = "H:\\Program Files\\PTV Vision\\PTV Visum 2025\\Exe\\Visum250.exe" if (Test-Path $visumPath) { # Launch Visum with the specific project file $projectFile = "H:\\go\\italferr2025\\Campoleone\\100625_Versione_base_v0.3_sub_ok_priv.ver" if (Test-Path $projectFile) { Write-Host "Launching Visum with project: $projectFile" $process = Start-Process -FilePath $visumPath -ArgumentList $projectFile -WindowStyle Normal -PassThru Write-Host "Process started with ID: $($process.Id)" Write-Host "Project loaded: $projectFile" } else { Write-Host "Launching Visum without project (file not found)" $process = Start-Process -FilePath $visumPath -WindowStyle Normal -PassThru Write-Host "Process started with ID: $($process.Id)" } Start-Sleep -Seconds 5 # Wait longer for project loading @{ success = $true message = "Visum started visibly with project" processId = $process.Id windowStyle = "Normal" visible = $true projectLoaded = $(Test-Path $projectFile) } | ConvertTo-Json } else { @{ success = $false error = "Visum executable not found at expected path" } | ConvertTo-Json } } catch { @{ 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:", 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); resolve({ success: false, error: 'JSON parse error' }); } }); setTimeout(() => { powershell.kill(); resolve({ success: false, error: 'Timeout' }); }, 15000); }); } async function verifyVisum() { console.log("\n๐Ÿ” Verifica che Visum sia effettivamente lanciato..."); const checkScript = ` # Check process $process = Get-Process -Name "Visum250" -ErrorAction SilentlyContinue if ($process) { Write-Host "Process found: $($process.ProcessName) ID:$($process.Id)" Write-Host "Main Window: $($process.MainWindowTitle)" # Try to connect via COM to get actual network stats try { Write-Host "Attempting COM connection..." $visum = [System.Runtime.InteropServices.Marshal]::GetActiveObject("Visum.Visum") if ($visum -and $visum.Net) { $nodeCount = $visum.Net.Nodes.Count $linkCount = $visum.Net.Links.Count $zoneCount = $visum.Net.Zones.Count Write-Host "โœ… Network Statistics:" Write-Host " Nodes: $nodeCount" Write-Host " Links: $linkCount" Write-Host " Zones: $zoneCount" @{ processFound = $true processId = $process.Id mainWindow = $process.MainWindowTitle comConnected = $true networkStats = @{ nodes = $nodeCount links = $linkCount zones = $zoneCount } } | ConvertTo-Json -Depth 3 } else { Write-Host "โŒ COM connected but no network data" @{ processFound = $true processId = $process.Id mainWindow = $process.MainWindowTitle comConnected = $false error = "No network data available" } | ConvertTo-Json } } catch { Write-Host "โŒ COM connection failed: $($_.Exception.Message)" @{ processFound = $true processId = $process.Id mainWindow = $process.MainWindowTitle comConnected = $false comError = $_.Exception.Message } | ConvertTo-Json } } else { Write-Host "โŒ No Visum process found" @{ processFound = $false } | ConvertTo-Json } `; const powershell = spawn('powershell', ['-ExecutionPolicy', 'Bypass', '-Command', checkScript]); let output = ''; powershell.stdout.on('data', (data) => { const text = data.toString(); output += text; console.log("๐Ÿ“ค", text.trim()); }); return new Promise((resolve) => { powershell.on('close', () => { try { const jsonStart = output.indexOf('{'); if (jsonStart !== -1) { const jsonStr = output.substring(jsonStart); const result = JSON.parse(jsonStr); console.log("โœ… Risultato verifica:", result); resolve(result); } else { console.log("โŒ Nessun JSON trovato nell'output"); resolve(null); } } catch (e) { console.log("โš ๏ธ Errore parsing JSON:", e.message); resolve(null); } }); }); } async function runTest() { const result = await testVisibleLaunch(); console.log("\nโณ Attendo che Visum si carichi completamente..."); await new Promise(r => setTimeout(r, 5000)); await verifyVisum(); console.log("\n" + "โ•".repeat(35)); console.log("๐Ÿ“Š RISULTATO FINALE"); console.log("โ•".repeat(35)); if (result.success) { console.log("๐ŸŽ‰ โœ… SUCCESSO!"); console.log(` Process ID: ${result.processId}`); console.log(` Visibile: ${result.visible}`); console.log(` Window Style: ${result.windowStyle}`); console.log("\n๐Ÿ“ฑ Ora Visum dovrebbe essere visibile sullo schermo!"); } else { console.log("โŒ FALLIMENTO"); console.log(` Errore: ${result.error}`); } } runTest().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