mysql-mcp-server-v1
Version:
Servidor MCP completo para MySQL Database com sistema hierárquico de configuração, operações DDL, DML, DCL, DDM, DCM, DLM, monitoramento, auditoria e gestão de ciclo de vida de dados
56 lines (47 loc) • 1.89 kB
JavaScript
import { fileURLToPath } from 'url';
import { dirname, resolve } from 'path';
import { execSync } from 'child_process';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const projectRoot = resolve(__dirname, '..');
async function ensureDependencies() {
// Verificar se estamos em um contexto npx
const isNpx = process.env.npm_config_user_agent && process.env.npm_config_user_agent.includes('npx');
if (isNpx) {
try {
// Tentar importar dependências críticas
await import('denque');
await import('mysql2');
} catch (error) {
console.error('❌ Dependências não encontradas no contexto npx');
console.error('🔧 Tentando instalar dependências automaticamente...');
try {
// Tentar instalar dependências críticas
execSync('npm install denque@^2.1.0 mysql2@^3.11.5', {
stdio: 'pipe',
cwd: projectRoot
});
console.log('✅ Dependências instaladas com sucesso!');
} catch (installError) {
console.error('❌ Falha ao instalar dependências automaticamente');
console.error('💡 Soluções:');
console.error(' 1. Instale globalmente: npm install -g mysql-mcp-server-v1');
console.error(' 2. Use: npx --yes mysql-mcp-server-v1@latest start');
console.error(' 3. Limpe o cache: npm cache clean --force');
process.exit(1);
}
}
}
}
async function startServer() {
await ensureDependencies();
// Importar e executar o servidor principal
// O index.js agora executa diretamente, então apenas importamos
await import('../src/index.js');
}
// Executar o servidor
startServer().catch(error => {
console.error('Failed to start MySQL MCP Server:', error);
process.exit(1);
});