Discogs MCP Server

Acesse a API do Discogs para catalogação musical, pesquisa e outras operações no banco de dados.

Documentação

License GitHub Release GitHub Actions Workflow Status NPM Downloads Sponsor

Discogs MCP Server

Servidor MCP para a API do Discogs, permitindo operações de catálogo musical, funcionalidade de busca e muito mais.

Início Rápido

Se você quiser apenas começar a usar este MCP Server imediatamente com o aplicativo de desktop Claude e não se importar com desenvolvimento ou execução do servidor, certifique-se de ter o Node.js instalado e seu token de acesso pessoal do Discogs pronto e vá direto para a seção de configuração do Claude. Use o método NPX dessa seção.

Sumário

Agradecimentos

Este servidor MCP é construído usando FastMCP, um framework TypeScript para construir servidores MCP. Para mais informações sobre MCP e como usar servidores MCP, consulte a documentação do FastMCP e a documentação oficial do MCP.

Ferramentas Disponíveis

Confira a lista de ferramentas disponíveis: TOOLS.md

Advertências

  • A documentação da API do Discogs não é perfeita e alguns endpoints podem não estar totalmente documentados ou podem ter inconsistências.
  • Devido ao grande número de endpoints e tipos de resposta da API, não é viável verificar a segurança de tipos para todas as respostas possíveis. Por favor, relate quaisquer problemas relacionados a tipos que você encontrar.
  • Este servidor MCP permite editar dados na sua coleção do Discogs. Use com cautela e verifique suas ações antes de executá-las.
  • O padrão de per_page da API do Discogs é 50, o que pode ser dados demais para alguns clientes processarem de forma eficaz, então neste projeto um valor de discogs.config.defaultPerPage foi definido como 5. Você pode solicitar mais dados em seus prompts, mas esteja ciente de que alguns clientes podem ter dificuldades com respostas maiores.

Pré-requisitos

  • Node.js (testado com Node.js 20.x.x, mas 18.x.x também deve funcionar)
    • Verifique sua versão do Node.js com: node --version
  • Docker (opcional, para executar uma imagem docker local sem precisar lidar com Node ou dependências)

Configuração

  1. Clone o repositório
  2. Crie um arquivo .env no diretório raiz com base em .env.example
  3. Defina as seguintes variáveis de ambiente obrigatórias no seu .env:
    • DISCOGS_PERSONAL_ACCESS_TOKEN: Seu token de acesso pessoal do Discogs

Para obter seu token de acesso pessoal do Discogs, acesse a página Discogs Settings > Developers e encontre seu token ou gere um novo. NÃO COMPARTILHE SEU TOKEN. O suporte a OAuth será adicionado em uma versão futura.

As outras variáveis de ambiente em .env.example são opcionais e têm padrões sensatos, então você não precisa defini-las a menos que tenha requisitos específicos.

  • SERVER_HOST: O endereço do host ao qual o servidor será vinculado (padrão: 0.0.0.0). Defina como 0.0.0.0 para permitir conexões de fora do contêiner/máquina, ou 127.0.0.1 para restringir apenas ao localhost.

Executando o Servidor Localmente

Opção 1: Desenvolvimento Local

  1. Instale as dependências:

    pnpm install
    
  2. Comandos disponíveis:

    • pnpm run dev: Inicie o servidor de desenvolvimento com hot reloading
    • pnpm run dev:stream: Inicie o servidor de desenvolvimento com hot reloading no modo de streaming HTTP
    • pnpm run build: Compile a versão de produção
    • pnpm run start: Execute a compilação de produção
    • pnpm run inspect: Execute o MCP Inspector (veja a seção Inspeção)
    • pnpm run format: Verifique a formatação do código (prettier)
    • pnpm run lint: Execute o linter (eslint)
    • pnpm run test: Execute o vitest
    • pnpm run test:coverage: Execute a cobertura do vitest v8
    • pnpm run version:check: Verifica se a versão do package.json e src/version.ts correspondem

