discogs-mcp

rianvdm/discogs-mcp

3.3

If you are the rightful owner of discogs-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

Discogs MCP Server is a powerful Model Context Protocol server that allows AI assistants to interact with your personal Discogs music collection, leveraging Cloudflare Workers for global edge computing.

Tools
8
Resources
0
Prompts
0

🎵 Discogs MCP Server

Version License: MIT TypeScript Cloudflare Workers MCP

A powerful Model Context Protocol (MCP) server that enables AI assistants to interact with your personal Discogs music collection. Built on Cloudflare Workers using the official Cloudflare Agents SDK and @modelcontextprotocol/sdk.

✨ Features

  • 🔐 Secure OAuth Authentication: Connect your Discogs account safely
  • 🧠 Intelligent Mood Mapping: Translate emotions into music ("mellow", "energetic", "Sunday evening vibes")
  • 🔍 Advanced Search Intelligence: Multi-strategy search with OR logic and relevance scoring
  • 📊 Collection Analytics: Comprehensive statistics and insights about your music
  • 🎯 Context-Aware Recommendations: Smart suggestions based on mood, genre, and similarity
  • Edge Computing: Global low-latency responses via Cloudflare Workers
  • 🗂️ Smart Caching: Intelligent KV-based caching for optimal performance

🚀 Quick Start

Claude Desktop

  1. Open Claude Desktop → SettingsIntegrations
  2. Click Add Integration
  3. Enter the URL:
    https://discogs-mcp-prod.rian-db8.workers.dev/mcp
    
  4. Click Add - authenticate with Discogs when prompted

Claude Code

claude mcp add --transport http discogs https://discogs-mcp-prod.rian-db8.workers.dev/mcp

Windsurf

Add to your Windsurf MCP config (~/.codeium/windsurf/mcp_config.json):

{
  "mcpServers": {
    "discogs": {
      "serverUrl": "https://discogs-mcp-prod.rian-db8.workers.dev/mcp"
    }
  }
}

MCP Inspector (Testing)

npx @modelcontextprotocol/inspector https://discogs-mcp-prod.rian-db8.workers.dev/mcp

Other MCP Clients

Continue.dev / Zed / Generic:

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

🔐 Authentication

This server uses Discogs OAuth 1.0a for authentication. When you first use a tool that requires access to your collection:

  1. The server generates a unique login URL
  2. Visit the URL and authorize the application on Discogs
  3. You'll be automatically redirected back
  4. Your session persists for 7 days with automatic cross-origin support

🛠️ Available Tools

🔓 Public Tools (No Authentication Required)

ToolDescription
pingTest server connectivity
server_infoGet server information and capabilities
auth_statusCheck authentication status and get login instructions

🔐 Authenticated Tools (Requires Login)

ToolDescription
search_collectionSearch your collection with intelligent mood and genre matching
get_releaseGet detailed information about a specific release
get_collection_statsView comprehensive collection statistics
get_recommendationsGet context-aware music recommendations
get_cache_statsMonitor cache performance (development)

📚 MCP Resources

Access Discogs data via standardized MCP resource URIs:

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

🏗️ Development

Prerequisites

  • Node.js 18+
  • Cloudflare account
  • Discogs Developer Account (for API keys)

Local Setup

  1. Clone and install:

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

    # Set your Discogs API credentials as Wrangler secrets
    wrangler secret put DISCOGS_CONSUMER_KEY
    wrangler secret put DISCOGS_CONSUMER_SECRET
    wrangler secret put JWT_SECRET
    
  3. Start development server:

    npm run dev
    
  4. Test with MCP Inspector:

    npx @modelcontextprotocol/inspector http://localhost:8787/mcp
    

🚀 Deployment

  1. Create KV namespaces:

    npm run setup:prod
    
  2. Set production secrets:

    wrangler secret put DISCOGS_CONSUMER_KEY --env production
    wrangler secret put DISCOGS_CONSUMER_SECRET --env production
    wrangler secret put JWT_SECRET --env production
    
  3. Deploy:

    npm run deploy:prod
    

🧪 Testing

npm test              # Run all tests
npm test -- --watch  # Run tests in watch mode

🤝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

MIT License - see file for details.

🙏 Acknowledgments