Skip to main content
Glama
rianvdm
by rianvdm

🎵 Servidor MCP de Discogs

Versión Licencia: MIT TypeScript Cloudflare Workers MCP

Desplegar en Cloudflare

Un potente servidor de Protocolo de Contexto de Modelo (MCP) que permite a los asistentes de IA interactuar con tu colección personal de música de Discogs. Construido sobre Cloudflare Workers utilizando el Cloudflare Agents SDK oficial y @modelcontextprotocol/sdk.

✨ Características

  • 🔐 Autenticación OAuth segura: Conecta tu cuenta de Discogs de forma segura

  • 🧠 Mapeo inteligente de estados de ánimo: Traduce emociones en música ("tranquilo", "enérgico", "vibraciones de domingo por la noche")

  • 🔍 Inteligencia de búsqueda avanzada: Estrategia de búsqueda múltiple con lógica OR y puntuación de relevancia

  • 📊 Analíticas de colección: Estadísticas completas e información sobre tu música

  • 🎯 Recomendaciones conscientes del contexto: Sugerencias inteligentes basadas en estado de ánimo, género y similitud

  • Computación en el borde: Respuestas globales de baja latencia mediante Cloudflare Workers

  • 🗂️ Caché inteligente: Caché basada en KV para un rendimiento óptimo

  • 🔄 Sincronización de colección en segundo plano: Un trabajo cada 6 horas mantiene una instantánea de tu colección en KV, para que las búsquedas respondan desde la instantánea en lugar de paginar a través de Discogs en cada llamada

Related MCP server: navigravity

⚠️ Esto no es un servicio compartido

discogs-mcp.com es la instancia privada del mantenedor. Está bloqueada para una sola cuenta de Discogs y devolverá un 403 para cualquier otra persona.

¿Por qué? El límite de tasa de la API de Discogs (60 solicitudes por minuto, contadas por IP de origen) es demasiado ajustado para compartirlo entre usuarios. Una sola consulta activa de colección de un usuario puede saturarlo. En lugar de ejecutar un servicio multiinquilino defectuoso, cada usuario despliega su propio Worker con sus propias credenciales de API de Discogs.

La buena noticia: desplegar tu propia copia es sencillo, se ejecuta en el nivel gratuito de Cloudflare Workers y toma unos 10 minutos. Consulta Autoalojamiento más abajo.

🚀 Autoalojamiento

La ruta más rápida es el botón Desplegar en Cloudflare de arriba. Clona este repositorio en tu cuenta de GitHub, aprovisiona los espacios de nombres KV y el Objeto Duradero en tu cuenta de Cloudflare, te pide los tres secretos y configura Workers Builds para que futuros envíos a tu bifurcación se redesplieguen automáticamente.

1. Registra una aplicación de desarrollador de Discogs

Ve a discogs.com/settings/developersCrear una aplicación. Ponle cualquier nombre; la URL de devolución de llamada puede ser un marcador de posición por ahora (volverás y la configurarás después de desplegar el Worker). Guarda la Clave de Consumidor y el Secreto de Consumidor — los pegarás a continuación.

2. Haz clic en el botón

Desplegar en Cloudflare

Cuando se te solicite, pega:

Secreto

Valor

DISCOGS_CONSUMER_KEY

del paso 1

DISCOGS_CONSUMER_SECRET

del paso 1

JWT_SECRET

cualquier cadena aleatoria — openssl rand -hex 32 funciona

Después de que el despliegue se complete, Cloudflare muestra la URL de tu Worker — algo como https://discogs-mcp.<tu-subdominio>.workers.dev. El endpoint MCP es /mcp.

3. Actualiza la URL de devolución de llamada de tu aplicación de Discogs

Vuelve a tu aplicación de Discogs y establece la URL de devolución de llamada a:

https://discogs-mcp.<your-subdomain>.workers.dev/discogs-callback

4. (Opcional pero recomendado) Bloquea tu instancia a tu propio usuario de Discogs

Por defecto, cualquiera que descubra la URL de tu Worker puede autenticarse y consumir tu presupuesto de límite de tasa de Discogs. Para restringirlo, edita wrangler.toml en tu bifurcación y establece ALLOWED_DISCOGS_USER_ID bajo [vars]:

[vars]
# Single user
ALLOWED_DISCOGS_USER_ID = "123456"

# Or a comma-separated list for multiple users
ALLOWED_DISCOGS_USER_ID = "123456,789012,345678"

Encuentra tu ID numérico visitando https://api.discogs.com/users/<tu-nombre-de-usuario> y mirando el campo id. Sube el cambio — Workers Builds se redespliega automáticamente.

5. Conecta tu cliente MCP