Opção 2: Docker

  1. Compile a imagem Docker:

    docker build -t discogs-mcp-server:latest .
    
  2. Execute o contêiner:

    docker run --env-file .env discogs-mcp-server:latest
    

    Para o modo de transporte HTTP Streaming:

    # The port should match what is in your .env file
    # By default, the server listens on 0.0.0.0, allowing connections from outside the container
    docker run --env-file .env -p 3001:3001 discogs-mcp-server:latest stream
    

Inspeção

Execute o MCP Inspector para testar seu servidor MCP local:

pnpm run inspect

Isso iniciará o MCP Inspector em http://127.0.0.1:6274. Visite esta URL no seu navegador para interagir com seu servidor MCP local.

Para mais informações sobre o MCP Inspector, visite a documentação oficial.

Clientes MCP

Mais exemplos de clientes serão adicionados no futuro. Se você quiser configuração para um cliente específico, solicite abrindo uma nova issue ou crie o pull request para editar esta seção do README você mesmo.

Configuração do Claude Desktop

Encontre seu claude_desktop_config.json em Claude > Settings > Developer > Edit Config e, dependendo de qual opção você preferir, adicione APENAS UMA das seguintes:

NPX

Executando diretamente do registro npm.

{
  "mcpServers": {
    "discogs": {
      "command": "npx",
      "args": [
        "-y",
        "discogs-mcp-server"
      ],
      "env": {
        "DISCOGS_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}

Node Local

As dependências devem ter sido instaladas antes de você usar este método (pnpm install).

{
  "mcpServers": {
    "discogs": {
      "command": "npx",
      "args": [
        "tsx",
        "/PATH/TO/YOUR/PROJECT/FOLDER/src/index.ts"
      ],
      "env": {
        "DISCOGS_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}

Docker

A imagem docker deve ter sido compilada antes de usar este método.

{
  "mcpServers": {
    "discogs": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "--env-file",
        "/PATH/TO/YOUR/PROJECT/FOLDER/.env",
        "discogs-mcp-server:latest"
      ]
    }
  }
}

Quaisquer alterações no código local exigirão que o Claude seja reiniciado para ter efeito. Além disso, o Claude exige interação humana no processo para permitir que uma ferramenta MCP seja executada, então toda vez que uma nova ferramenta for acessada, o Claude pedirá permissão. Normalmente você só precisa fazer isso uma vez por ferramenta por chat. Se estiver usando a versão gratuita, chats longos podem resultar em erros mais frequentes ao tentar executar ferramentas, pois o Claude limita a quantidade de contexto em um único chat.

LibreChat

No arquivo de configuração librechat.yaml, adicione isto na seção mcpServers:

discogs:
  type: stdio
  command: npx
  args: ["-y", "discogs-mcp-server"]
  env:
    DISCOGS_PERSONAL_ACCESS_TOKEN: YOUR_TOKEN_GOES_HERE

LM Studio

Vá para o Chat Settings. Na aba Program haverá um menu suspenso com o padrão Install. Selecione Edit mcp.json. Adicione isto na seção mcpServers:

"discogs": {
  "command": "npx",
  "args": [
    "-y",
    "discogs-mcp-server"
  ],
  "env": {
    "DISCOGS_PERSONAL_ACCESS_TOKEN": "YOUR_TOKEN_GOES_HERE"
  }
}

Depois de Salvar, na aba Program agora deve haver um alternador mcp/discogs para habilitar o servidor. Dentro de cada caixa de chat há um menu Integrations onde você também pode habilitar servidores mcp.

TODO

  • Suporte a OAuth
  • Ferramentas ausentes:
    • Upload de inventário

Licença

Este servidor MCP é licenciado sob a Licença MIT. Isso significa que você é livre para usar, modificar e distribuir o software, sujeito aos termos e condições da Licença MIT. Para mais detalhes, consulte o arquivo LICENSE no repositório do projeto.