UNPKG

mcp-booster

Version:

Servidor MCP com CoConuT (Continuous Chain of Thought) para uso com Cursor IDE - Pacote Global NPM

143 lines (134 loc) 4.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseCliArguments = parseCliArguments; exports.getHelpMessage = getHelpMessage; exports.isValidApiKey = isValidApiKey; exports.sanitizeApiKey = sanitizeApiKey; /** * Faz o parsing dos argumentos da linha de comando * Formato esperado: mcp-booster init --ide cursor --api-key <api-key> */ function parseCliArguments(argv) { // Remove os primeiros dois argumentos (node e script path) const args = argv.slice(2); // Verifica se é comando init if (args.length === 0 || args[0] !== 'init') { return { success: false, error: 'Comando não reconhecido. Use "init" para instalar configuração MCP.', showHelp: true }; } // Remove 'init' dos argumentos const initArgs = args.slice(1); // Verifica se é pedido de ajuda if (initArgs.includes('--help') || initArgs.includes('-h')) { return { success: true, showHelp: true }; } // Parse dos argumentos const parsedArgs = {}; for (let i = 0; i < initArgs.length; i++) { const arg = initArgs[i]; switch (arg) { case '--ide': if (i + 1 >= initArgs.length) { return { success: false, error: 'Argumento --ide requer um valor (ex: --ide cursor)' }; } parsedArgs.ide = initArgs[i + 1]; i++; // Pula o próximo argumento (valor) break; case '--api-key': if (i + 1 >= initArgs.length) { return { success: false, error: 'Argumento --api-key requer um valor' }; } parsedArgs.apiKey = initArgs[i + 1]; i++; // Pula o próximo argumento (valor) break; default: return { success: false, error: `Argumento desconhecido: ${arg}` }; } } // Validação dos argumentos obrigatórios if (!parsedArgs.ide) { return { success: false, error: 'Argumento --ide é obrigatório (ex: --ide cursor)' }; } if (!parsedArgs.apiKey) { return { success: false, error: 'Argumento --api-key é obrigatório' }; } // Validação do IDE if (parsedArgs.ide.toLowerCase() !== 'cursor') { return { success: false, error: `IDE '${parsedArgs.ide}' não é suportado. Apenas 'cursor' é suportado atualmente.` }; } // Validação da API key if (parsedArgs.apiKey.trim().length === 0) { return { success: false, error: 'API key não pode estar vazia' }; } return { success: true, args: parsedArgs }; } /** * Gera mensagem de ajuda para o comando init */ function getHelpMessage() { return ` 🚀 MCP-Booster - Instalador de Configuração MCP USO: mcp-booster init --ide cursor --api-key <sua-api-key> ARGUMENTOS OBRIGATÓRIOS: --ide <ide> IDE alvo (atualmente suporta apenas 'cursor') --api-key <key> Sua API key para o serviço MCP-Booster ARGUMENTOS OPCIONAIS: --help, -h Mostra esta mensagem de ajuda EXEMPLO: # Instalação (servidor MCP global + cursor rules locais) mcp-booster init --ide cursor --api-key abc123def456 # Mostrar ajuda mcp-booster init --help SOBRE: Este comando instala automaticamente: - Configuração MCP do Booster GLOBALMENTE no Cursor IDE - Cursor Rules LOCALMENTE no projeto atual O servidor MCP é instalado globalmente para funcionar em todos os projetos, enquanto as cursor rules são criadas localmente para cada projeto. Sistemas suportados: Windows, macOS, Linux `; } /** * Valida se uma string é uma API key válida (formato básico) */ function isValidApiKey(apiKey) { // Validação básica: não vazia, sem espaços, comprimento mínimo return apiKey.trim().length >= 8 && !apiKey.includes(' '); } /** * Sanitiza a API key removendo espaços e caracteres inválidos */ function sanitizeApiKey(apiKey) { return apiKey.trim().replace(/\s+/g, ''); }