Reemplaza https://tu-worker.workers.dev abajo con tu propia URL.

Claude Desktop — Configuración → Integraciones → Añadir Integración → https://tu-worker.workers.dev/mcp

Claude Code:

claude mcp add --transport http discogs https://your-worker.workers.dev/mcp

Windsurf (~/.codeium/windsurf/mcp_config.json):

{
  "mcpServers": {
    "discogs": {
      "serverUrl": "https://your-worker.workers.dev/mcp"
    }
  }
}

Continue.dev / Zed / Genérico:

{
  "mcpServers": {
    "discogs": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://your-worker.workers.dev/mcp"]
    }
  }
}

Inspector MCP (pruebas):

npx @modelcontextprotocol/inspector https://your-worker.workers.dev/mcp

Despliegue manual (alternativa)

Si prefieres saltarte el botón — por ejemplo, quieres un clon completamente local o estás en una cuenta de Cloudflare donde el botón no funciona:

git clone https://github.com/rianvdm/discogs-mcp.git
cd discogs-mcp
npm install

# Create the two KV namespaces and copy the returned IDs into wrangler.toml
# (replace the empty `id = ""` values under the top-level [[kv_namespaces]] blocks)
wrangler kv namespace create MCP_SESSIONS
wrangler kv namespace create OAUTH_KV

# Set the three secrets
wrangler secret put DISCOGS_CONSUMER_KEY
wrangler secret put DISCOGS_CONSUMER_SECRET
wrangler secret put JWT_SECRET

# Deploy
npm run deploy

Luego sigue los pasos 3–5 de arriba (URL de devolución de llamada, lista blanca opcional, conecta tu cliente MCP).

Opcional: enrutar llamadas a Discogs a través de tu propia IP

Discogs limita por IP de origen, y las solicitudes salientes de un Worker salen de las IPs de salida compartidas de Cloudflare, por lo que otros Workers que hablen con Discogs desde la misma ubicación consumen tus 60 solicitudes por minuto. Puedes ver esto cuando una primera solicitud después de horas de inactividad ya reporta un X-Discogs-Ratelimit-Remaining bajo. Si te afecta, apunta el Worker a un relé que tú ejecutes: un Cloudflare Tunnel a cualquier máquina siempre encendida (un Mac en casa, un VPS pequeño) con un proxy inverso local que reenvíe a https://api.discogs.com y establezca tanto Host como X-Forwarded-Host a api.discogs.com (cloudflared solo no puede, sobrescribe X-Forwarded-Host). Pon una aplicación de Cloudflare Access con una política de token de servicio delante del nombre de host del túnel, luego:

# wrangler.toml: DISCOGS_RELAY_ORIGIN = "https://relay.example.com"
wrangler secret put RELAY_ACCESS_CLIENT_ID
wrangler secret put RELAY_ACCESS_CLIENT_SECRET

Deja DISCOGS_RELAY_ORIGIN vacío para llamar a Discogs directamente (el valor predeterminado). Si el relé es inalcanzable, el Worker recurre a llamadas directas para esa solicitud y lo registra, por lo que una máquina apagada degrada al comportamiento de IP compartida en lugar de una interrupción. Implementación y justificación: src/rate-limiter/relay.ts.

🔐 Autenticación

Este servidor utiliza MCP OAuth 2.1 con Discogs como proveedor de identidad. Cuando te conectas por primera vez:

  1. Tu cliente MCP abre automáticamente una ventana del navegador

  2. Autoriza la aplicación en Discogs

  3. Eres redirigido de vuelta y autenticado — sin necesidad de copiar y pegar

  4. Tu sesión persiste durante 7 días

🛠️ Herramientas disponibles

🔓 Herramientas públicas (sin autenticación requerida)

Herramienta

Descripción

ping

Probar conectividad del servidor

server_info

Obtener información del servidor y capacidades

auth_status

Verificar estado de autenticación y obtener instrucciones de inicio de sesión

🔐 Herramientas autenticadas (requieren inicio de sesión)

Búsqueda y descubrimiento

Herramienta

Descripción

search_collection

Buscar en tu colección con filtros explícitos de género, clasificación consciente del estado de ánimo y deduplicación a nivel de maestro

search_discogs

Buscar en el catálogo global de Discogs (lanzamientos, maestros, artistas, sellos) — marca los resultados que ya posees

get_release

Obtener información detallada sobre un lanzamiento específico (lista de pistas, formatos, sellos)

get_collection_stats

Ver desglose de géneros, análisis por década, distribución de formatos y valoraciones

get_recommendations

Obtener recomendaciones personalizadas por género, década, estado de ánimo o similitud

Gestión de colección

Herramienta

Descripción

add_to_collection

