Skip to content

A Discogs MCP Server with OAuth, to use with your favorite LLM client. Ask for recommendations, stats about your collection, details about releases you own, and more!

License

Notifications You must be signed in to change notification settings

rianvdm/discogs-mcp

Repository files navigation

🎡 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 β†’ Settings β†’ Integrations
  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)

Tool Description
ping Test server connectivity
server_info Get server information and capabilities
auth_status Check authentication status and get login instructions

πŸ” Authenticated Tools (Requires Login)

Tool Description
search_collection Search your collection with intelligent mood and genre matching
get_release Get detailed information about a specific release
get_collection_stats View comprehensive collection statistics
get_recommendations Get context-aware music recommendations
get_cache_stats Monitor 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 LICENSE file for details.

πŸ™ Acknowledgments

About

A Discogs MCP Server with OAuth, to use with your favorite LLM client. Ask for recommendations, stats about your collection, details about releases you own, and more!

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •