Skip to main content
Glama
rianvdm
by rianvdm

🎵 Discogs MCP Server

Version License: MIT TypeScript Cloudflare Workers MCP

Deploy to Cloudflare

Мощный сервер Model Context Protocol (MCP), который позволяет ИИ-ассистентам взаимодействовать с вашей личной музыкальной коллекцией Discogs. Построен на Cloudflare Workers с использованием официальных Cloudflare Agents SDK и @modelcontextprotocol/sdk.

✨ Возможности

  • 🔐 Безопасная OAuth-аутентификация: Подключите свой аккаунт Discogs безопасно

  • 🧠 Интеллектуальное сопоставление настроения: Переводите эмоции в музыку («мелодично», «энергично», «воскресный вечер»)

  • 🔍 Продвинутый поисковый интеллект: Многостратегический поиск с логикой ИЛИ и оценкой релевантности

  • 📊 Аналитика коллекции: Всесторонняя статистика и аналитика вашей музыки

  • 🎯 Контекстно-зависимые рекомендации: Умные предложения на основе настроения, жанра и схожести

  • Пограничные вычисления: Глобальные ответы с низкой задержкой через Cloudflare Workers

  • 🗂️ Умное кэширование: Интеллектуальное кэширование на основе KV для оптимальной производительности

  • 🔄 Фоновая синхронизация коллекции: Задача, выполняемая каждые 6 часов, сохраняет снимок вашей коллекции в KV, так что поиск отвечает из снимка, а не пролистывает Discogs при каждом запросе

Related MCP server: navigravity

⚠️ Это не общий сервис

discogs-mcp.com — это частный экземпляр сопровождающего. Он привязан к одному аккаунту Discogs и вернёт 403 для любого другого пользователя.

Почему? Ограничение скорости API Discogs (60 запросов в минуту, считается по исходному IP) слишком жёсткое для совместного использования несколькими пользователями. Один активный запрос коллекции от одного пользователя может его исчерпать. Вместо того чтобы запускать сломанный мультитенантный сервис, каждый пользователь развёртывает свой собственный Worker со своими учётными данными API Discogs.

Хорошая новость: развернуть собственную копию несложно, она работает на бесплатном тарифе Cloudflare Workers и занимает около 10 минут. См. Самостоятельное развёртывание ниже.

🚀 Самостоятельное развёртывание

Самый быстрый путь — кнопка Deploy to Cloudflare выше. Она клонирует этот репозиторий в ваш аккаунт GitHub, создаёт пространства имён KV и Durable Object в вашем аккаунте Cloudflare, запрашивает три секрета и настраивает Workers Builds, так что будущие пуши в ваш форк будут автоматически переразвёртываться.

1. Зарегистрируйте приложение разработчика Discogs

Перейдите на discogs.com/settings/developersCreate an Application. Назовите его как угодно; URL обратного вызова пока можно оставить как заполнитель (вы вернётесь и установите его после развёртывания Worker). Сохраните Consumer Key и Consumer Secret — вы вставите их на следующем шаге.

2. Нажмите кнопку

Deploy to Cloudflare

При появлении запроса вставьте:

Секрет

Значение

DISCOGS_CONSUMER_KEY

из шага 1

DISCOGS_CONSUMER_SECRET

из шага 1

JWT_SECRET

любая случайная строка — подойдёт openssl rand -hex 32

После завершения развёртывания Cloudflare покажет URL вашего Worker — что-то вроде https://discogs-mcp.<ваш-поддомен>.workers.dev. Конечная точка MCP — /mcp.

3. Обновите URL обратного вызова вашего приложения Discogs

Вернитесь в ваше приложение Discogs и установите Callback URL на:

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

4. (Необязательно, но рекомендуется) Привяжите экземпляр к вашему пользователю Discogs

По умолчанию любой, кто обнаружит URL вашего Worker, может аутентифицироваться и использовать ваш лимит скорости Discogs. Чтобы ограничить доступ, отредактируйте wrangler.toml в вашем форке и установите ALLOWED_DISCOGS_USER_ID в разделе [vars]:

[vars]
# Single user
ALLOWED_DISCOGS_USER_ID = "123456"

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

Найдите свой числовой ID, перейдя по адресу https://api.discogs.com/users/<ваше-имя-пользователя> и посмотрев поле id. Отправьте изменения — Workers Builds переразвернётся автоматически.

5. Подключите ваш MCP-клиент

Замените https://your-worker.workers.dev ниже на ваш собственный URL.

Claude Desktop — Настройки → Интеграции → Добавить интеграцию → https://your-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 / Generic:

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

MCP Inspector (тестирование):

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

Ручное развёртывание (альтернатива)

Если вы предпочитаете обойтись без кнопки — например, хотите полностью локальный клон или у вас аккаунт Cloudflare, где кнопка не работает:

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

Затем выполните шаги 3–5 выше (URL обратного вызова, необязательный белый список, подключение MCP-клиента).

Необязательно: направляйте запросы к Discogs через ваш собственный IP

