Provides comprehensive Spotify integration with OAuth2 authentication, music search capabilities, playback control (play, pause, skip), current track information, device management, and playlist management and playback functionality.
🎵 MCP Spotify Server
Um servidor MCP (Model Context Protocol) que permite interagir com o Spotify através de LLMs. Este servidor fornece ferramentas para buscar música, controlar reprodução, gerenciar playlists e muito mais.
🚀 Funcionalidades
Autenticação OAuth2 com Spotify
Busca por músicas, artistas, álbuns e playlists
Controle de reprodução (tocar, pausar, próximo, anterior)
Informações da música atual
Gerenciamento de dispositivos
Listagem e reprodução de playlists
📋 Pré-requisitos
Node.js (versão 18 ou superior)
Conta Spotify (Premium recomendado para funcionalidade completa)
Aplicação Spotify registrada no Spotify Developer Dashboard
ngrok (para expor o servidor local)
🛠️ Instalação
Clone o repositório:
git clone https://github.com/seu-usuario/MCPSpotify.git cd MCPSpotifyInstale as dependências:
npm installInstale o ngrok:
macOS (com Homebrew):
brew install ngrok/ngrok/ngrokWindows (com Chocolatey):
choco install ngrokLinux:
# Baixe o binário do site oficial curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null echo "deb https://ngrok-agent.s3.amazonaws.com buster main" | sudo tee /etc/apt/sources.list.d/ngrok.list sudo apt update && sudo apt install ngrokOu baixe diretamente do
Configure as variáveis de ambiente:
cp env.example .envEdite o arquivo
SPOTIFY_CLIENT_ID=seu_client_id_aqui SPOTIFY_CLIENT_SECRET=seu_client_secret_aqui SPOTIFY_REDIRECT_URI=http://localhost:3000/callbackConfigure o MCP (opcional):
Para Claude Desktop:
cp configs/claude-desktop.example.json ~/.claude-desktop/config.json # Edite o arquivo com seu caminho e credenciaisPara Cursor:
cp configs/cursor.example.json ~/.cursor/mcp.json # Edite o arquivo com seu caminho e credenciaisPara outros clientes MCP:
cp mcp-config.example.json mcp-config.json # Edite o arquivo com seu caminho e credenciais
🔧 Configuração do Spotify
Acesse o Spotify Developer Dashboard
Clique em "Create App"
Preencha os dados:
App name: MCP Spotify Server
App description: Servidor MCP para integração com Spotify
Após criar, copie o Client ID e Client Secret
Clique em "Edit Settings" e adicione
http://localhost:3000/callbacknas Redirect URIs
🌐 Configuração do ngrok
Para que o OAuth do Spotify funcione corretamente, você precisa expor seu servidor local para a internet. O ngrok é a ferramenta recomendada para isso.
1. Crie uma conta no ngrok (opcional mas recomendado)
Acesse ngrok.com e crie uma conta gratuita
Isso permite URLs estáveis e remove limitações de tempo
2. Configure o ngrok
3. Atualize a Redirect URI
Copie a URL HTTPS fornecida pelo ngrok (ex:
https://abc123.ngrok.io)No Spotify Dashboard, adicione
https://abc123.ngrok.io/callbacknas Redirect URIsAtualize seu arquivo
.env:SPOTIFY_REDIRECT_URI=https://abc123.ngrok.io/callback
4. Inicie o servidor
🚀 Uso
Desenvolvimento
Produção
🎯 Ferramentas Disponíveis
Autenticação
spotify_auth- Inicia o processo de autenticaçãospotify_set_tokens- Finaliza a autenticação com ocodede retorno
Busca
spotify_search- Busca por músicas, artistas, álbuns ou playlists
Controle de Reprodução
spotify_play- Toca uma música específicaspotify_pause- Pausa a reproduçãospotify_resume- Retoma a reproduçãospotify_next- Pula para a próxima músicaspotify_previous- Volta para a música anterior
Informações
spotify_current_playing- Obtém informações sobre a música atualspotify_devices- Lista dispositivos disponíveisspotify_playlists- Lista playlists do usuário
Playlists
spotify_play_playlist- Toca uma playlist específica
📝 Exemplos de Uso
Fluxo de Autenticação
Iniciar o login (vai abrir o navegador)
Depois de autorizar no Spotify, copie o
coderetornado e finalize:
Buscar uma música
Tocar uma música
Buscar playlists
🔒 Segurança
As credenciais do Spotify são armazenadas apenas localmente
Os tokens de acesso são renovados automaticamente
Nenhuma informação é enviada para servidores externos (exceto Spotify)
🐛 Solução de Problemas
Erro de Autenticação
Verifique se as credenciais no
.envestão corretasConfirme se a Redirect URI está configurada no Spotify Dashboard
Certifique-se de que o ngrok está rodando e a URL está atualizada no
.envVerifique se a URL do ngrok no Spotify Dashboard corresponde à URL no arquivo
.env
Dispositivo Não Encontrado
Certifique-se de que o Spotify está aberto em algum dispositivo
Verifique se o dispositivo está ativo na sua conta Spotify
Erro de Permissões
Algumas funcionalidades requerem Spotify Premium
Verifique se todas as permissões foram concedidas durante a autenticação
Problemas com ngrok
URL muda a cada reinicialização: Use uma conta ngrok gratuita para URLs estáveis
Erro de conexão: Verifique se o ngrok está rodando na porta correta (3000)
Timeout: Certifique-se de que o servidor está rodando antes de iniciar o ngrok
URL não acessível: Verifique se o firewall não está bloqueando a conexão
📄 Licença
MIT License - veja o arquivo LICENSE para detalhes.
🤝 Contribuição
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull requests.
📞 Suporte
Se você encontrar problemas ou tiver dúvidas, abra uma issue no repositório.