Discogs MCP Server
🎵 Discogs MCP Server
Мощный Model Context Protocol (MCP) сервер, который позволяет AI-ассистентам взаимодействовать с вашей личной музыкальной коллекцией Discogs. Построен на Cloudflare Workers с использованием официального Cloudflare Agents SDK и @modelcontextprotocol/sdk.
✨ Возможности
🔐 Безопасная OAuth-аутентификация: Подключайте свой аккаунт Discogs безопасно
🧠 Интеллектуальное сопоставление настроения: Переводите эмоции в музыку («нежный», «энергичный», «воскресный вечер»)
🔍 Продвинутый поисковый интеллект: Многостратегический поиск с OR-логикой и оценкой релевантности
📊 Аналитика коллекции: Всесторонняя статистика и аналитика о вашей музыке
🎯 Контекстные рекомендации: Умные предложения на основе настроения, жанра и схожести
⚡ Edge-вычисления: Глобальные ответы с низкой задержкой через Cloudflare Workers
🗂️ Умное кэширование: Интеллектуальное кэширование на основе KV для оптимальной производительности
🔄 Фоновая синхронизация коллекции: Задача каждые 6 часов сохраняет снимок вашей коллекции в KV, поэтому поиск отвечает из снимка, а не перелистывает Discogs при каждом вызове
Related MCP server: 1001 Albums Generator MCP
⚠️ Это не общий сервис
discogs-mcp.com — это личный экземпляр сопровождающего. Он привязан к одному аккаунту Discogs и вернёт 403 для любого другого пользователя.
Почему? Лимит скорости API Discogs (60 запросов в минуту, считается по исходному IP) слишком тесен, чтобы делить его между пользователями. Один активный запрос коллекции от одного пользователя может его насытить. Вместо того чтобы запускать сломанный мультитенантный сервис, каждый пользователь разворачивает свой собственный Worker со своими учётными данными Discogs API.
Хорошая новость: развернуть собственную копию несложно, она работает на бесплатном тарифе Cloudflare Workers и занимает около 10 минут. См. Самозапуск ниже.
🚀 Самозапуск
Самый быстрый путь — кнопка Deploy to Cloudflare выше. Она клонирует этот репозиторий в ваш аккаунт GitHub, создаёт пространства имён KV и Durable Object в вашем аккаунте Cloudflare, запрашивает три секрета и настраивает Workers Builds, чтобы будущие пуши в ваш форк автоматически переразвёртывались.
1. Зарегистрируйте приложение разработчика Discogs
Перейдите на discogs.com/settings/developers → Create an Application. Назовите его как угодно; Callback URL пока может быть заглушкой (вы вернётесь и установите его после развёртывания Worker). Сохраните Consumer Key и Consumer Secret — вы вставите их на следующем шаге.
2. Нажмите кнопку
При появлении запроса вставьте:
Секрет | Значение |
| из шага 1 |
| из шага 1 |
| любая случайная строка — подойдёт |
После завершения развёртывания Cloudflare покажет URL вашего Worker — что-то вроде https://discogs-mcp.<ваш-поддомен>.workers.dev. Конечная точка MCP — /mcp.
3. Обновите callback 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 выше (callback URL, необязательный список разрешённых, подключение MCP-клиента).
Необязательно: маршрутизация вызовов Discogs через ваш собственный IP
Discogs ограничивает по исходному IP, а исходящие запросы Worker покидают общие исходящие IP Cloudflare, поэтому другие Worker, обращающиеся к 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.
Размер коллекции и бесплатный тариф
Ограничение бесплатного тарифа, которое здесь важно, — это время CPU: 10 мс на вызов, как для вызовов инструментов, так и для фоновой синхронизации. Синхронизация сохраняет по одной странице за раз, чтобы оставаться в пределах лимита, а создаваемый снимок хранит только те поля, которые нужны для поиска (около 450 байт на релиз). Это с комфортом покрывает коллекции примерно до 2000 релизов. После этого чтение снимка при каждом поиске начинает перегружать бюджет, и коллекция из 4000+ релизов может привести к сбою search_collection или refresh_collection с голой ошибкой выполнения и без сообщения — это среда выполнения завершает вызов, а не ошибка Discogs. Решение — Workers Paid ($5/месяц), который поднимает бюджет до 30 секунд; больше ничего в развёртывании не меняется.
Независимо от тарифа, get_cache_stats сообщает количество элементов снимка и время его получения, а также количество страниц любой выполняющейся синхронизации, так что вы можете видеть, выполняется ли фоновая синхронизация, а не делать выводы по количеству записей в кэше.
🔐 Аутентификация
Этот сервер использует 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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
The media memory layer for AI agents and their humans. Your AI client gets 29 tools to search your collection, add items, update ratings, preview music, and find patterns across everything you've read, watched, and listened to.
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Scrape Discogs music releases, artists, labels, formats and catalogue numbers. Pay per row.
AI assistant integration for Leaf — track books, log reading sessions, and manage your library.
Related MCP Servers
- AlicenseCqualityAmaintenanceEnables interactions with the Discogs API for music catalog operations and search functionality, allowing users to manage their Discogs collections through natural language.5396120MIT
- AlicenseNot gradedqualityDmaintenanceConnects the 1001 Albums Generator dataset to AI assistants, enabling natural language exploration of your listening journey, taste analysis, and group comparisons.ISC
- AlicenseNot gradedqualityAmaintenanceEnables finding the best-sounding pressing of an album and mood- and taste-based music recommendations via Discogs.2MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to search, manage, and analyze personal Discogs music collections with features like mood-based recommendations, advanced search, and collection analytics.15MIT
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/DirtyDimmy/discogs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server