Skip to main content
Glama

Visum Thinker MCP Server

MIT License
verify-operations.jsโ€ข4.55 kB
/** * Script per verificare se le operazioni sono state realmente create */ import net from 'net'; const VISUM_SERVER_HOST = 'localhost'; const VISUM_SERVER_PORT = 7901; async function sendVisumCommand(code, description = 'Query') { return new Promise((resolve, reject) => { const client = new net.Socket(); const command = { type: 'query', code: code, description: description, requestId: Date.now() }; client.connect(VISUM_SERVER_PORT, VISUM_SERVER_HOST, () => { console.log(`๐Ÿ“ก Connesso al server TCP`); client.write(JSON.stringify(command) + '\n'); }); let buffer = ''; client.on('data', (data) => { buffer += data.toString(); const messages = buffer.split('\n'); buffer = messages.pop() || ''; for (const message of messages) { if (message.trim()) { try { const cleanedResponse = message.replace(/\\n$/g, ''); const response = JSON.parse(cleanedResponse); if (response.type === 'project_welcome') { continue; } if (response.type === 'query_result' || response.type === 'error' || response.result !== undefined) { client.destroy(); resolve(response); return; } } catch (e) { // JSON incompleto } } } }); client.on('close', () => { console.log('๐Ÿ”Œ Connessione chiusa'); }); client.on('error', (err) => { console.error('โŒ Errore TCP:', err.message); reject(err); }); client.setTimeout(30000, () => { client.destroy(); reject(new Error('TCP timeout')); }); }); } async function main() { console.log('\n' + 'โ•'.repeat(70)); console.log('๐Ÿ” VERIFICA OPERAZIONI VISUM'); console.log('โ•'.repeat(70)); try { // 1. Conta operazioni alle posizioni 20 e 21 const code = ` operations = visum.Procedures.Operations result = { 'status': 'ok', 'operations': {} } # Verifica posizione 20 try: op20 = operations.ItemByKey(20) op_type_20 = op20.AttValue("OPERATIONTYPE") result['operations']['pos_20'] = { 'exists': True, 'type': int(op_type_20) } except Exception as e: result['operations']['pos_20'] = { 'exists': False, 'error': str(e) } # Verifica posizione 21 try: op21 = operations.ItemByKey(21) op_type_21 = op21.AttValue("OPERATIONTYPE") result['operations']['pos_21'] = { 'exists': True, 'type': int(op_type_21) } # Se รจ PrT Assignment, verifica parametri if op_type_21 == 101: try: params = op21.PrTAssignmentPara dseg = params.AttValue("DSegSet") variant = params.AttValue("PrTAssignmentVariant") result['operations']['pos_21']['params'] = { 'DSegSet': str(dseg), 'Variant': int(variant) } except Exception as e2: result['operations']['pos_21']['params_error'] = str(e2) except Exception as e: result['operations']['pos_21'] = { 'exists': False, 'error': str(e) } # Conta totale operazioni top-level count = 0 try: while True: operations.ItemByKey(count + 1) count += 1 except: pass result['total_operations'] = count # Ritorna result str(result) `; const response = await sendVisumCommand(code, 'Verify operations'); console.log('\n๏ฟฝ RISULTATO:'); console.log('โ”€'.repeat(70)); if (response.result) { console.log(JSON.stringify(response.result, null, 2)); } else if (response.error) { console.error('โŒ ERRORE:', response.error); } else { console.log('โš ๏ธ Nessun risultato'); console.log('Response:', JSON.stringify(response, null, 2)); } console.log('โ”€'.repeat(70)); } catch (error) { console.error('\nโŒ ERRORE:', error); } } main();

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