Discogs ограничивает по исходному IP, а исходящие запросы Worker отправляются с общих исходящих IP Cloudflare, поэтому другие Workers, обращающиеся к Discogs с того же места, расходуют ваши 60 запросов в минуту. Это можно заметить, когда первый запрос после нескольких часов простоя уже показывает низкое значение X-Discogs-Ratelimit-Remaining. Если это мешает, направьте Worker через ретранслятор, который вы запускаете: Cloudflare Tunnel на любую постоянно работающую машину (домашний Mac, небольшой VPS) с локальным обратным прокси, который перенаправляет на https://api.discogs.com и устанавливает оба заголовка Host и X-Forwarded-Host в api.discogs.com (один cloudflared не может, он перезаписывает X-Forwarded-Host). Поместите приложение Cloudflare Access с политикой сервисного токена перед именем хоста туннеля, затем:

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

Оставьте DISCOGS_RELAY_ORIGIN пустым, чтобы обращаться к Discogs напрямую (по умолчанию). Если ретранслятор недоступен, Worker для этого запроса переключается на прямые вызовы и логирует это, так что выключенная машина приводит к поведению общего IP, а не к сбою. Реализация и обоснование: src/rate-limiter/relay.ts.

🔐 Аутентификация

Этот сервер использует MCP OAuth 2.1 с Discogs в качестве поставщика удостоверений. При первом подключении:

  1. Ваш MCP-клиент автоматически открывает окно браузера

  2. Авторизуйте приложение на Discogs

  3. Вы будете перенаправлены обратно и аутентифицированы — копировать и вставлять не требуется

  4. Ваша сессия сохраняется на 7 дней

🛠️ Доступные инструменты

🔓 Публичные инструменты (аутентификация не требуется)

Инструмент

Описание

ping

Проверка подключения к серверу

server_info

Получение информации о сервере и его возможностях

auth_status

Проверка статуса аутентификации и получение инструкций по входу

🔐 Инструменты, требующие аутентификации (требуется вход)

Поиск и обнаружение

Инструмент

Описание

search_collection

Поиск в вашей коллекции с явными фильтрами по жанрам, ранжированием по настроению и дедупликацией на уровне мастер-релизов

search_discogs

Поиск по всему каталогу Discogs (релизы, мастер-релизы, исполнители, лейблы) — отмечает результаты, которые у вас уже есть

get_release

Получение подробной информации о конкретном релизе (треклист, форматы, лейблы)

get_collection_stats

Просмотр разбивки по жанрам, анализ по десятилетиям, распределение форматов и оценки

get_recommendations

Получение персонализированных рекомендаций по жанру, десятилетию, настроению или схожести

Управление коллекцией

Инструмент

Описание

add_to_collection

Добавление релиза в папку (по умолчанию — Без категории)

remove_from_collection

Удаление конкретного экземпляра релиза из папки

move_release

Перемещение экземпляра релиза между папками

rate_release

Оценка релиза от 0 (без оценки) до 5 звёзд

Список желаемого

Инструмент

Описание

get_wantlist

Список релизов в вашем списке желаемого (с постраничной навигацией)

add_to_wantlist

Добавление релиза в список желаемого

remove_from_wantlist

Удаление релиза из списка желаемого

Папки

Инструмент

Описание

list_folders

Список всех папок с количеством релизов

create_folder

Создание новой папки

edit_folder

Переименование существующей папки (системные папки исключены)

delete_folder

Удаление пустой папки (системные папки исключены)

Пользовательские поля

Инструмент

Описание

list_custom_fields

Список всех пользовательских полей, определённых в вашей коллекции

edit_custom_field

Установка значения пользовательского поля для конкретного экземпляра релиза

Диагностика

Инструмент

Описание

get_cache_stats

Просмотр производительности кэша (всего записей, ожидающих запросов, разбивка)

refresh_collection

Принудительное полное обновление снимка коллекции сейчас, вместо ожидания 6-часовой синхронизации

📚 MCP-ресурсы

Доступ к данным Discogs через стандартизированные URI ресурсов MCP:

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

💬 MCP-подсказки

Подсказка

Описание

Аргументы

browse_collection

Просмотр и изучение вашей коллекции

find_music

Поиск конкретной музыки в вашей коллекции

query

collection_insights

Получение аналитики и статистики по коллекции

🏗️ Локальная разработка

# 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

Блок [vars] по умолчанию в wrangler.toml оставляет ALLOWED_DISCOGS_USER_ID пустым, поэтому локальная разработка открыта для любого аккаунта Discogs — удобно для тестирования.

🧪 Тестирование

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

Диагностика

ping и server_info сообщают, как трафик Discogs покидает сервер (напрямую или через ретранслятор, описанный выше) и переключился ли ретранслятор на прямые вызовы. Для просмотра текущего состояния ограничителя скорости — оставшегося бюджета, глубины очереди, статуса автоматического выключателя, переключений ретранслятора — установите секрет DEBUG_TOKEN и вызовите GET /debug/budget?token=<DEBUG_TOKEN>; без секрета конечная точка возвращает 404.

🤝 Вклад в проект

  1. Сделайте форк репозитория

  2. Создайте ветку для вашей функции (git checkout -b feature/amazing-feature)

  3. Зафиксируйте изменения (git commit -m 'Add amazing feature')

  4. Отправьте изменения в ветку (git push origin feature/amazing-feature)

  5. Откройте Pull Request

📄 Лицензия

Лицензия MIT — см. файл LICENSE для подробностей.

🙏 Благодарности

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