discogs-mcp

mcp
Security Audit
Warn
Health Warn
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 8 GitHub stars
Code Warn
  • network request — Outbound network request in src/auth/oauth-handler.ts
  • network request — Outbound network request in src/clients/cachedDiscogs.ts
  • network request — Outbound network request in src/clients/discogs.ts
  • network request — Outbound network request in src/index-oauth.ts
  • network request — Outbound network request in src/index.ts
Permissions Pass
  • Permissions — No dangerous permissions requested
Purpose
This server connects AI assistants to a user's personal Discogs music collection using the Model Context Protocol (MCP). It allows users to search for music, get context-aware recommendations based on mood, and retrieve analytics about their collection.

Security Assessment
Overall Risk: Low. The tool makes outbound network requests, which are entirely expected and necessary to communicate with the Discogs API and handle OAuth authentication. It does not execute arbitrary shell commands or request dangerous system permissions. The OAuth implementation means it accesses sensitive user data (a user's personal music collection and profile), but it uses standard security practices to protect this information. There are no hardcoded secrets or flags for malicious activity in the automated scan.

Quality Assessment
The project appears healthy and professional. It is actively maintained, with its most recent updates pushed today. The code is open-source under the permissive and standard MIT license. However, the tool currently has very low community visibility with only 8 GitHub stars, meaning it has not been widely vetted by a large audience yet.

Verdict
Safe to use, though users should be aware of the standard privacy implications of connecting a third-party application to their Discogs account via OAuth.
SUMMARY

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!

README.md

🎵 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.com/mcp
    
  4. Click Add - authenticate with Discogs when prompted

Claude Code

claude mcp add --transport http discogs https://discogs-mcp.com/mcp

Windsurf

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

{
	"mcpServers": {
		"discogs": {
			"serverUrl": "https://discogs-mcp.com/mcp"
		}
	}
}

MCP Inspector (Testing)

npx @modelcontextprotocol/inspector https://discogs-mcp.com/mcp

Other MCP Clients

Continue.dev / Zed / Generic:

{
	"mcpServers": {
		"discogs": {
			"command": "npx",
			"args": ["-y", "mcp-remote", "https://discogs-mcp.com/mcp"]
		}
	}
}

🔐 Authentication

This server uses MCP OAuth 2.1 with Discogs as the identity provider. When you connect for the first time:

  1. Your MCP client automatically opens a browser window
  2. Authorize the application on Discogs
  3. You're redirected back and authenticated — no copy-pasting required
  4. Your session persists for 7 days

🛠️ 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
    
  3. Start development server:

    npm run dev
    
  4. Test with MCP Inspector:

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

🚀 Deployment

  1. Create KV namespaces and add their IDs to wrangler.toml under [env.production]:

    wrangler kv namespace create MCP_SESSIONS --env production
    wrangler kv namespace create MCP_LOGS --env production
    wrangler kv namespace create MCP_RL --env production
    wrangler kv namespace create OAUTH_KV --env production
    
  2. Set production secrets:

    wrangler secret put DISCOGS_CONSUMER_KEY --env production
    wrangler secret put DISCOGS_CONSUMER_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

Reviews (0)

No results found