UNPKG

simple-init-service

Version:

MCP server for semantic codebase search using Transformers.js

93 lines (79 loc) 2.4 kB
#!/usr/bin/env node const { spawn } = require('child_process'); const path = require('path'); console.log('=== Teste de Comunicação MCP ==='); console.log('Iniciando servidor MCP via NPX...'); // Testar diretamente o servidor MCP const child = spawn('npx', ['mcp-codebase-search', '--stdio'], { stdio: ['pipe', 'pipe', 'inherit'], // stdin/stdout como pipes, stderr inherit cwd: __dirname, shell: true // Usar shell para resolver o npx }); let responseBuffer = ''; // Escutar saída do servidor child.stdout.on('data', (data) => { responseBuffer += data.toString(); console.log('Dados recebidos:', data.toString()); // Tentar parsear mensagens JSON completas const lines = responseBuffer.split('\n'); for (let i = 0; i < lines.length - 1; i++) { const line = lines[i].trim(); if (line) { try { const response = JSON.parse(line); console.log('Resposta do servidor:', JSON.stringify(response, null, 2)); } catch (e) { console.log('Linha não é JSON válido:', line); } } } responseBuffer = lines[lines.length - 1]; }); child.on('spawn', () => { console.log('Processo NPX iniciado com sucesso'); }); // Escutar erros child.on('error', (error) => { console.error('Erro no processo:', error); }); // Escutar saída child.on('exit', (code, signal) => { console.log(`Processo encerrado com código: ${code}, sinal: ${signal}`); if (code !== 0) { console.log('Processo encerrou com erro'); } }); child.on('error', (err) => { console.log('Erro no processo NPX:', err); }); // Aguardar um pouco e enviar mensagem de inicialização setTimeout(() => { console.log('Enviando mensagem de inicialização...'); const initMessage = { jsonrpc: '2.0', id: 1, method: 'initialize', params: { protocolVersion: '2024-11-05', capabilities: { tools: {} }, clientInfo: { name: 'test-client', version: '1.0.0' } } }; try { child.stdin.write(JSON.stringify(initMessage) + '\n'); console.log('Mensagem enviada com sucesso'); } catch (err) { console.log('Erro ao enviar mensagem:', err); } // Aguardar resposta e encerrar setTimeout(() => { console.log('Encerrando teste...'); child.kill('SIGTERM'); }, 5000); }, 3000); console.log('Aguardando inicialização do servidor...');