Discogs MCP Server

Accede a la API de Discogs para catalogación musical, búsqueda y otras operaciones de base de datos.

Documentación

License GitHub Release GitHub Actions Workflow Status NPM Downloads Sponsor

Discogs MCP Server

Servidor MCP para la API de Discogs, que permite operaciones de catálogo musical, funcionalidad de búsqueda y más.

Inicio rápido

Si solo quieres empezar a usar este Servidor MCP inmediatamente con la aplicación de escritorio Claude y no te importa el desarrollo ni ejecutar el servidor tú mismo, asegúrate de tener Node.js instalado y tu token de acceso personal de Discogs listo, y ve directamente a la sección de configuración de Claude. Usa el método NPX de esa sección.

Tabla de contenidos

Agradecimientos

Este servidor MCP está construido con FastMCP, un framework de TypeScript para crear servidores MCP. Para más información sobre MCP y cómo usar servidores MCP, consulta la documentación de FastMCP y la documentación oficial de MCP.

Herramientas disponibles

Consulta la lista de herramientas disponibles: TOOLS.md

Advertencias

  • La documentación de la API de Discogs no es perfecta y algunos endpoints pueden no estar completamente documentados o tener inconsistencias.
  • Debido a la gran cantidad de endpoints de API y tipos de respuesta, no es factible verificar la seguridad de tipos para cada respuesta posible. Por favor, informa de cualquier problema relacionado con tipos que encuentres.
  • Este servidor MCP permite editar datos en tu colección de Discogs. Úsalo con precaución y verifica tus acciones antes de ejecutarlas.
  • El valor predeterminado de per_page de la API de Discogs es 50, que puede ser demasiada información para que algunos clientes la procesen de manera efectiva, por lo que dentro de este proyecto se ha establecido un valor de discogs.config.defaultPerPage en 5. Puedes solicitar más datos en tus prompts, pero ten en cuenta que algunos clientes pueden tener dificultades con respuestas más grandes.

Requisitos previos

  • Node.js (probado con Node.js 20.x.x, pero 18.x.x debería funcionar también)
    • Comprueba tu versión de Node.js con: node --version
  • Docker (opcional, para ejecutar una imagen docker local sin tener que lidiar con Node o dependencias)

Configuración

  1. Clona el repositorio
  2. Crea un archivo .env en el directorio raíz basado en .env.example
  3. Establece las siguientes variables de entorno requeridas en tu .env:
    • DISCOGS_PERSONAL_ACCESS_TOKEN: Tu token de acceso personal de Discogs

Para obtener tu token de acceso personal de Discogs, ve a tu página de Configuración de Discogs > Desarrolladores y encuentra tu token o genera uno nuevo. NO COMPARTAS TU TOKEN. El soporte OAuth se añadirá en una futura versión.

Las demás variables de entorno en .env.example son opcionales y tienen valores predeterminados sensatos, así que no necesitas configurarlas a menos que tengas requisitos específicos.

  • SERVER_HOST: La dirección del host al que vincular el servidor (predeterminado: 0.0.0.0). Establécelo en 0.0.0.0 para permitir conexiones desde fuera del contenedor/máquina, o 127.0.0.1 para restringirlo solo a localhost.

Ejecutar el servidor localmente

Opción 1: Desarrollo local

  1. Instala las dependencias:

    pnpm install
    
  2. Comandos disponibles:

    • pnpm run dev: Inicia el servidor de desarrollo con recarga automática
    • pnpm run dev:stream: Inicia el servidor de desarrollo con recarga automática en modo de transmisión HTTP
    • pnpm run build: Compila la versión de producción
    • pnpm run start: Ejecuta la compilación de producción
    • pnpm run inspect: Ejecuta el MCP Inspector (consulta la sección Inspección)
    • pnpm run format: Comprueba el formato del código (prettier)
    • pnpm run lint: Ejecuta el linter (eslint)
    • pnpm run test: Ejecuta vitest
    • pnpm run test:coverage: Ejecuta la cobertura v8 de vitest
    • pnpm run version:check: Comprueba que la versión en package.json y src/version.ts coinciden

Opción 2: Docker

  1. Construye la imagen de Docker:

    docker build -t discogs-mcp-server:latest .
    
  2. Ejecuta el contenedor:

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

    Para el modo de transporte de transmisión HTTP:

    # 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
    

Inspección

Ejecuta el MCP Inspector para probar tu servidor MCP local:

pnpm run inspect

Esto iniciará el MCP Inspector en http://127.0.0.1:6274. Visita esta URL en tu navegador para interactuar con tu servidor MCP local.

Para más información sobre el MCP Inspector, visita la documentación oficial.

Clientes MCP

Se añadirán más ejemplos de clientes en el futuro. Si deseas configuración para un cliente específico, ya sea solicítalo abriendo un nuevo issue o creando un pull request para editar esta sección del README tú mismo.

Configuración de Claude Desktop

Encuentra tu claude_desktop_config.json en Claude > Settings > Developer > Edit Config y, dependiendo de la opción que prefieras, añade SOLO UNA de las siguientes:

NPX

Ejecutándolo directamente desde el registro npm.

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

Node local

Las dependencias deberían haberse instalado antes de 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

La imagen docker debería haberse construido 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"
      ]
    }
  }
}

Cualquier cambio en el código local requerirá reiniciar Claude para que surta efecto. Además, Claude requiere interacción humana en el bucle para permitir que se ejecute una herramienta MCP, por lo que cada vez que se acceda a una nueva herramienta, Claude pedirá permiso. Normalmente solo tienes que hacerlo una vez por herramienta por chat. Si usas la versión gratuita, los chats largos pueden provocar errores más frecuentes al intentar ejecutar herramientas, ya que Claude limita la cantidad de contexto dentro de un solo chat.

LibreChat

En el archivo de configuración librechat.yaml, añade esto bajo la sección mcpServers:

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

LM Studio

Ve al Settings del Chat. En la pestaña Program habrá un menú desplegable con un valor predeterminado de Install. Selecciona Edit mcp.json. Añade esto bajo la sección mcpServers:

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

Después de Guardar, en la pestaña Program ahora debería haber un interruptor mcp/discogs para habilitar el servidor. Dentro de cada cuadro de chat hay un menú Integrations donde también puedes habilitar servidores mcp.

PENDIENTE

  • Soporte OAuth
  • Herramientas faltantes:
    • Carga de inventario

Licencia

Este servidor MCP está licenciado bajo la Licencia MIT. Esto significa que eres libre de usar, modificar y distribuir el software, sujeto a los términos y condiciones de la Licencia MIT. Para más detalles, consulta el archivo LICENSE en el repositorio del proyecto.