Discogs MCP Server
🎵 Discogs MCP Server
Мощный сервер 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/developers → Create an Application. Назовите его как угодно; URL обратного вызова пока можно оставить как заполнитель (вы вернётесь и установите его после развёртывания Worker). Сохраните Consumer Key и Consumer Secret — вы вставите их на следующем шаге.
2. Нажмите кнопку
При появлении запроса вставьте:
Секрет | Значение |
| из шага 1 |
| из шага 1 |
| любая случайная строка — подойдёт |
После завершения развёртывания Cloudflare покажет URL вашего Worker — что-то вроде https://discogs-mcp.<ваш-поддомен>.workers.dev. Конечная точка MCP — /mcp.
3. Обновите URL обратного вызова вашего приложения Discogs
Вернитесь в ваше приложение Discogs и установите Callback URL на:
https://discogs-mcp.<your-subdomain>.workers.dev/discogs-callback4. (Необязательно, но рекомендуется) Привяжите экземпляр к вашему пользователю 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/mcpWindsurf (~/.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 в качестве поставщика удостоверений. При первом подключении:
Ваш MCP-клиент автоматически открывает окно браузера
Авторизуйте приложение на Discogs
Вы будете перенаправлены обратно и аутентифицированы — копировать и вставлять не требуется
Ваша сессия сохраняется на 7 дней
🛠️ Доступные инструменты
🔓 Публичные инструменты (аутентификация не требуется)
Инструмент | Описание |
| Проверка подключения к серверу |
| Получение информации о сервере и его возможностях |
| Проверка статуса аутентификации и получение инструкций по входу |
🔐 Инструменты, требующие аутентификации (требуется вход)
Поиск и обнаружение
Инструмент | Описание |
| Поиск в вашей коллекции с явными фильтрами по жанрам, ранжированием по настроению и дедупликацией на уровне мастер-релизов |
| Поиск по всему каталогу Discogs (релизы, мастер-релизы, исполнители, лейблы) — отмечает результаты, которые у вас уже есть |
| Получение подробной информации о конкретном релизе (треклист, форматы, лейблы) |
| Просмотр разбивки по жанрам, анализ по десятилетиям, распределение форматов и оценки |
| Получение персонализированных рекомендаций по жанру, десятилетию, настроению или схожести |
Управление коллекцией
Инструмент | Описание |
| Добавление релиза в папку (по умолчанию — Без категории) |
| Удаление конкретного экземпляра релиза из папки |
| Перемещение экземпляра релиза между папками |
| Оценка релиза от 0 (без оценки) до 5 звёзд |
Список желаемого
Инструмент | Описание |
| Список релизов в вашем списке желаемого (с постраничной навигацией) |
| Добавление релиза в список желаемого |
| Удаление релиза из списка желаемого |
Папки
Инструмент | Описание |
| Список всех папок с количеством релизов |
| Создание новой папки |
| Переименование существующей папки (системные папки исключены) |
| Удаление пустой папки (системные папки исключены) |
Пользовательские поля
Инструмент | Описание |
| Список всех пользовательских полей, определённых в вашей коллекции |
| Установка значения пользовательского поля для конкретного экземпляра релиза |
Диагностика
Инструмент | Описание |
| Просмотр производительности кэша (всего записей, ожидающих запросов, разбивка) |
| Принудительное полное обновление снимка коллекции сейчас, вместо ожидания 6-часовой синхронизации |
📚 MCP-ресурсы
Доступ к данным Discogs через стандартизированные URI ресурсов MCP:
discogs://collection # Complete collection (JSON)
discogs://release/{id} # Specific release details
discogs://search?q={query} # Search results💬 MCP-подсказки
Подсказка | Описание | Аргументы |
| Просмотр и изучение вашей коллекции | |
| Поиск конкретной музыки в вашей коллекции |
|
| Получение аналитики и статистики по коллекции |
🏗️ Локальная разработка
# 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.
🤝 Вклад в проект
Сделайте форк репозитория
Создайте ветку для вашей функции (
git checkout -b feature/amazing-feature)Зафиксируйте изменения (
git commit -m 'Add amazing feature')Отправьте изменения в ветку (
git push origin feature/amazing-feature)Откройте Pull Request
📄 Лицензия
Лицензия MIT — см. файл LICENSE для подробностей.
🙏 Благодарности
Discogs для API базы данных музыки
Model Context Protocol для стандарта
Cloudflare Workers для платформы
This server cannot be installed
Maintenance
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
- Alicense-qualityBmaintenanceA Model Context Protocol (MCP) server for Last.fm. Gives AI assistants access to your listening history, music discovery, and detailed track/artist/album information.43MIT
- AlicenseAqualityDmaintenanceAn 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.151MIT
- Alicense-qualityBmaintenanceA Model Context Protocol server that gives AI assistants access to your self-hosted Audiobookshelf library, enabling queries about current listening, searching, and browsing.1MIT
- Alicense-qualityCmaintenanceMCP 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
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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