Skip to main content

An MCP Server to interact with the discogs API, supports read operations (for the moment)

Project description

MCP Server Discogs

A Model Context Protocol (MCP) server for interacting with the Discogs API. This server allows searching the Discogs database and retrieving user information.

Konwn issues

  • searches can be very expensive, there is simply too much data coming back. Also search pagination is NOT used, the search currently looks only at the first page of results.

Features

  • Search Discogs: Search for releases, masters, artists, or labels using various filters
  • User Info: Retrieve authenticated user information including collection value statistics
  • MCP Integration: Use with Claude, GPT or other MCP-compatible AI assistants

Prerequisites

  • Python 3.13 or higher
  • Discogs API token (Get one here)
  • For MCP Inspector: Node.js (as a development dependency)
  • For Open WebUI integration: mcpo package

Installation

From Source

  1. Clone the repository:

    git clone https://gitlab.com/konstantinpae/mcp-server-discogs.git
    cd /path/to/mcp-server-discogs
    
  2. Create and activate a virtual environment:

    uv venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  3. Install the package in development mode:

    uv sync
    

Usage

Basic Usage

  1. Set your Discogs API token as an environment variable:

    export DISCOGS_API_TOKEN="your_discogs_api_token"
    
  2. Run the MCP server:

    uvx --refresh /path/to/mcp-server-discogs
    

    Note: --refresh rebuilds the package on every start

Usage with Claud, Cline or anything supporting MCP

  1. Go to the settings file for your MCP server, it should look something like this
    {
       "mcpServers": {
          "mcp-server1": {...}, 
          "mcp-server2": {...},    
       }
    }
    
    Add the following, so it looks something like this
    {
       "mcpServers": {
          "mcp-server1": {...}, 
          "mcp-server2": {...},
          "discogs-mcp-server": {
             "disabled": false,
             "timeout": 300,
             "command": "uvx",
             "args": [
                "/path/to/mcp-server-discogs"
             ],
             "env": {
                "DISCOGS_API_TOKEN": "your_discogs_api_token"
             }
          }              
       }
    }
    
  2. You should now be able to use the MCP server from your client of choice.

Using with MCP Inspector

The MCP Inspector provides a UI for testing and inspecting the server's capabilities.

  1. Install the MCP Inspector (if not already installed):

    npm install -g @modelcontextprotocol/inspector
    
  2. Run the MCP server with Inspector:

    env DISCOGS_API_TOKEN="YOUR_API_TOKEN" npx @modelcontextprotocol/inspector uvx --refresh /path/to/mcp-server-discogs
    

Using with Open WebUI

Known Issue: mcpo only implements tools but not resources, so user-info will not work!

To integrate with Open WebUI, you'll need the (mcpo) package:

  1. In the repository, run:

    uvx mcpo --port 8000 --api-key "ANY API KEY" -- uvx /path/to/mcp-server-discogs
    

    Note: Set any API key here, you will need it for setup with Open Web UI

  2. Configure Open WebUI to use this MCP server (refer to Open WebUI documentation for specific steps)

Server Capabilities

Tools

search

Searches Discogs for a given search string and returns results.

Parameters:

  • query (required): The search string to be used in the search
  • type: The type of the query can be 'release', 'master', 'artist' or 'label'
  • title: Search by combined "Artist Name - Release Title" title field
  • release_title: Search release titles
  • credit: Search release credits
  • artist: Search artist names
  • anv: Search artist ANV
  • label: Search label names
  • genre: Search genres
  • style: Search styles
  • country: Search release country
  • year: Search release year
  • format: Search formats
  • catno: Search catalog number
  • barcode: Search barcodes
  • track: Search track titles
  • submitter: Search submitter username
  • contributor: Search contributor usernames

Resources

discogs-user-info

Returns all relevant information of the Discogs user currently authenticated.

URI: data://discogs/userinfo

Development

Development Setup

  1. Clone the repository:

    git clone https://github.com/yourusername/mcp-server-discogs.git
    cd /path/to/repository
    
  2. Create and activate a virtual environment:

    uv venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  3. Install development dependencies:

    uv pip install -e .
    uv pip install bandit mypy pytest pytest-cov ruff
    
  4. Install Node.js (required for MCP Inspector):

    # Using nvm (recommended)
    nvm install node
    # Or download from https://nodejs.org/
    

Running Tests

uv run pytest

Code Quality

The project uses several tools to maintain code quality:

  • ruff: For linting and formatting

    uv run ruff check 
    uv run ruff format 
    
  • mypy: For type checking

    uv run mypy . --follow-untyped-imports # we need this as the discogs client doesn't offer stubs
    
  • bandit: For security analysis

    uv run bandit -c pyproject.toml -r .
    

License

See the LICENSE file for details.

Acknowledgements

TODO

  • Unit Tests
  • More functionality
  • Optimization of the search function

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_server_discogs-0.1.0.tar.gz (38.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_server_discogs-0.1.0-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file mcp_server_discogs-0.1.0.tar.gz.

File metadata

  • Download URL: mcp_server_discogs-0.1.0.tar.gz
  • Upload date:
  • Size: 38.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.3

File hashes

Hashes for mcp_server_discogs-0.1.0.tar.gz
Algorithm Hash digest
SHA256 89ede9fe195a2c6929f84887966a308af9cb6e710228b7658a81f4d848dc1768
MD5 05682c6a7bdf4cfcdfb2df7245d98274
BLAKE2b-256 f56ceebe8f488476a3d5c1b617e536f5ed21e2ae4e0f90b3af55c57e899214b9

See more details on using hashes here.

File details

Details for the file mcp_server_discogs-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_server_discogs-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3d7db71c3fa657d4cab50507677e7220ecc32b51b75811ad835170dfd57210e6
MD5 394fdeac51fad3c373a8b5c5028723a7
BLAKE2b-256 17453742197c2b031a02cb7ab70583fd4fe7691f3616d04d963db0abe1b9c1aa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page