YouTube Playlist Generator MCP Server
Um servidor Model Context Protocol (MCP) que permite que aplicações de IA pesquisem vídeos musicais do YouTube e gerenciem playlists usando a API oficial YouTube Data API v3.
Documentação
Spotify Playlist Generator MCP Server
Um servidor Model Context Protocol (MCP) que permite que aplicações de IA pesquisem faixas de música e gerenciem playlists usando a API oficial do Spotify Web.
Recursos
- Pesquisar Faixas de Música: Encontre faixas de música no Spotify com parâmetros de pesquisa personalizáveis
- Obter Detalhes da Faixa: Recupere informações abrangentes sobre faixas específicas
- Obter Faixas da Playlist: Liste faixas de playlists
- Gerenciamento de Playlists: Gerenciamento completo de playlists, incluindo criação, edição e gerenciamento (requer configuração OAuth)
Configuração
Pré-requisitos
- Node.js 18 ou superior
- Uma conta de desenvolvedor do Spotify
- Credenciais do aplicativo Spotify (Client ID e Client Secret)
Instalação
- Clone este repositório:
git clone https://github.com/danisss9/spotify-playlist-generator-mcp-server
- Instale as dependências:
npm install
-
Crie um aplicativo Spotify:
- Vá para o Spotify Developer Dashboard
- Crie um novo aplicativo
- Anote seu Client ID e Client Secret
- Adicione
http://localhost:8888/callbackaos seus URIs de redirecionamento
-
Configure as variáveis de ambiente:
# Create a .env file
echo "SPOTIFY_CLIENT_ID=your_client_id_here" > .env
echo "SPOTIFY_CLIENT_SECRET=your_client_secret_here" >> .env
- Compile o código TypeScript:
npm run build
Executando o Servidor
Para desenvolvimento com reconstrução automática:
npm run dev
Para produção:
npm start
Usando com Clientes MCP
Este servidor usa o transporte stdio, portanto pode ser usado com qualquer cliente MCP que suporte stdio.
Configuração do Claude Desktop
Adicione ao seu arquivo de configuração do Claude Desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"spotify-playlist-generator": {
"command": "node",
"args": ["/absolute/path/to/spotify-playlist-generator/build/index.js"],
"env": {
"SPOTIFY_CLIENT_ID": "your_client_id_here",
"SPOTIFY_CLIENT_SECRET": "your_client_secret_here"
}
}
}
}
Configuração do Visual Studio Code com GitHub Copilot
Para usar este servidor MCP com o GitHub Copilot no Visual Studio Code, você precisa configurá-lo nas configurações do VS Code:
-
Abra as Configurações do VS Code: Pressione
Ctrl+,(Windows/Linux) ouCmd+,(macOS) -
Pesquise por MCP: Digite "mcp" na barra de pesquisa
-
Adicione a Configuração do Servidor MCP: Adicione o seguinte ao JSON de configurações do VS Code:
{
"github.copilot.chat.mcp.servers": {
"spotify-playlist-generator": {
"command": "node",
"args": ["/absolute/path/to/spotify-playlist-generator/build/index.js"],
"env": {
"SPOTIFY_CLIENT_ID": "your_client_id_here",
"SPOTIFY_CLIENT_SECRET": "your_client_secret_here"
}
}
}
}
Alternativa: Usar a Interface de Configurações
- Vá para Arquivo > Preferências > Configurações (ou use
Ctrl+,) - Pesquise por "GitHub Copilot MCP"
- Clique em "Editar em settings.json" ao lado de "Github › Copilot › Chat: Mcp Servers"
- Adicione a configuração do servidor conforme mostrado acima
Configuração de Variáveis de Ambiente
Por segurança, você também pode definir variáveis de ambiente em todo o sistema em vez de no arquivo de configuração:
Windows (PowerShell):
[Environment]::SetEnvironmentVariable("SPOTIFY_CLIENT_ID", "your_client_id_here", "User")
[Environment]::SetEnvironmentVariable("SPOTIFY_CLIENT_SECRET", "your_client_secret_here", "User")
Windows (Prompt de Comando):
setx SPOTIFY_CLIENT_ID "your_client_id_here"
setx SPOTIFY_CLIENT_SECRET "your_client_secret_here"
macOS/Linux:
export SPOTIFY_CLIENT_ID="your_client_id_here"
export SPOTIFY_CLIENT_SECRET="your_client_secret_here"
# Add to ~/.bashrc, ~/.zshrc, or ~/.profile to persist
echo 'export SPOTIFY_CLIENT_ID="your_client_id_here"' >> ~/.bashrc
echo 'export SPOTIFY_CLIENT_SECRET="your_client_secret_here"' >> ~/.bashrc
Em seguida, remova a seção env da configuração do VS Code:
{
"github.copilot.chat.mcp.servers": {
"spotify-playlist-generator": {
"command": "node",
"args": ["/absolute/path/to/spotify-playlist-generator/build/index.js"]
}
}
}
Uso no VS Code
Depois de configurado, você pode usar o servidor MCP através do GitHub Copilot Chat:
- Abra o Copilot Chat (
Ctrl+Alt+Iou clique no ícone de chat) - Use linguagem natural para interagir com o Spotify:
- "Pesquisar faixas de música jazz"
- "Criar uma nova playlist chamada 'Meus Favoritos'"
- "Adicionar essas faixas à minha playlist"
- "Mostrar detalhes sobre esta faixa do Spotify"
Ferramentas Disponíveis
Ferramentas que Exigem OAuth (Todos os recursos exigem autenticação)
authenticate_spotify
Autentique-se com o OAuth do Spotify para habilitar os recursos de pesquisa de música e gerenciamento de playlists.
Parâmetros:
getAuthUrl(booleano, padrão: false): Defina como true para obter a URL de autorizaçãoauthCode(string, opcional): Código de autorização do fluxo OAuth
get_auth_status
Verifique o status atual da autenticação do Spotify.
Parâmetros: Nenhum
search_tracks
Pesquise faixas de música no Spotify.
Parâmetros:
query(string): Consulta de pesquisa para faixaslimit(número, 1-50, padrão: 20): Número máximo de resultadosmarket(string, opcional): Código de país ISO 3166-1 alfa-2 para filtrar resultados
get_track_details
Obtenha informações detalhadas sobre uma faixa específica do Spotify.
Parâmetros:
trackId(string): ID da faixa do Spotifymarket(string, opcional): Código de país ISO 3166-1 alfa-2 para mercado
create_playlist
Crie uma nova playlist do Spotify (requer autenticação).
Parâmetros:
name(string): Nome da playlistdescription(string, opcional): Descrição da playlistpublic(booleano, padrão: false): Se a playlist deve ser públicacollaborative(booleano, padrão: false): Se a playlist deve ser colaborativa
edit_playlist
Edite informações de uma playlist existente (requer autenticação).
Parâmetros:
playlistId(string): ID da playlist a ser editadaname(string, opcional): Novo nome para a playlistdescription(string, opcional): Nova descrição para a playlistpublic(booleano, opcional): Nova configuração de publicidadecollaborative(booleano, opcional): Nova configuração de colaboração
Nota: Pelo menos um campo (nome, descrição, público ou colaborativo) deve ser fornecido para atualizar.
add_to_playlist
Adicione faixas a uma playlist do Spotify (requer autenticação).
Parâmetros:
playlistId(string): ID da playlist de destinotrackUris(array de strings): Array de URIs de faixas do Spotify para adicionarposition(número, opcional): Posição para inserir as faixas (índice baseado em 0)
list_playlists
Liste as playlists do usuário no Spotify (requer autenticação).
Parâmetros:
limit(número, 1-50, padrão: 20): Número máximo de playlistsoffset(número, mínimo: 0, padrão: 0): Deslocamento de índice para paginação
get_playlist_tracks
Obtenha faixas de uma playlist do Spotify (requer autenticação).
Parâmetros:
playlistId(string): ID da playlist da qual obter as faixaslimit(número, 1-100, padrão: 50): Número máximo de faixas a retornaroffset(número, mínimo: 0, padrão: 0): Deslocamento de índice para paginação
remove_from_playlist
Remova faixas de uma playlist do Spotify (requer autenticação).
Parâmetros:
playlistId(string): ID da playlist da qual remover as faixastrackUris(array de strings): Array de URIs de faixas do Spotify para removersnapshotId(string, opcional): ID do snapshot da playlist para controle de versão
Configuração de Autenticação OAuth
Para todas as funcionalidades, você precisa configurar o OAuth 2.0 com o Spotify:
1. Configuração do Painel do Desenvolvedor do Spotify
- Vá para Spotify Developer Dashboard
- Faça login com sua conta do Spotify
- Clique em "Criar um aplicativo"
- Preencha o nome e a descrição do aplicativo
- Adicione
http://localhost:8888/callbackaos URIs de redirecionamento - Copie seu Client ID e Client Secret
2. Configuração de Ambiente
Adicione suas credenciais OAuth ao arquivo .env:
SPOTIFY_CLIENT_ID=your_client_id_here
SPOTIFY_CLIENT_SECRET=your_client_secret_here
3. Fluxo de Autenticação
- Use a ferramenta
authenticate_spotifycomgetAuthUrl: true - Abra a URL fornecida no seu navegador
- Entre na sua conta do Spotify e conceda permissões
- Copie o código de autorização da URL de retorno
- Use a ferramenta
authenticate_spotifynovamente com o parâmetroauthCode
4. Usando Recursos Autenticados
Depois de autenticado, você pode:
- Pesquisar faixas de música
- Obter informações detalhadas de faixas
- Criar novas playlists
- Editar informações de playlists existentes (nome, descrição, privacidade)
- Adicionar faixas às suas playlists
- Listar suas playlists
- Obter faixas de playlists
- Remover faixas de playlists
Limitações da API
- Limite de Taxa: A API do Spotify tem limites de taxa (varia por endpoint)
- Tokens OAuth: Os tokens de acesso expiram após 1 hora e precisam ser renovados
- Restrições de Mercado: Algumas faixas podem não estar disponíveis em determinados mercados
- Permissões: O escopo do OAuth determina as operações disponíveis
Desenvolvimento
Compilação
npm run build
Modo de Desenvolvimento
npm run dev
Estrutura do Projeto
src/
└── index.ts # Main server implementation
build/ # Compiled JavaScript output
Contribuindo
- Faça um fork do repositório
- Crie um branch de funcionalidade
- Faça suas alterações
- Teste minuciosamente
- Envie um pull request
Licença
Licença MIT - consulte o arquivo LICENSE para obter detalhes
Solução de Problemas
Problemas Comuns
-
"As variáveis de ambiente SPOTIFY_CLIENT_ID e SPOTIFY_CLIENT_SECRET são obrigatórias"
- Certifique-se de ter definido ambas as variáveis de ambiente
- Verifique se as credenciais são válidas no seu aplicativo do Spotify
-
Erros de "Autenticação necessária"
- Use a ferramenta
authenticate_spotifypara autenticar primeiro - Verifique se o seu token de acesso expirou e reautentique
- Use a ferramenta
-
Erros de "Limite de taxa excedido"
- Aguarde o limite de taxa ser redefinido
- Reduza a frequência das chamadas de API
-
Erros de compilação
- Certifique-se de ter o Node.js 18+ instalado
- Execute
npm installpara garantir que todas as dependências estejam instaladas - Verifique a compilação do TypeScript com
npm run build
-
Erros de "Faixa não disponível"
- Algumas faixas podem não estar disponíveis no seu mercado
- Tente especificar um parâmetro de mercado diferente
Considerações de Segurança
- Nunca envie chaves de API para o controle de versão
- Use variáveis de ambiente para configurações sensíveis
- Valide todas as entradas do usuário
- Implemente tratamento de erros e registro adequados
- Esteja atento aos termos de serviço da API do Spotify
Este projeto foi criado usando o GitHub Copilot