Skip to main content
Glama

Visum Thinker MCP Server

MIT License
analyze-car-tsys.jsβ€’4.09 kB
import net from 'net'; const pythonCode = ` import sys print("ANALISI TSys CAR E SEGMENTS", file=sys.stderr) print("=" * 60, file=sys.stderr) try: # Cerca TSys CAR tsys_car = visum.Net.TSystems.ItemByKey("CAR") print(f"\\nTSys CAR trovato!", file=sys.stderr) # Stampa tutti gli attributi disponibili print(f"\\nAttributi TSys CAR:", file=sys.stderr) try: print(f" CODE: {tsys_car.AttValue('CODE')}", file=sys.stderr) except: pass try: print(f" ISPRT: {tsys_car.AttValue('ISPRT')}", file=sys.stderr) except Exception as e: print(f" ISPRT: non disponibile ({e})", file=sys.stderr) # Ora cerca segments collegati a CAR print(f"\\n{'=' * 60}", file=sys.stderr) print("Ricerca segments con TSys=CAR:\\n", file=sys.stderr) car_segments = [] all_segments = visum.Net.DemandSegments.GetAll for seg in all_segments: seg_code = seg.AttValue("CODE") # Metodo 1: via proprietΓ  TSys try: tsys_obj = seg.TSys if tsys_obj: tsys_code = tsys_obj.AttValue("CODE") if tsys_code == "CAR": car_segments.append(seg_code) print(f" βœ“ {seg_code}", file=sys.stderr) except Exception as e: # Metodo 2: via TSYSCODE attribute try: tsys_code = seg.AttValue("TSYSCODE") if tsys_code == "CAR": car_segments.append(seg_code) print(f" βœ“ {seg_code} (via TSYSCODE)", file=sys.stderr) except: pass dsegset = ",".join(car_segments) print(f"\\n{'=' * 60}", file=sys.stderr) print(f"TOTALE: {len(car_segments)} segments per TSys CAR", file=sys.stderr) result = { "status": "ok", "tsys": "CAR", "segments": car_segments, "dsegset": dsegset, "count": len(car_segments) } except Exception as e: print(f"ERRORE: {e}", file=sys.stderr) import traceback traceback.print_exc(file=sys.stderr) result = { "status": "error", "error": str(e), "segments": [], "dsegset": "", "count": 0 } `; const client = new net.Socket(); let welcomeReceived = false; console.log('πŸš— ANALISI TSys CAR'); console.log('='.repeat(60)); client.connect(7905, '::1', () => { console.log('βœ… Connesso\n'); }); client.on('data', (data) => { const response = JSON.parse(data.toString()); if (!welcomeReceived && response.type === 'project_welcome') { welcomeReceived = true; const request = { type: 'query', requestId: Date.now(), description: 'Analizza TSys CAR', code: pythonCode }; client.write(JSON.stringify(request) + '\n'); } else { if (response.success) { const res = response.result; if (res.status === 'ok') { console.log(`\nβœ… Trovati ${res.count} segments per TSys CAR`); if (res.count > 0) { console.log('\nπŸ“‹ SEGMENTS:'); res.segments.forEach((seg, i) => { console.log(` ${i+1}. ${seg}`); }); console.log('\n' + '='.repeat(60)); console.log('πŸ“ DSEGSET per PrT Assignment:'); console.log('='.repeat(60)); console.log(res.dsegset); } else { console.log('\n⚠️ Nessun segment trovato per TSys CAR'); } } else { console.log(`\n❌ ${res.error}`); } } else { console.log('❌', response.error); } console.log(`\n⏱️ ${response.executionTimeMs}ms`); client.destroy(); } }); client.on('close', () => console.log('\nπŸ”Œ Chiuso')); client.on('error', (err) => console.error('❌', err.message));

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