Añadir un lanzamiento a una carpeta (por defecto Sin categorizar)

remove_from_collection

Eliminar una instancia específica de lanzamiento de una carpeta

move_release

Mover una instancia de lanzamiento entre carpetas

rate_release

Valorar un lanzamiento de 0 (sin valoración) a 5 estrellas

Lista de deseos

Herramienta

Descripción

get_wantlist

Listar lanzamientos en tu lista de deseos (paginado)

add_to_wantlist

Añadir un lanzamiento a tu lista de deseos

remove_from_wantlist

Eliminar un lanzamiento de tu lista de deseos

Carpetas

Herramienta

Descripción

list_folders

Listar todas las carpetas con conteos de lanzamientos

create_folder

Crear una nueva carpeta

edit_folder

Renombrar una carpeta existente (carpetas del sistema excluidas)

delete_folder

Eliminar una carpeta vacía (carpetas del sistema excluidas)

Campos personalizados

Herramienta

Descripción

list_custom_fields

Listar todos los campos personalizados definidos en tu colección

edit_custom_field

Establecer un valor de campo personalizado en una instancia de lanzamiento específica

Diagnóstico

Herramienta

Descripción

get_cache_stats

Ver rendimiento de caché (entradas totales, solicitudes pendientes, desglose)

refresh_collection

Forzar una actualización completa de la instantánea de la colección ahora, en lugar de esperar la sincronización de 6 horas

📚 Recursos MCP

Accede a datos de Discogs a través de URIs de recursos MCP estandarizados:

discogs://collection             # Complete collection (JSON)
discogs://release/{id}           # Specific release details
discogs://search?q={query}       # Search results

💬 Prompts MCP

Prompt

Descripción

Argumentos

browse_collection

Navegar y explorar tu colección

find_music

Encontrar música específica en tu colección

query

collection_insights

Obtener información y estadísticas sobre tu colección

🏗️ Desarrollo local

# Dev secrets live in .dev.vars (gitignored); the same Discogs app is fine for dev
cp .dev.vars.example .dev.vars   # then fill in DISCOGS_CONSUMER_KEY, DISCOGS_CONSUMER_SECRET, JWT_SECRET

# Run the Worker locally
npm run dev

# Test with MCP Inspector
npx @modelcontextprotocol/inspector http://localhost:8787/mcp

El bloque [vars] predeterminado en wrangler.toml deja ALLOWED_DISCOGS_USER_ID vacío, por lo que el desarrollo local está abierto a cualquier cuenta de Discogs — conveniente para pruebas.

🧪 Pruebas

npm test              # vitest in watch mode (runs in workerd via @cloudflare/vitest-pool-workers)
npx vitest run        # one pass, then exit
npm run lint          # ESLint; CI runs lint, test, and a dry-run build

Diagnóstico

ping y server_info informan cómo sale el tráfico de Discogs (directo, o a través del relé descrito anteriormente) y si el relé ha recurrido a llamadas directas. Para el estado en vivo del limitador de tasa — presupuesto restante, profundidad de cola, estado del interruptor automático, fallos del relé — establece un secreto DEBUG_TOKEN y llama a GET /debug/budget?token=<DEBUG_TOKEN>; sin el secreto el endpoint devuelve 404.

🤝 Contribuciones

  1. Haz un fork del repositorio

  2. Crea tu rama de características (git checkout -b feature/caracteristica-increible)

  3. Haz commit de tus cambios (git commit -m 'Añadir característica increíble')

  4. Sube a la rama (git push origin feature/caracteristica-increible)

  5. Abre una Solicitud de Extracción

📄 Licencia

Licencia MIT - consulta el archivo LICENSE para más detalles.

🙏 Agradecimientos

A
license - permissive license
-
quality - not tested
A
maintenance

Maintenance

Maintainers
<1hResponse time
2wRelease cycle
16Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    B
    maintenance
    A Model Context Protocol (MCP) server for Last.fm. Gives AI assistants access to your listening history, music discovery, and detailed track/artist/album information.
    43
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An intelligent MCP server that enables AI agents to act as sophisticated music curators for self-hosted Navidrome libraries, focusing on quality, discovery, and non-destructive management.
    15
    1
    MIT
  • A
    license
    -
    quality
    B
    maintenance
    A Model Context Protocol server that gives AI assistants access to your self-hosted Audiobookshelf library, enabling queries about current listening, searching, and browsing.
    1
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    MCP server that enables AI assistants to interact with a personal Discogs music collection, supporting search, collection management, wantlist, folders, custom fields, and recommendations via Cloudflare Workers.
    MIT

View all related MCP servers

Related MCP Connectors

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • MCP server for Producer/Riffusion AI music generation

  • MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rianvdm/discogs-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server