UNPKG

simple-init-service

Version:

MCP server for semantic codebase search using Transformers.js

71 lines (58 loc) 1.8 kB
#!/usr/bin/env node const { spawn, execSync } = require('child_process'); const path = require('path'); const command = process.argv[2]; function startProcess(scriptName, args = []) { const child = spawn('node', [path.join(__dirname, scriptName), ...args], { stdio: ['inherit', 'inherit', 'inherit'], detached: false }); // Encaminhar sinais para o processo filho process.on('SIGINT', () => { child.kill('SIGINT'); }); process.on('SIGTERM', () => { child.kill('SIGTERM'); }); child.on('exit', (code, signal) => { process.exit(code || 0); }); child.on('error', (error) => { console.error('Erro ao iniciar processo:', error); process.exit(1); }); // Manter o processo pai vivo return child; } switch (command) { case 'index': startProcess('index-codebase.js'); break; case 'start': case '--stdio': case undefined: // Modo MCP Server (padrão) const child = spawn('node', [path.join(__dirname, 'mcp-server.cjs'), '--stdio'], { stdio: 'inherit', cwd: __dirname }); child.on('exit', (code) => { process.exit(code || 0); }); child.on('error', (err) => { console.error('Erro ao iniciar servidor MCP:', err); process.exit(1); }); // Encaminhar sinais para o processo filho process.on('SIGINT', () => child.kill('SIGINT')); process.on('SIGTERM', () => child.kill('SIGTERM')); return; break; default: console.log('Uso: npx mcp-codebase-search [index|start|--stdio]'); console.log('\nComandos disponíveis:'); console.log(' index - Indexar o projeto atual'); console.log(' start - Iniciar o servidor MCP'); console.log(' --stdio - Iniciar servidor MCP via stdio (padrão)'); process.exit(1); }