Skip to main content
Glama

Visum Thinker MCP Server

MIT License
test-json-communication.mjsโ€ข5.94 kB
// DIAGNOSI: Test della comunicazione JSON con il processo Python persistente import { PersistentVisumController } from "./build/persistent-visum-controller.js"; console.log("๐Ÿ” DIAGNOSI: Comunicazione JSON Process Python"); console.log("=".repeat(60)); const controller = PersistentVisumController.getInstance(); async function diagnosisTest() { try { console.log("\n1๏ธโƒฃ Avviando processo persistente..."); const startResult = await controller.startPersistentVisumProcess(); if (!startResult.success) { console.error("โŒ Impossibile avviare processo:", startResult.message); return; } console.log(`โœ… Processo avviato con ${startResult.nodes} nodi`); console.log("\n2๏ธโƒฃ Test comunicazione JSON semplice..."); // Test 1: Network Stats (รจ riuscito prima) console.log(" ๐Ÿ“Š Test Network Stats..."); const statsStart = Date.now(); const statsResult = await controller.getNetworkStats(); const statsTime = Date.now() - statsStart; console.log(` Risultato: ${statsResult.success ? 'โœ…' : 'โŒ'} (${statsTime}ms)`); if (statsResult.success) { console.log(` Nodi: ${statsResult.result?.nodes}`); console.log(` Persistente: ${statsResult.result?.persistent}`); } else { console.log(` Errore: ${statsResult.error}`); } // Test 2: Comando semplice personalizzato console.log("\n ๐Ÿงช Test comando semplice..."); const simpleStart = Date.now(); const simpleResult = await controller.executeCustomCode(` # Test semplice per diagnosi result = { 'test': 'simple', 'success': True, 'nodes': visum.Net.Nodes.Count, 'timestamp': time.time() } `, "Test semplice"); const simpleTime = Date.now() - simpleStart; console.log(` Risultato: ${simpleResult.success ? 'โœ…' : 'โŒ'} (${simpleTime}ms)`); if (simpleResult.success) { console.log(` Test: ${simpleResult.result?.test}`); console.log(` Nodi: ${simpleResult.result?.nodes}`); } else { console.log(` Errore: ${simpleResult.error}`); } // Test 3: Comando che potrebbe causare problemi console.log("\n โš ๏ธ Test comando complesso..."); const complexStart = Date.now(); const complexResult = await controller.executeCustomCode(` # Test complesso - potrebbe causare timeout try: # Operazione che potrebbe bloccarsi nodes = visum.Net.Nodes count = nodes.Count # Test iterazione semplice result = { 'test': 'complex', 'success': True, 'totalNodes': count, 'sample': [], # Non facciamo iterazioni complesse 'method': 'count_only' } except Exception as e: result = { 'test': 'complex', 'success': False, 'error': str(e) } `, "Test complesso"); const complexTime = Date.now() - complexStart; console.log(` Risultato: ${complexResult.success ? 'โœ…' : 'โŒ'} (${complexTime}ms)`); if (complexResult.success) { console.log(` Test: ${complexResult.result?.test}`); console.log(` Metodo: ${complexResult.result?.method}`); } else { console.log(` Errore: ${complexResult.error}`); } // Test 4: Health check console.log("\n ๐Ÿฉบ Test health check..."); const healthStart = Date.now(); const healthResult = await controller.checkInstanceHealth(); const healthTime = Date.now() - healthStart; console.log(` Risultato: ${healthResult.success ? 'โœ…' : 'โŒ'} (${healthTime}ms)`); if (healthResult.success) { console.log(` Richieste: ${healthResult.result?.requestCount}`); console.log(` Progetto: ${healthResult.result?.projectLoaded ? 'SรŒ' : 'NO'}`); } else { console.log(` Errore: ${healthResult.error}`); } console.log("\n3๏ธโƒฃ Analisi problemi comunicazione:"); console.log(" " + "=".repeat(50)); const tests = [ { name: "Network Stats", result: statsResult, time: statsTime }, { name: "Comando Semplice", result: simpleResult, time: simpleTime }, { name: "Comando Complesso", result: complexResult, time: complexTime }, { name: "Health Check", result: healthResult, time: healthTime } ]; let successCount = 0; let timeoutCount = 0; tests.forEach((test, i) => { const status = test.result.success ? 'โœ…' : 'โŒ'; const timeStatus = test.time < 1000 ? 'โšก' : test.time > 30000 ? '๐ŸŒ' : 'โณ'; console.log(` ${i+1}. ${test.name}: ${status} ${timeStatus} (${test.time}ms)`); if (test.result.success) successCount++; if (test.time > 30000) timeoutCount++; if (!test.result.success && test.result.error?.includes('timeout')) { console.log(` ๐Ÿšจ TIMEOUT: ${test.result.error}`); } }); console.log(`\n ๐Ÿ“Š Successi: ${successCount}/${tests.length}`); console.log(` โฐ Timeout: ${timeoutCount}/${tests.length}`); if (timeoutCount > 0) { console.log("\n๐Ÿšจ PROBLEMA IDENTIFICATO:"); console.log(" - Comunicazione JSON si blocca dopo primo comando"); console.log(" - Possibile problema nel parsing delle risposte"); console.log(" - Il processo Python non risponde correttamente"); } else if (successCount === tests.length) { console.log("\nโœ… COMUNICAZIONE FUNZIONANTE:"); console.log(" - Tutti i test sono passati"); console.log(" - La comunicazione JSON รจ robusta"); } await controller.shutdown(); console.log("\n๐Ÿ”š Processo terminato per diagnosi"); } catch (error) { console.error("\n๐Ÿ’€ ERRORE CRITICO nella diagnosi:"); console.error(error); } } // Esegui diagnosi diagnosisTest().then(() => { console.log("\n๐Ÿ” Diagnosi completata"); process.exit(0); }).catch(error => { console.error("๐Ÿ’€ Diagnosi fallita:", error); process.exit(1); });

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