#!/usr/bin/env node
/**
* Script de teste para o MCP Spotify Server
* Verifica se todas as dependências estão instaladas e se o servidor pode ser iniciado
*/
import { spawn } from 'child_process';
import { existsSync } from 'fs';
import { join } from 'path';
console.log('🧪 Testando MCP Spotify Server...\n');
// Verificar se o arquivo .env existe
if (!existsSync('.env')) {
console.log('❌ Arquivo .env não encontrado');
console.log(' Execute: cp env.example .env');
console.log(' Configure suas credenciais do Spotify\n');
process.exit(1);
}
// Verificar se o build existe
if (!existsSync('dist/index.js')) {
console.log('❌ Build não encontrado');
console.log(' Execute: npm run build\n');
process.exit(1);
}
// Verificar variáveis de ambiente
import dotenv from 'dotenv';
dotenv.config();
const requiredEnvVars = ['SPOTIFY_CLIENT_ID', 'SPOTIFY_CLIENT_SECRET', 'SPOTIFY_REDIRECT_URI'];
const missingVars = requiredEnvVars.filter(varName => !process.env[varName]);
if (missingVars.length > 0) {
console.log('❌ Variáveis de ambiente ausentes:');
missingVars.forEach(varName => console.log(` - ${varName}`));
console.log('\n Configure essas variáveis no arquivo .env\n');
process.exit(1);
}
console.log('✅ Arquivo .env configurado');
console.log('✅ Build encontrado');
console.log('✅ Variáveis de ambiente configuradas\n');
// Testar se o servidor pode ser iniciado
console.log('🚀 Testando inicialização do servidor...');
const serverProcess = spawn('node', ['dist/index.js'], {
stdio: ['pipe', 'pipe', 'pipe'],
env: process.env
});
let serverStarted = false;
let serverError = '';
serverProcess.stdout.on('data', (data) => {
const output = data.toString();
if (output.includes('Servidor MCP Spotify iniciado')) {
serverStarted = true;
console.log('✅ Servidor iniciado com sucesso!');
serverProcess.kill();
}
});
serverProcess.stderr.on('data', (data) => {
serverError += data.toString();
});
serverProcess.on('close', (code) => {
if (!serverStarted) {
console.log('❌ Erro ao iniciar servidor:');
console.log(serverError);
process.exit(1);
} else {
console.log('\n🎉 Todos os testes passaram!');
console.log('\n📋 Próximos passos:');
console.log('1. Execute: npm run dev');
console.log('2. Configure seu LLM para usar este servidor MCP');
console.log('3. Teste a autenticação com: spotify_auth');
console.log('\n📖 Consulte o README.md para mais informações');
}
});
// Timeout após 5 segundos
setTimeout(() => {
if (!serverStarted) {
console.log('❌ Timeout: Servidor não respondeu em 5 segundos');
serverProcess.kill();
process.exit(1);
}
}, 5000);