test-mcp-integration.mjsโข4.45 kB
// Test integrazione MCP con Visum visibile
import { spawn } from 'child_process';
console.log("๐ TEST MCP โ VISUM VISIBILE");
console.log("โ".repeat(40));
// Simula una richiesta MCP al server
async function testMCPTool(toolName, args = {}) {
console.log(`\n๐ ๏ธ TEST TOOL: ${toolName}`);
console.log("-".repeat(30));
const request = {
jsonrpc: "2.0",
id: 1,
method: "tools/call",
params: {
name: toolName,
arguments: args
}
};
console.log("๐ค Invio richiesta MCP:", JSON.stringify(request, null, 2));
// Avvia il server MCP
const server = spawn('node', ['enhanced-visum-mcp.mjs'], {
stdio: ['pipe', 'pipe', 'pipe']
});
let output = '';
let errors = '';
server.stdout.on('data', (data) => {
const text = data.toString();
output += text;
console.log("๐ฅ MCP Output:", text.trim());
});
server.stderr.on('data', (data) => {
const text = data.toString();
errors += text;
console.log("โ ๏ธ MCP Error:", text.trim());
});
// Invia la richiesta
server.stdin.write(JSON.stringify(request) + '\n');
return new Promise((resolve) => {
const timeout = setTimeout(() => {
console.log("โฑ๏ธ TIMEOUT - terminando server");
server.kill();
resolve({
success: false,
error: 'Timeout dopo 12 secondi',
output: output,
errors: errors
});
}, 12000);
server.on('close', (code) => {
clearTimeout(timeout);
console.log(`๐ Server MCP chiuso con codice: ${code}`);
// Cerca JSON response nell'output
const jsonMatch = output.match(/\{"jsonrpc".*?\}/);
let response = null;
if (jsonMatch) {
try {
response = JSON.parse(jsonMatch[0]);
console.log("โ
Risposta MCP ricevuta:", response);
} catch (e) {
console.log("โ Errore parsing JSON:", e.message);
}
}
resolve({
success: response ? !response.error : false,
response: response,
output: output,
errors: errors,
code: code
});
});
});
}
async function runFullTest() {
console.log("๐ Inizio test completo MCP con Visum visibile...\n");
// Test 1: Check status
console.log("๐ TEST 1: Verifica status Visum");
const statusTest = await testMCPTool('get_visum_status');
console.log("\n" + "โ".repeat(40));
console.log("๐ RISULTATO TEST STATUS");
console.log("โ".repeat(40));
if (statusTest.success) {
console.log("โ
Status check RIUSCITO!");
console.log(" Visum รจ accessibile via MCP");
} else {
console.log("โ Status check FALLITO");
console.log(` Errore: ${statusTest.error || 'Comunicazione MCP interrotta'}`);
}
// Breve pausa
await new Promise(r => setTimeout(r, 2000));
// Test 2: Check Visum details
console.log("\n๐ TEST 2: Verifica dettagli Visum");
const checkTest = await testMCPTool('check_visum');
console.log("\n" + "โ".repeat(40));
console.log("๐ RISULTATO TEST CHECK");
console.log("โ".repeat(40));
if (checkTest.success) {
console.log("โ
Check Visum RIUSCITO!");
console.log(" Dati Visum recuperati correttamente");
} else {
console.log("โ Check Visum FALLITO");
console.log(` Errore: ${checkTest.error || 'Comunicazione MCP interrotta'}`);
}
console.log("\n" + "โ".repeat(40));
console.log("๐ฏ CONCLUSIONI FINALI");
console.log("โ".repeat(40));
if (statusTest.success && checkTest.success) {
console.log("๐ ๐ INTEGRAZIONE COMPLETA RIUSCITA!");
console.log(" โ
Visum visibile in esecuzione");
console.log(" โ
MCP server funzionante");
console.log(" โ
Comunicazione MCP โ Visum operativa");
console.log("\n๐ Claude puรฒ ora utilizzare Visum tramite MCP!");
} else if (statusTest.success || checkTest.success) {
console.log("โ ๏ธ ๐ง INTEGRAZIONE PARZIALE");
console.log(" - Visum รจ attivo e visibile");
console.log(" - Problemi di comunicazione MCP intermittenti");
console.log(" - Necessario fine-tuning dei timeout");
} else {
console.log("โ ๐ง INTEGRAZIONE NON RIUSCITA");
console.log(" - Visum รจ visibile ma inaccessibile via MCP");
console.log(" - Verificare configurazione COM");
console.log(" - Timeout MCP troppo stringenti");
}
}
runFullTest().catch(console.error);