Skip to main content
Glama

Visum Thinker MCP Server

MIT License
claude-open-project.mjs5.11 kB
// Simulazione: Claude apre il progetto Visum import { spawn } from 'child_process'; console.log("🤖 CLAUDE: 'Certo! Apro il progetto Visum per te'"); console.log("═".repeat(60)); const projectPath = "H:\\go\\italferr2025\\Campoleone\\100625_Versione_base_v0.3_sub_ok_priv.ver"; console.log("👤 User richiesta:"); console.log(` Apri il progetto: ${projectPath}`); async function claudeOpenProject() { console.log("\n🧠 Claude pensa: 'Userò l'MCP per aprire questo progetto in Visum...'"); // Simula la richiesta MCP di Claude const child = spawn('node', ['enhanced-visum-mcp.mjs'], { stdio: ['pipe', 'pipe', 'pipe'], cwd: process.cwd() }); let output = ''; let stderr = ''; child.stdout.on('data', (data) => { output += data.toString(); }); child.stderr.on('data', (data) => { stderr += data.toString(); if (data.toString().includes('ready for Claude')) { console.log("✅ MCP Server connesso!"); } }); const request = { jsonrpc: "2.0", id: 1, method: "tools/call", params: { name: "open_project", arguments: { projectPath: projectPath } } }; console.log("📤 Claude invia richiesta MCP: open_project"); console.log(` 📁 Percorso: ${projectPath}`); child.stdin.write(JSON.stringify(request) + '\n'); child.stdin.end(); return new Promise((resolve) => { child.on('close', () => { try { const lines = output.trim().split('\n'); const jsonLine = lines.find(line => line.startsWith('{')); if (jsonLine) { const response = JSON.parse(jsonLine); resolve({ success: true, response }); } else { resolve({ success: false, error: 'No JSON response', output, stderr }); } } catch (error) { resolve({ success: false, error: error.message, output, stderr }); } }); setTimeout(() => { child.kill(); resolve({ success: false, error: 'Timeout dopo 30 secondi' }); }, 30000); // Timeout più lungo per apertura progetto }); } async function simulateClaudeResponse() { console.log("\n🔄 Claude esegue: tool open_project..."); const result = await claudeOpenProject(); console.log("\n📥 Risposta MCP ricevuta!"); if (result.success && result.response.result) { const content = result.response.result.content?.[0]?.text; if (content?.includes("✅")) { console.log("🤖 Claude: '🎉 Perfetto! Ho aperto il progetto con successo!'"); console.log("📊 Dettagli progetto:"); // Estrai informazioni dal contenuto della risposta const fileMatch = content.match(/File:\*\* (.+)/); const statusMatch = content.match(/Status:\*\* (.+)/); const sizeMatch = content.match(/Size:\*\* (.+)/); if (fileMatch) console.log(` 📄 File: ${fileMatch[1]}`); if (statusMatch) console.log(` ✅ Status: ${statusMatch[1]}`); if (sizeMatch) console.log(` 📏 Dimensione: ${sizeMatch[1]}`); console.log("\n🤖 Claude: 'Il progetto Campoleone è ora caricato in Visum!'"); console.log("🎯 Cosa posso fare ora:"); console.log(" 📊 Analizzare la rete di trasporto"); console.log(" 🚌 Verificare le linee del trasporto pubblico"); console.log(" 📈 Eseguire calcoli e simulazioni"); console.log(" 📋 Generare report e statistiche"); } else if (content?.includes("❌")) { console.log("🤖 Claude: '❌ Mi dispiace, ho avuto un problema nell'aprire il progetto'"); console.log("🔍 Possibili cause:"); console.log(" • File non trovato nel percorso specificato"); console.log(" • Visum non è connesso correttamente"); console.log(" • Formato file non supportato"); const errorMatch = content.match(/Error:\*\* (.+)/); if (errorMatch) { console.log(` 💬 Errore: ${errorMatch[1]}`); } } return content?.includes("✅"); } else { console.log("🤖 Claude: '❌ C'è stato un problema di comunicazione con Visum'"); console.log(`💻 Errore tecnico: ${result.error}`); return false; } } async function runSimulation() { const success = await simulateClaudeResponse(); console.log("\n" + "═".repeat(60)); console.log("📋 RIEPILOGO OPERAZIONE"); console.log("═".repeat(60)); if (success) { console.log("🎉 ✅ SUCCESSO!"); console.log("👤 Richiesta: Aprire progetto Visum"); console.log("🤖 Claude: ✅ Progetto aperto correttamente"); console.log("📁 File: Campoleone (Italferr 2025)"); console.log("🔧 MCP Tool: open_project funzionante"); } else { console.log("❌ PROBLEMA"); console.log("👤 Richiesta: Aprire progetto Visum"); console.log("🤖 Claude: ❌ Errore nell'apertura"); console.log("🔧 Necessario debug MCP/Visum"); } return success; } runSimulation().then((success) => { console.log(`\n🏁 Simulazione completata: ${success ? 'SUCCESS' : 'FAILED'}`); }).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