MCP

Integrate Music Data with Discogs API

Discogs MCP Server: Access Discogs API for music catalog operations and search. Integrates with AI clients like Claude.

Works with discogsgithubdockerclaudelibrechat

21
Spark score
out of 100
Updated 8 days ago
Version 0.5.7
Models

Add to Favorites

Why it matters

Connect to the Discogs music database to perform catalog operations, search for music, and manage your collection. This asset provides a bridge between your applications and the vast Discogs music data.

Outcomes

What it gets done

01

Access and query the Discogs music database.

02

Search for artists, releases, and labels.

03

Manage and edit your personal music collection.

04

Integrate with various MCP clients like Claude and LibreChat.

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/vb-discogs | bash

Capabilities

Tools your agent gets

search_releases

Search for music releases in the Discogs catalog by title, artist, or other criteria.

search_artists

Search for artists in the Discogs music database.

search_labels

Search for record labels in the Discogs catalog.

get_release

Retrieve detailed information about a specific music release from Discogs.

get_artist

Retrieve detailed information about a specific artist from Discogs.

get_label

Retrieve detailed information about a specific record label from Discogs.

get_collection

Retrieve the user's music collection from Discogs.

add_to_collection

Add a release to the user's Discogs collection.

+2 tools

Overview

Discogs MCP Server

What it does

This MCP server provides access to the Discogs API for music catalog operations and search functionality. It can be integrated with AI clients such as Claude Desktop.

How it connects

Use this MCP server to programmatically interact with your Discogs collection and search for music information, enabling efficient catalog management and discovery of new releases.

Source README

License
GitHub Release
GitHub Actions Workflow Status
NPM Downloads
Sponsor

Discogs MCP Server

MCP Server for the Discogs API, enabling music catalog operations, search functionality, and more.

Quickstart

If you just want to get started immediately using this MCP Server with the Claude desktop app and don't care about development or running the server yourself, then make sure you have Node.js installed and your Discogs personal access token ready and skip straight to the Claude configuration section. Use the NPX method from that section.

Table of Contents

Available Tools

Check out the list of available tools: TOOLS.md

Caveats

  • The Discogs API documentation is not perfect and some endpoints may not be fully documented or may have inconsistencies.
  • Due to the vast number of API endpoints and response types, it's not feasible to verify type safety for every possible response. Please report any type-related issues you encounter.
  • This MCP server allows for editing data in your Discogs collection. Please use with caution and verify your actions before executing them.
  • The Discogs API per_page default is 50, which can be too much data for some clients to process effectively, so within this project a discogs.config.defaultPerPage value has been set to 5. You can request more data in your prompts, but be aware that some clients may struggle with larger responses.

Prerequisites

  • Node.js (tested with Node.js 20.x.x, but 18.x.x should work as well)
    • Check your Node.js version with: node --version
  • Docker (optional, for running a local docker image without having to deal with Node or dependencies)

Setup

  1. Clone the repository
  2. Create a .env file in the root directory based on .env.example
  3. Set the following required environment variables in your .env:
    • DISCOGS_PERSONAL_ACCESS_TOKEN: Your Discogs personal access token

To get your Discogs personal access token, go to your Discogs Settings > Developers page and find your token or generate a new one. DO NOT SHARE YOUR TOKEN. OAuth support will be added in a future release.

The other environment variables in .env.example are optional and have sensible defaults, so you don't need to set them unless you have specific requirements.

  • SERVER_HOST: The host address to bind the server to (default: 0.0.0.0). Set to 0.0.0.0 to allow connections from outside the container/machine, or 127.0.0.1 to restrict to localhost only.

Running the Server Locally

Option 1: Local Development

  1. Install dependencies:

    pnpm install
    
  2. Available commands:

    • pnpm run dev: Start the development server with hot reloading
    • pnpm run dev:stream: Start the development server with hot reloading in HTTP streaming mode
    • pnpm run build: Build the production version
    • pnpm run start: Run the production build
    • pnpm run inspect: Run the MCP Inspector (see Inspection section)
    • pnpm run format: Check code formatting (prettier)
    • pnpm run lint: Run linter (eslint)
    • pnpm run test: Run vitest
    • pnpm run test:coverage: Run vitest v8 coverage
    • pnpm run version:check: Checks that the package.json version and src/version.ts match

Option 2: Docker

  1. Build the Docker image:

    docker build -t discogs-mcp-server:latest .
    
  2. Run the container:

    docker run --env-file .env discogs-mcp-server:latest
    

    For HTTP Streaming transport mode:

    # The port should match what is in your .env file
    # By default, the server listens on 0.0.0.0, allowing connections from outside the container
    docker run --env-file .env -p 3001:3001 discogs-mcp-server:latest stream
    

Inspection

Run the MCP Inspector to test your local MCP server:

pnpm run inspect

This will start the MCP Inspector at http://127.0.0.1:6274. Visit this URL in your browser to interact with your local MCP server.

For more information about the MCP Inspector, visit the official documentation.

MCP Clients

More client examples will be added in the future. If you'd like configuration for a specific client, either
request it by opening a new issue or creating the pull request to edit this section of the README yourself.

Claude Desktop Configuration

Find your claude_desktop_config.json at Claude > Settings > Developer > Edit Config and depending on which option you'd like, add JUST ONE of the following:

NPX

Running it straight from the npm registry.

{
  "mcpServers": {
    "discogs": {
      "command": "npx",
      "args": [
        "-y",
        "discogs-mcp-server"
      ],
      "env": {
        "DISCOGS_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}
Local Node

Dependencies should have been installed before you use this method (pnpm install).

{
  "mcpServers": {
    "discogs": {
      "command": "npx",
      "args": [
        "tsx",
        "/PATH/TO/YOUR/PROJECT/FOLDER/src/index.ts"
      ],
      "env": {
        "DISCOGS_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}
Docker

The docker image should have been built before using this method.

{
  "mcpServers": {
    "discogs": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "--env-file",
        "/PATH/TO/YOUR/PROJECT/FOLDER/.env",
        "discogs-mcp-server:latest"
      ]
    }
  }
}

Any changes to local code will require Claude to be restarted to take effect. Also, Claude requires human-in-the-loop interaction to allow an MCP tool to be run, so everytime a new tool is accessed Claude will ask for permission. You usually only have to do this once per tool per chat. If using the free version, long chats may result in more frequent errors trying to run tools as Claude limits the amount of context within a single chat.

LibreChat

In the librechat.yaml configuration file, add this under the mcpServers section:

discogs:
  type: stdio
  command: npx
  args: ["-y", "discogs-mcp-server"]
  env:
    DISCOGS_PERSONAL_ACCESS_TOKEN: YOUR_TOKEN_GOES_HERE

LM Studio

Get to the Chat Settings. In the Program tab there will be a dropdown with a default of Install. Select Edit mcp.json. Add this under the mcpServers section:

"discogs": {
  "command": "npx",
  "args": [
    "-y",
    "discogs-mcp-server"
  ],
  "env": {
    "DISCOGS_PERSONAL_ACCESS_TOKEN": "YOUR_TOKEN_GOES_HERE"
  }
}

After you Save, in the Program tab there should now be an mcp/discogs toggle to enable the server. Within every chat box there is an Integrations menu where you can also enable mcp servers.

TODO

  • OAuth support
  • Missing tools:
    • Inventory uploading

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.