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

  1. Clone este repositório:
git clone https://github.com/danisss9/spotify-playlist-generator-mcp-server
  1. Instale as dependências:
npm install
  1. 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/callback aos seus URIs de redirecionamento
  2. 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
  1. 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:

  1. Abra as Configurações do VS Code: Pressione Ctrl+, (Windows/Linux) ou Cmd+, (macOS)

  2. Pesquise por MCP: Digite "mcp" na barra de pesquisa

  3. 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

  1. Vá para Arquivo > Preferências > Configurações (ou use Ctrl+,)
  2. Pesquise por "GitHub Copilot MCP"
  3. Clique em "Editar em settings.json" ao lado de "Github › Copilot › Chat: Mcp Servers"
  4. 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:

  1. Abra o Copilot Chat (Ctrl+Alt+I ou clique no ícone de chat)
  2. 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ção
  • authCode (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 faixas
  • limit (número, 1-50, padrão: 20): Número máximo de resultados
  • market (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 Spotify
  • market (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 playlist
  • description (string, opcional): Descrição da playlist
  • public (booleano, padrão: false): Se a playlist deve ser pública
  • collaborative (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 editada
  • name (string, opcional): Novo nome para a playlist
  • description (string, opcional): Nova descrição para a playlist
  • public (booleano, opcional): Nova configuração de publicidade
  • collaborative (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 destino
  • trackUris (array de strings): Array de URIs de faixas do Spotify para adicionar
  • position (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 playlists
  • offset (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 faixas
  • limit (número, 1-100, padrão: 50): Número máximo de faixas a retornar
  • offset (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 faixas
  • trackUris (array de strings): Array de URIs de faixas do Spotify para remover
  • snapshotId (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

  1. Vá para Spotify Developer Dashboard
  2. Faça login com sua conta do Spotify
  3. Clique em "Criar um aplicativo"
  4. Preencha o nome e a descrição do aplicativo
  5. Adicione http://localhost:8888/callback aos URIs de redirecionamento
  6. 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

  1. Use a ferramenta authenticate_spotify com getAuthUrl: true
  2. Abra a URL fornecida no seu navegador
  3. Entre na sua conta do Spotify e conceda permissões
  4. Copie o código de autorização da URL de retorno
  5. Use a ferramenta authenticate_spotify novamente com o parâmetro authCode

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

  1. Faça um fork do repositório
  2. Crie um branch de funcionalidade
  3. Faça suas alterações
  4. Teste minuciosamente
  5. Envie um pull request

Licença

Licença MIT - consulte o arquivo LICENSE para obter detalhes

Solução de Problemas

Problemas Comuns

  1. "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
  2. Erros de "Autenticação necessária"

    • Use a ferramenta authenticate_spotify para autenticar primeiro
    • Verifique se o seu token de acesso expirou e reautentique
  3. Erros de "Limite de taxa excedido"

    • Aguarde o limite de taxa ser redefinido
    • Reduza a frequência das chamadas de API
  4. Erros de compilação

    • Certifique-se de ter o Node.js 18+ instalado
    • Execute npm install para garantir que todas as dependências estejam instaladas
    • Verifique a compilação do TypeScript com npm run build
  5. 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